Problem/Motivation

On issue #1278256: Develop a plan to make it more clear that the current Documentation on drupal.org is community maintained., we are working on making it more clear that the current documentation on Drupal.org is community-maintained, and that the content is not really the responsibility of the Documentation Team.

But we also want to have a more curated documentation area, where we can have better control over the quality of the docs, as well as of what merits inclusion. This issue is for discussing what that should look like, where it should live, how it should be maintained, what infrastructure it needs, etc.

Initial discussions were at http://groups.drupal.org/node/175174

Proposed resolution

When we have a proposal, it will be put here. So far, this is just "open for discussion".

Remaining tasks

When we have a proposal in the section above, we'll list the tasks here.

User interface changes

Who knows, until we have a proposal. :)

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

jhodgdon’s picture

Here are some principles to start the discussion.

a) Curated docs should be task-oriented and built of atomic topics (following the ideas, and as much as possible/practical, the structure, of DITA).

b) They should be limited to the core, central tasks that most users would need to do to build and manage a Drupal site: installation, update, basics of site building, configuration, and administration.

c) They should have several ways to navigate and find content:
- Table of contents/outline (maybe multiple outline capability?)
- Keyword index that is built carefully
- Search

d) They should be written with conditional text so that they can be updated for new versions of Drupal and other modules, without introducing major clutter.

e) Editing should be limited.

jhodgdon’s picture

We have discussed whether it would make sense to start the Curated Docs section with an existing book, such as Johan Falk's "Drupal 7 Essentials" (if it is feasible with copyright restrictions etc. -- the Drupal Docs team needs to have the ability to edit/update/add to the docs going forward without restriction).

Advantages of this approach:
- Content is already written.

Disadvantages of this approach:
- Books are not written in DITA-like topics currently or in HTML, so some adaptation will be necessary.
- We may have copyright/ownership issues and struggles.

Another thought would be to make this "curated docs" section the same as the online editing area for the proposed Drupal 8 core inline help system -- i.e., we would start this curated docs section by writing the tasks corresponding to core module tasks, and build from there (adding the install guide etc.). See http://drupal.org/node/1095012 for an outline of what this proposed system would entail.

Advantages of this approach:
- We would definitely own the content.
- The proposed structure for topics etc. for the Help System docs is pretty much what we want for the curated docs (DITA-like topics, conditional text, multiple outlines, keywords, etc.)
- The structure should be close enough to DITA that we can use DITA tools to export the docs in other formats (PDF books etc.).
- Would combine the "curated docs" with the "available for import inline docs", and reduce duplicated effort.

Disadvantages of this approach:
- The content isn't written yet (although we should be able to draw from the current inline hook_help and existing Community Docs pages)
- Inline help is probably more module-oriented and module-organized than we would want, although the proposed system includes ability to make multiple outlines, so that mitigates this factor.

wfx’s picture

sub

Crell’s picture

While I agree that the Docs team should be focused on core, allowing module maintainers (not random people, module maintainers) to contribute module-specific documentation is probably worthwhile. Especially for large or more complex modules like Views, Media, Memcache, etc.

I also like the idea of using a combined online editing system for inline help and online help. Having only a single "model" to deal with makes documentation easier, both for the writer and reader.

avanraaphorst’s picture

Response to Jennifer's Comment #1:
1a) I'm a strong advocate of DITA but don't know how you "follow the ideas of DITA" without using DITA itself. DITA editors like oXygen and XMLSpy are relatively cheap, and we (Dick Johnson and I) have a set of Python and PHP debugging and reporting tools that we maintain for the DITA community under the Creative Commons ShareAlike license, which could also be used (and modified, if necessary) for use with the Drupal doc. The DITA doc could be maintained in a Git repository like the code.

We can publish in an atomic operation to a Drupal site using the new, Drupal 7 bulkpub module (written by Dick, still a sandbox project, but he has applied for full project status), which also deletes/replaces an entire document as an atomic operation. The same set of DITA files can also be used to produce ePub, PDF, etc. output using the DITA Open Toolkit. We republish our DITAinformationcenter several times a year to all popular DITA output targets. The non-Drupal versions of the DITAinformationcenter docs are available to users from our Downloads page.

1c) The Drupal 7 model site (ditainfo.info) that we maintain for our DITAinformationcenter has the requirements Jennifer lists: toc (the doc is published as a Drupal book), keyword index based on metadata common across both the structured (DITA-based) and unstructured (Drupal native) topics, and full-text search. We have also created a view called Query-by-tag that allows users to search topics by tag to find all topics that share a given tag.

1d) In DITA you can use ditaval, conref, and keyref to achieve conditionalization. Our DITAinformationcenter illustrates all of these.

Response to Jennifer's Comment #2:
A DITA project could be set up either from an existing doc (Johan's or whatever) or could be set up as a new project based on the Drupal 8 core inline help system. I don't know much about the specific copyright barriers there are with Johan's stuff, but if he wouldn't mind, a compromise might be to compare the topic titles in his collection with the help system titles and create a superset outline.

Again, I'm not sure what "close enough to DITA" means. I strongly advocate taking advantage of all that has gone into DITA over the past 6 years or so and not try to reinvent the wheel. If more customization is required to make DITA and Drupal work together effectively, then let's do that instead of trying to re-create one or the other. There is a huge amount of power in both "platforms," including doc automation, which we also have some experience with. At some point that could be investigated and added to the mix.

In summary, both Dick and I would be happy to work with others on a specific design and prototype solution using Jennifer's suggested approach and whatever requirements surface in additional discussion.

jhodgdon’s picture

RE #4 - the new proposed inline help system is planned to allow module maintainers to designate who can edit their official docs (using the online editor on help.drupal.org or wherever it is). So if we use the same system for the "curated docs section", we might want to propose that this be a designated subset of these docs. I don't think the "curated docs section" would necessarily be limited to Drupal Core though -- for instance, can you imagine having an intro to site building and not mentioning Views?

RE #5 - Have you read and understood http://drupal.org/node/1095012 ? I would appreciate it if you could read it before proposing adopting particular tools -- at least understand what the objectives are of that project. Our objective is not to have DITA. Our objective is to have a Drupal help system, and I don't believe that all of our objectives can be met with DITA. At a minimum, we need the docs to be stored and edited within a drupal.org site (not in XML files), and we absolutely do NOT want to involve Git in editing/writing the docs.

arianek’s picture

+1 to @jhodgdon's proposal (thanks for getting this rolling, i've been stuck in the details and hadn't gotten it together yet!)

Itangalo’s picture

Good issue!

Here are two comments to continue the discussion:

-A-
About #1b: I think we should consider not limiting the curated docs to Drupal core. If the curated docs should contain "tasks that most users would need to do to build and manage a Drupal site", it will clearly not be enough with core. Including some contrib modules would of course increase the need for updates, but it would also make the documentation much more valuable.

-B-
Randy Fay suggested some time ago that documentation should be maintained in the same fashion as code projects on drupal.org. I think this makes sense – allowing people to start new documentation sections, for whatever topic they like, and then having them being the maintainers for that documentation section. If combined with the suggestion above, it means that one group of people could maintain a documentation section for core, while another one could have a documentation for (say) Views.
It would of course also be possible for a third group of people to add another documentation section for Views, which I think would be just fine. Maybe it covers other parts of Views, maybe it has another audience, or maybe it is just better than the previous documentation.
In this model, a few highlighed documentation sections would be promoted on (say) documentation landing page, but the other documentation sections would still be searchable.
(One could also try the idea of allowing documentation section maintainers to open their documentation for anyone to edit, but probably not add new pages to.)

Sree’s picture

subscribing ...

jhodgdon’s picture

RE #8 A - When I said "the core, central tasks" in comment #1 (b), I didn't mean "Drupal Core" only, I meant "core" in the normal English sense of "central and essential". Sorry for the confusion - I do agree with you there.

RE #8 B - We already have a way for people to contribute whatever documentation they want to -- it's called the "Community Documentation" (or will soon be, if the current proposal in #1278256: Develop a plan to make it more clear that the current Documentation on drupal.org is community maintained. is adopted. The proposed Help system specs also already say that contributed module maintainers can define who the maintainers of their official documentation on the official site would be.

We probably also would need to have an issue queue for these help docs, and one of the functions would be to petition for Community Docs to be adopted into the Official Help Site (or whatever we call it).

Itangalo’s picture

RE #10: From your comment I assume that you find it harmful to allow more than one set of curated docs. Am I right, and if so, why do you think so?

valderama’s picture

sub

jhodgdon’s picture

RE #11 - Good point! So here's a (partially) new idea.

What we want for the Official Help System is for each Help Entity Item to be associated with a single d.o Project, and for each Project to be able to designate who has permission to create/edit its help entities (help entities consist of the different types of topics, as well as outlines/maps).

So the Documentation Project could maintain set of help entities on the Official Help System site, which would be the Official Drupal User Guide (or whatever we want to call the "curated docs"), and which would consist of the basics of installing Drupal, building a site, and administering it (using a variety of core and contributed modules). And then the Views Project could have its own set of documentation, which might go more into depth about the details of using Views than we do in the User Guide (but their outlines could pull in some Documentation Project help topics if appropriate). And the Zen Theme Project could have its own set of documentation, which would describe how to build a theme using the Zen base theme, but it might pull in some of the Theme Building doc topics (I'm assuming that the Doc Project might have a theme building section too).

And if someone wants to create a new project just to maintain some documentation, I don't see a problem with that? We already have an approval process for projects (I admit it is fatally flawed, but that's a separate issue), and in theory anyway, someone could potentially apply for a documentation-only project (we already have Module, Theme, and Install Profile projects, so why not Documentation projects too?). Maybe the Theme Building Guide would be a separate doc project, for instance?

How's that for an idea? :)

Great discussion by the way. Thanks everyone for thinking critically and carefully about this!!!

Itangalo’s picture

#13 – "How's that for an idea? :)"

Love it!

valderama’s picture

This discussion is great, I think, as Drupal can profit a lot from really good documentation.

In my opinion two things would be important for a substantially improved "User guide".

Firstly a clear separation of Drupal versions. While the current idea is to have conditional text blocks within the same page, which are filtered depending on the chosen Drupal version (that is at least how I understood it) - I tend to believe that major Drupal version would deserve a complete own handbook. When I compare D6 to D7, they seem too different to write single paragraphs precise enough to help and also general enough to fit both versions. But I have no practical experience in writing such documentation, so maybe I am simply wrong.

The other idea that seems to reasonable for me, is to have also a focus/discussion on the navigational aids that we should provide. To reduce distraction, I would also tend to an own website, without (or minimal) other navigation.

In general, I see two use cases: 1) quick fact retrieval: eg: someone want to lookup all possible template suggestions. and 2) long reading. eg. someone wants to learn how to theme a Drupal site. What do we need to support both scenarios?

Finally, I think that api.drupal.org is a very well made documentation site. Separation between Drupal version is done well, I think. Also, the navigation works well, in particular I love the auto-complete search box. And, while there is focus on lookup, there are also parts which are considered for longer reading.

Maybe the api site is a good role model :)

jhodgdon’s picture

#15 - valderama: The processes of building a site in Drupal 6 and Drupal 7 are substantially the same. Really the main differences are the Overlay and that some of the user interfaces have been cleaned up a bit. And most of the nav paths are different.

We also need to think about maintenance though. If I have to go to several places to fix some documentation, because it is separate for d6/7/8/etc., then it is harder to maintain. And where do you draw the line? For instance, some contrib modules add new features or make UI changes in minor versions, and you really don't want to have them completely rewrite their docs every time something changes.

We should be able to make it so that a user can say "I'm browsing for d7" and they only see the d7 portions of the page, too, which should make it easier to deal with. That's a proposed feature on the (already built) conditional text module.

jhodgdon’s picture

Issue tags: +docs infrastructure

Adding new tag. These issues tend to get moved to other issue queues, so we need a unifying tag in order to find them consistently.

bcobin’s picture

I am not sure if this is the right place to make these comments or if this a topic that's already under discussion elsewhere, but there are two main things I think would be helpful when it comes to documentation in general. This has to do with contrib modules, not core.

1. A step-by-step, simple set of instructions for installing and initial configuration of the module in question - with screenshots if they could be helpful. Ideally, somebody who knows little or nothing about Drupal should be able to install and initially configure a new module without breaking a sweat. This should be the responsibility of the module developer, with the guidance of the documentation team.

For more life-changing projects like Views and CCK that would be ill-served by overly-simple documentation here, there would be links to more case-specific instructions. For the vast majority of modules, though, a clear, simple installation guide would suffice. I'd suggest that even more experienced Drupal users would enjoy running across something "simple," if for nothing more than a change of pace. Also, standardization here would streamline the debugging process insofar as a user could report he/she ran into a problem at, say, Step 5.

2. A working demo page for the project, however simple the project may be. I'm sure we've all gone through the experience of installing and trying to configure a module only to find out that it doesn't provide the desired functionality.

I think across-the-board implementation of these two "good practices" would go a long way towards improving the Drupal experience, particularly for less experienced users. Just sayin' is all.

Thanks to all the great work everybody's doing here - Drupal rocks!

Itangalo’s picture

#18: This is great feedback. As contributed modules and Drupal documentation works right now, it is difficult to push/force any documentation standards – all module maintainers choose freely how to do documentation. (Often, as you probably noticed, end-user documentation is lagging behind.) But even if documentation people can't force anything, having guidelines is really good. Thanks for input!

jhodgdon’s picture

Actually, we do have a page describing how contrib module maintainers should document their modules. I don't have time to find it at the moment -- it's in the section on how to contribute a module to drupal.org. This should be added there, and it should also be moved to a separate issue in the Documentation project (with tag "developer") please.

jhodgdon’s picture

Here's the page I was thinking about:
http://drupal.org/node/161085
I think it covers most of what you are talking about... getting module maintainers to follow that guideline is another question!

Anyway, bcobin: Please read that page over from the perspective of a module user, if you have time, and see if there is anything missing. If so, please go to
http://drupal.org/node/add/project-issue/documentation
and add a new issue. Explain what you think needs to be added or modified, and tag the issue with "developer". Thanks for your feedback!

jhodgdon’s picture

Some new (or partially new) thoughts on this (or maybe this is a proposal):

1. The curated online docs site is the same as the site for editing the inline drupal help topics (see help system specs). Tentatively called Official Help Site (OHS) for this discussion.

2. Each topic page and outline on the OHS is under ownership/maintainership of one drupal.org Project. Each d.o Project can designate docs maintainers (much like now they can designate committers and issue queue maintainers), and they will have editing control over the topics they own/maintain. (There are workflow specs in the help system specs that goes into more detail on this idea).

3. The Documentation Project will own/maintain the main "user guide" (working title) topics, as well as the inline help for Core modules (which will have some overlap). Or we might want to create a couple of "official" docs-only projects, such as one for the "beginner tutorial", one for the "install guide", one for the "theming guide", etc., each with their own issue queue and team? Maybe best as one team, I'm not sure. And we probably don't want free creation of docs-only projects, but we could have an approval process for this. I doubt many groups will be clamoring for a docs-only project, since they can have more freedom to write on the Community Docs site anyway -- the OHS will be more rigid on its atomic nature, etc.

4. While all topics on the OHS will be importable as inline help into a Drupal site, and all will be displayed to visitors to the OHS as online help, some topics are more suitable for inline help and some more for online tutorials (e.g., the "What does the block module do" is more important for inline help, while "planning your site" is more likely to be in a tutorial). We can designate this by creating outlines that are marked as 'inline help', and others might be designated as 'tutorial'. (We plan to have multiple outline capabilities for the help system.) That way, some topics (such as "Creating a new block") could be used in both sections (reuse!), but only the most relevant ones might be imported into a site as the Help system, and people following a tutorial wouldn't need to read the irrelevant stuff.

5. Any topic on the OHS would be eligible for translation by the internationalization teams.

Some advantages of this proposal:
a) A contrib module's docs team has one single place to go to edit their documentation (including online and inline help).
b) Topics can be reused in both online tutorials and inline help.
c) Infrastructure can be reused between the curated docs system and the inline help system (the only additional thing we need for inline is a way to import topics).
d) We can have translated user guides as well as translated inline help.

Itangalo’s picture

About #22:

A) Sounds like a very sensible approach to me. +1 to the whole idea.
B) As you say, there will probably be differences in how inline-focused and online-focues documentation is written – but the maintenance process will be the same.
C) I did some work with adding more inline help to the Rules module today, and this strengthens my belief in this proposal. A lot of the work was adding links to online documentation, so having inline and online docs being the same makes sense.

The only downside I can see is that it will be a significant threshold to create curated docs – since you have to conform to the markup required for inline help. But, just as you say, there is also the wiki.

+1

jhodgdon’s picture

Regarding the downside in #23 - I think the main adjustment will be in thinking, rather than markup. The topics should be HTML markup as usual, with perhaps a slightly different input format but I don't think it will be all that different. There will be some meta-data fields (like a required short summary, modules referenced, keywords, etc.); some of them will be different from the community wiki, but I think they will not be a huge burden... rather that they will aid people in making good choices about how to structure their documentation, hopefully!

The thinking adjustment will be in making pages small and atomic, and separating out into tasks, concepts, reference, glossary, outline rather than melding them together into large spaghetti pages. But this type of separation is generally considered to be a good idea for technical documentation (which is why it is also the core idea of DITA), and I do not think it will be a *huge* burden. We'll definitely have to have a "contributor's guide" section on the help site to explain what to do, but I think people will get the idea without too much trouble.

I really don't want it to be a huge burden or difficult to master -- but there is some adjustment necessary if we want this to be a quality set of official documentation. The trick is to make sure the burden is just what is absolutely necessary to achieve our goals, and no more.

arianek’s picture

I think it'd be a good idea (and maybe this is what we could focus on at the PNW Summit) to go through this from the perspective of the writing/editorial team (and project maintainers) and think practically about how the workflows will look. It's a good point that we need to keep this easy to use, so we don't lose all the enthusiastic contributors. ;)

jhodgdon’s picture

Good idea! It should certainly be thought through.

bcobin’s picture

Thank you, @jhodgdon (#21) - as per your request: http://drupal.org/node/1303366

Keep up the great work!

kvantomme’s picture

awtch, these mockups were meant for another issue - #multitasking_fail

moshe weitzman’s picture

When we launch help.drupal.org site, the first thing we will need is a an always synchronized list of projects at drupal.org. Similarly, we need to know who the maintainers of each project are. This is a big job, but fortunately security.drupal.org has solved it. It looks like the code is in http://drupalcode.org/project/securitydrupalorg.git/shortlog/refs/heads/...

Talk to scor or greggles about how it all works.

jhodgdon’s picture

Thanks, that looks like just what we need! Except we'll need to know who they've designated as "docs maintainers", which doesn't exist yet, and would probably be "authenticated users" by default. :)

arianek’s picture

Sidenote: I keep seeing/hearing this referred to as 'the help site' or help.drupal.org because originally it was thought of as the "help system" but now that it's on its way to absorbing the entire curated docs as well... shouldn't we really be calling it documentation and using docs.drupal.org? Just throwing that out there before it gets too far along.

jhodgdon’s picture

Sounds like a good idea.

Also, at BADCamp when I was discussing this plan/idea with people, someone (can't recall who, sorry) suggested that we could build the Curated Docs site first, and add the ability for topics to be imported as inline help later. That would make getting this site up and running soon more feasible, since the only missing pieces would be the workflow stuff (which I don't think is all that hard to write) and the help entities module (which isn't difficult at all).

arianek’s picture

Huh interesting! That might be more ideal anyway as far as which part has a more important end product (ie. I think Help can wait a little bit? Though not sure where the D8 cycle is at... but that the curated docs would be useful asap.)

jhodgdon’s picture

OK, let's call that a plan! I think once we get the community docs stuff sorted out, we should be able to start on building the curated docs site very soon (if we can get infra team on board).

jhodgdon’s picture

Issue tags: +valid issue

Tagging so it doesn't get picked up by #1421874: [meta] Documentation Issue Queue Cleanup

jhodgdon’s picture

Title: Make a curated docs section » Discussion: Make a curated docs section/system
Status: Active » Fixed

I'm going to close down this issue, which had a great discussion, and now we have really solid specs on http://drupal.org/node/1095012 for the combined Help/curated Docs system that we want to build.

To track the progress of building this system, see new issue:
#1549580: Track progress of building the Help/Docs System

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

adding a #