On Wed, Jun 21, 2017 at 9:11 PM, ISHIKAWA,chiaki <ishik...@yk.rim.or.jp>
wrote:

>
> (I am posting a response to Ehsan's message which somehow was garbled and
> he kindly corrected in a personal exchange.)
>
>
> On 2017/06/22 6:10, Ehsan Akhgari wrote:
>
>> Oops, not sure how that happened, sorry about that!  But that formatting
>> corruption seemed to have happened in the text I quoted.  Here is the
>> newly
>> added text in my email:
>>
>> Right, and even depending on the kind of API docs, if you want to exceed
>> beyond a paragraph or two, keeping the API docs next to the code quickly
>> loses all of its theoretical benefits.  For example, think about how we'd
>> fit something like <https://developer.mozilla.org
>> /en-US/docs/Web/API/Background_Tasks_API> next to <
>> https://searchfox.org/mozilla-central/rev/714606a8145636d93
>> b116943d3a65a6a49d2acf8/dom/webidl/Window.webidl#495>.
>>
>
> Well, I am not advocating the direct inclusion of complex documents in
> .idl file or C++/Java/etc. source files.
> (Is this implied in the above paragraph. Sorry my native language is NOT
> English and so sometimes, I lose the nuances.)
>
> On the other hand, if we can keep the original document files in a well
> known fixed directory, say, "Documentation" directory, e.g, in this case,
> m-c/dom/webidl/Documentation or
> m-c/dom/Documentation, it will be much easier for occasional contributors
> to figure out where the related documentation to the source code they are
> modifying exists IF ANY.
> BTW I wonder if each file pointed by an entry in
> https://developer.mozilla.org/en-US/docs/Web/API/Background_Tasks_API
> has been generated by javadoc or other documentation tools form the
> annotation in source files themselves(?) They look so, but I am not sure.
>

We already kinda have this convention. The SPHINX_TREES moz.build variable
allows you to define directories containing docs (
https://gecko.readthedocs.io/en/latest/#adding-documentation) and the
convention seems to be a "docs" directory (
https://dxr.mozilla.org/mozilla-central/search?q=SPHINX_TREES&case=true).
(This ability to aggregate files from multiple directories was something I
added to the in-tree Sphinx docs because I anticipated people wanting the
docs to live closer to the components they are documenting.)

Unfortunately, I don't think a unified docs directory for all of
mozilla-central is tenable. We've historically thought of mozilla-central
as one large project. In reality, there are multiple projects inside. I
think we need to get better about formalizing boundaries between components
(including their documentation) because that will make it easier to
leverage sparse checkouts, builds/scheduling of specific components, etc.
What we can do is improve the tooling for findings docs. I think something
like `mach doc --list` or even showing the sources of the docs in the
generated docs would go a long way.


>
> In the case of Linux, there is a Documentation directory near the top of
> the source tree and the directory hierarchy under this "Documenation"
> reflects the module hierarchy of the real source tree.
> Thus you can find SCSI subsystem documents (especially related to driver
> files) below
> Documentation/scsi
>
> Documentations applicable the kernel as a whole often resides directly
> below Documentation directory.
>
> My point is that a simple command below will find ALL the "official" linux
> documentation about a keyword. If there is no hit, then there is NONE.
>
> find /usr/src/linux-source-4.9/Documentations -type f -print | xargs
> egrep -i searched_keyword
>
> The documentation files are plain text.
> (There ARE a few exceptions. I found Documentation/sound/alsa/seq_oss.html
> with the following command.
>  find Documentation/ -name "*.html" -print
>
> I also found a DocBook stylesheet under this directory with
> find Documentation/ -name "*.x*" -print
> Documentation/DocBook/stylesheet.xsl
>
>
>> But the discoverability issue you brought up is a real issue, and is a
>> very
>> easy one to solve for out of tree docs incidentally with a simple
>> moz.build
>> annotation similar to BUG_COMPONENT, I think.
>>
>>
> I am not sure here.
> Are you advocating a keyword value pair in the document to make it easy to
> search by Google?
>
> I want to make it easy to access the documentation even without such trick
> by creating a single place where such documents reside.
> (Yes, this directory could be large. But so is the rest of the source
> tree. In this sense, the documentation directory does not have to be within
> M-C/C-C, etc. It could be D-C directory with its own repository.
> Making it easy to find by having a SINGLE repository is an idea.
>
> In linux's case, that is "Documentation" directory.
> For official documents, that is it. It happens to be inside the source
> tree as well under same git management (I think.)
>
> In the case of linux, there can be other tutorials written for mortals,
> but we can always check the Documentation directory for any final word from
> module maintainers, driver writers and such.
> I think this has helped the contribution from volunteers.
>
> I wonder if we can consolidate all the documentation pieces in one
> directory/repository (or be part of the source tree if it is tenable).
>
> Again this is a perspective from an occasional patch contributor who
> always cringe at the lack of overall design documents of C-C TB internal
> (this can live in for example C-C/mailnews/Documentation/ top-level IMHO).
>
> My position is that all the bugzilla entries will pale with such documents
> MOST the times in terms of accessibility. I have no idea how many times I
> search bugzilla for certain information. It would have been vastly superior
> that such knowledge is condensed over the years by someone who need it into
> documentation files under Documentation directory and kept up-to-date.
> [And it has been done in the case of Linux.]
>
> Plain text works, BTW.
>
> If we need contributors, we should make it easy for contributors to learn
> the code. I suspect I should propose this documentation approach to C-C TB
> maintainers who need every help they can find to court volunteers.
> (Adding cc: dev-apps-thunderb...@lists.mizilla.org )
>
>
> TIA
>
> On Wed, Jun 21, 2017 at 3:42 PM, ISHIKAWA,chiaki <ishik...@yk.rim.or.jp>
>> wrote:
>>
>> Dear Ehsan,
>>>
>>> Something went wrong with the formating of your e-mail post.
>>>
>>> Would you like to re-post this if your local copy retains the sane
>>> formating somehow?
>>>
>>> Chiaki Ishikawa
>>>
>>>
>>> On 2017/06/21 23:49, Ehsan Akhgari wrote:
>>>
>>> On 06/21/2017 12:04 AM, Nicholas Nethercote wrote:
>>>>
>>>> There are multiple kinds of docs. One group that I've done a lot of  >
>>>>> work on is the collection of pages under >
>>>>>
>>>>> https://developer.mozilla.org/en-US/docs/Mozilla/Performance. I'm not
>>>> >
>>>> sure if in-tree would be better for those or not, but they're >
>>>> certainly
>>>> in a different category to API docs, for example.
>>>> Right, and even depending on the kind of API docs, if you want to exceed
>>>> beyond a paragraph or two, keeping the API docs next to the code quickly
>>>> loses all of its theoretical benefits.  For example, think about how
>>>> we'd
>>>> fit something like <https://developer.mozilla.org
>>>> /en-US/docs/Web/API/Background_Tasks_API> next to <
>>>> https://searchfox.org/mozilla-central/rev/714606a8145636d93
>>>> b116943d3a65a6a49d2acf8/dom/webidl/Window.webidl#495>.
>>>>
>>>> But the discoverability issue you brought up is a real issue, and is a
>>>> very easy one to solve for out of tree docs incidentally with a simple
>>>> moz.build annotation similar to BUG_COMPONENT, I think.
>>>>
>>>>
> [I removed the incorrectly formatted my earlier comment and replaced it
> with a correctly formatted one. Thunderbird bug? Hmm...
> Hope this shows up correctly. I am using TB myself.]
>
> On 2017/06/21 2:19, Ehsan Akhgari wrote:
>>
>>> On 06/20/2017 12:55 PM, Benjamin Smedberg wrote:
>>>
>>>>
>>>>
>>>> On Tue, Jun 20, 2017 at 12:40 PM, Ehsan Akhgari <
>>>> ehsan.akhg...@gmail.com <mailto:ehsan.akhg...@gmail.com>> wrote:
>>>>
>>>>     On 06/20/2017 11:21 AM, Benjamin Smedberg wrote:
>>>>
>>>>         Coming in late to this thread, but I'd like to strongly
>>>>         support moving our Mozilla internals documentation in the tree.
>>>>
>>>>     It seems that the rest of your post is mostly advocating that we
>>>>     should write documentation, which is hard to argue with.  For the
>>>>     record it's not clear to me how you connect that to it being a
>>>>     better choice for the said documentation to live in the tree.
>>>>     (Since you mentioned the anecdotal successful example of telemetry
>>>>     ping documentation, let me counter it with the anecdotal
>>>>     successful example of WebIDL bindings documentation which lives
>>>>     out of the tree:
>>>>     https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings
>>>>     <https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings
>>>> >.)
>>>>
>>>>
>>>> I'll put nuance on this. I do think we should be writing docs, but I
>>>> think it's much more important that we're maintaining and deleting existing
>>>> docs as the code changes or becomes irrelevant.
>>>>
>>> Something that a wiki is much more suitable for.
>>>
>>>> That's why I think the choice of in-tree versus external tool is
>>>> important and not merely a tooling choice. Documentation that is in the
>>>> tree can/should  be reviewed as the code changes. Partly because it is in
>>>> the tree, it maps to Mozilla module ownership and module owners can
>>>> exercise ownership over their slice of documentation explicitly.
>>>>
>>> This is the part that I don't understand.  You are implying that by not
>>> having some text file containing the documentation inside the tree we can't
>>> enforce review over documentation, and that they can't be updated alongside
>>> code changes.  I chose the example of WebIDL bindings documentation very
>>> consciously to demonstrate that these are false assertions.  That example
>>> clearly demonstrates that reviewers can (and certainly do) ask patch
>>> authors to fix the documentation when they make code changes, such
>>> documentation fixes are reviewed by the right people and the resulting docs
>>> stay in good shape.
>>>
>>>
>> I am a volunteer who occasionally submit patches to C-C TB.
>>
>> In-tree documentation is much easier for volunteers to work with.
>> The documentation is much closer to the code we are modifying.
>>
>> Out of tree docs are much harder to deal with.
>> Just adding a few (actually more)  keystrokes to access them make it
>> rather difficult, or more to the point TIME-CONSUMING to work with.
>>
>> For unpaid volunteers (and I assume even for paid developers), in-tree
>> documentation is much easier to work with in terms of overhead of JUST
>> checking WHERE on earth the relevant documentation exists (IF IT EXISTS AT
>> ALL) and then out-of-tree documentation in an other system means we still
>> need work with DIFFERENT set of rules that exist for accountability for
>> modification.
>>
>> Given these overhead,  out-of-tree documentations are basically something
>> volunteer patch submitters won't be able to work with: I suspect "Just
>> forget it" would be what many volunteer submitters would feel after a while.
>>
>> Initially, when people start to submit patches, they may think what they
>> might need to do with the documentation aside from DOCS style annotations
>> inside the code itself.
>> But then  the current anarchy of documents scattered around makes you
>> realize finding relevant documentation is hard. You never know if you have
>> found all relevant documentation there is to the particular module, etc.
>> after google search, say.
>>
>> That's when "Forget it" makes sense
>>
>> Of course, if someone points out relevant docs in an exact manner showing
>> URLs and such, that is another story.
>> But I wonder, though, whether OTHER contributors could find THOSE
>> DOCUMENTS on their own in the future. I bet they don't most of the times.
>>
>> The result is the almost document-less (in practical terms)
>> hard-to-modify C-C source tree IMHO.
>>
>> I suspect M-C is not that different in terms of document-friendliness
>> given some arcane bugs that were not fixed for many years.
>>
>> The reliance of web tools for documentation is a little overblown.
>> Relevant documents should live near the source code.
>> Just creating a DOC directory for each module will go a long way
>> - to consolidate the docs in a single place (for a module. We can
>> obviously have many DOC directory for each module.)
>> - to make the access to the docs easy, etc.
>>
>>
>> Success of linux is partly attributable to the in-tree documentatio.
>> Every single important API and design documents for modules (if any for the
>> latter case) lives in Documentations directory and that was great for
>> contributors, especially driver developers.
>> If major changes take place, it is obvious where to put a new document or
>> whether an existing document in THAT PLACE needs to be changed.
>> To be frank, rather than relying on a google search with many noisy hits,
>> I would prefer to run "grep keyword" under a single Documentations tree. Of
>> course, in this case, no hits means there is NO DOCUMENTATION at all. That
>> is life.
>> With mozilla's source code tree, one never knows if one's google search
>> failed to produce a link to an unknown important document.
>>
>> Just a perspective from an occasional patch submitter.
>>
>> TIA
>>
>> The flip side of the coin is that collaborating on writing articles
>>> (which documentation writing is ultimately is all about) is just not that
>>> great of an experience when you approach it as rigidly as collaborating on
>>> writing computer code.  There is a reason why people have invented wikis,
>>> etherpads, and software like gdocs! They provide a better model for
>>> collaborating on writing articles. It is true that when our only tool is a
>>> DVCS package, all of our problems start to look like nails.  But they don't
>>> have to.  (And FWIW I'm gonna give arguing over this a rest if you won't
>>> agree, since this is purely subjective and I suspect at the end of the day
>>> we may not be able to convince each other here!)
>>>
>>>
>>>>     I
>>>>
>>>>         The existing in-tree docs are already pretty well discoverable
>>>>         on gecko.readthedocs.io <http://gecko.readthedocs.io>
>>>>         <http://gecko.readthedocs.io>: as an example, searching for
>>>>         "mozilla main ping" has the readthedocs documentation of the
>>>>         main ping at the top spot.
>>>>
>>>>         I agree that as we grow scope and breadth of in-tree docs
>>>>         we're going to need better organization and probably different
>>>>         templates. I don't know if that's something mhoye would be
>>>>         willing to own as community manager? Or if not let's raise
>>>>         that as a need to engineering directors. There are a bunch of
>>>>         options, including things like integrating more directly with
>>>>         DXR, the way markdown checked into github repositories renders
>>>>         automatically in the github repo browser.
>>>>
>>>>     So this thread is about *build system* docs.  Now it seems we are
>>>>     talking about all docs?
>>>>
>>>>
>>>> gps proposed a specific change for build system docs, but the pushback
>>>> he's getting isn't about build docs in particular but about docs in
>>>> general. Therefore I think it's important to address this generally.
>>>>
>>> FWIW previously I was just expressing sadness of the bar to contributing
>>> to build system docs being raised, but I'd be happy to live with it since I
>>> won't be doing most of the work there.  But for more general discussions,
>>> this isn't the right venue.
>>>
>>>>
>>>>         I've found it almost automatic to modify existing docs. Adding
>>>>         *new* docs is a bit of a pain, because the build machinery
>>>>         isn't obvious. Perhaps we could write down exactly where the
>>>>         overhead lies and actually make this better?
>>>>
>>>>     For the record, I think the in-tree documentation system could use
>>>>     some documentation on how it should be used (in case there isn't
>>>>     some already available for it.)  For example I am not sure what's
>>>>     the process for an update to something in the tree to go to the
>>>>     live site, how would the different versions of the docs living on
>>>>     the different branches (central/beta etc) get treated differently
>>>>     (for example how should one document something that changed on
>>>>     central before the change hits the rest of the channels?), how to
>>>>     preview the edits I'm making, how to subscribe to notifications
>>>>     (similar to watching a wiki page), etc.
>>>>
>>>>
>>>> I agree this is good, and I'll file a bug about this specifically, but
>>>> I'll answer the questions here:
>>>>
>>>> As docs land to mozilla-central they will automatically update
>>>> gecko.readthedocs.io <http://gecko.readthedocs.io>. There is a
>>>> taskcluster job which reports to the mozilla-central tree which does this
>>>> automatically, and it turns red on failure for monitoring.
>>>>
>>>> As far as I know, docs from the other trees do not get automatically
>>>> published anywhere, and we don't currently host archived release versions
>>>> of the docs.
>>>>
>>>> To preview local edits, run `./mach doc` which will do local generation
>>>>
>>> Great tips, thank you!
>>>
>>>> Currently we don't have good notifications for changes to any file
>>>> in-tree (at least that I know of). This is one of the phabricator features
>>>> that I am most looking forward to!
>>>>
>>> Yeah I am also looking for ward to this feature, more for regular code
>>> review though. _______________________________________________
>>> dev-builds mailing list
>>> dev-builds@lists.mozilla.org
>>> https://lists.mozilla.org/listinfo/dev-builds
>>>
>>>
> _______________________________________________
> dev-builds mailing list
> dev-builds@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-builds
>
_______________________________________________
dev-builds mailing list
dev-builds@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-builds

Reply via email to