Skip to content
This repository was archived by the owner on Mar 25, 2018. It is now read-only.

Commit 1a74524

Browse files
Merge pull request #70 from nodejs/add-roadmap
add first draft of ROADMAP.md
2 parents 9c01812 + b8a90e4 commit 1a74524

File tree

1 file changed

+226
-0
lines changed

1 file changed

+226
-0
lines changed

ROADMAP.md

+226
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
# Docs WG Roadmap
2+
3+
## Jan 2016 → Apr 2016 (Q1)
4+
5+
This is the first of the quarterly roadmaps that this Working Group will
6+
produce, so it will be structured a bit differently than subsequent ones. Since
7+
this is a brand-new process, an explanation of **what it is** and **why it's
8+
necessary** follows.
9+
10+
This roadmap outlines the priorities for the Docs working group for the
11+
quarter. These tasks can be as broadly or narrowly defined as is useful. They
12+
are not necessarily staffed — as folks step up to do the work, we'll link
13+
tracking issues to the tasks for them to self-organize. Every quarter we'll
14+
revisit this roadmap, adding a quick postmortem of how things went, and
15+
creating a new set of priorities for the ensuing quarter.
16+
17+
That brings us to why a roadmap is necessary: the Node.js documentation is a
18+
relatively confined space to work within, and there are many interested
19+
parties: there are groups that consume the documentation as output, like the
20+
[website working group][wg-website], there are groups concerned with ensuring
21+
the [content addresses the needs of diverse audiences][wg-inclusivity], there are
22+
[groups that are required][wg-ctc] to produce API documentation as a
23+
pre-requisite to merging their primary work, there are contributors who wish to
24+
help in a _technical_ fashion, there are contributors who wish to contribute
25+
_editorially_, and there are the readers of the docs. All of these
26+
contributions overlap, so in order to make measurable progress without stepping
27+
on each other's feet, we have to:
28+
29+
* **Set clear priorities** — if two contributions conflict, it should be
30+
straightforward to determine which contribution should take precedence.
31+
* **Message these priorities well in advance** — with this many stakeholders,
32+
we should mention repeatedly, loudly, and clearly what our intentions are.
33+
The Docs WG should aspire to avoid surprise.
34+
* **Make the best use of donated time** — we want to ensure that if someone is
35+
donating their time to improve the documentation, it will be well-spent, and
36+
directed at driving the documentation towards this WG's [stated goals][goals].
37+
38+
[Our goals][goals] can be summarized thusly:
39+
40+
> Node.js should be in friendly competition for "Best Docs in OSS," with docs
41+
> that address the needs of a wide variety of audiences — across skill levels,
42+
> goals, and languages.
43+
44+
### Tasks
45+
46+
Tasks for this quarter were drawn from [responses to this issue][issue-roadmap].
47+
They are divided between three major areas:
48+
49+
* **Content** — the actual content of the docs
50+
* **Features** — reader-focused features, like version metadata or autolinking.
51+
* **Tooling** — author-focused features, like doc linting or html generation.
52+
53+
Since **content** is the ultimate product of this WG, it will usually be the
54+
highest priority. However, when **content** systemically fails audiences, it
55+
may point to a need for better **features** or **tooling**.
56+
57+
**Right now, our features and tooling are lacking, and the content is suffering
58+
for it.**
59+
60+
#### :one: Pulling Guides into [nodejs/node][repo-nodejs]
61+
62+
**This is our highest priority over the next two months.**
63+
64+
Right now the documentation is split between the [website repo][wg-website] and
65+
the [core repo][wg-ctc]. We wish to bring the [guide documentation][guide-docs]
66+
into the core repo.
67+
68+
The existing [node doctool][ref-doctool] is specifically built to _only_
69+
generate API docs. Until we can build the guide docs with Node.js' `make doc`
70+
command, guide documentation will be copied from the website repo into the core
71+
repo, but not *removed* from the website repo.
72+
73+
As a result, we are investigating using [remark][ref-remark] to build the
74+
docs. The stages of this project are as follows:
75+
76+
1. Use remark to build just the guides alongside the existing doctool.
77+
2. Remove the guides from the website repository.
78+
3. Identify and install the necessary remark plugins to faithfully render the
79+
API documentation.
80+
4. Generate all documentation using remark. Fix lint issues pointed out by
81+
`remark-lint`.
82+
5. Once no linting issues remain, wire up docs linting as part of Node.js'
83+
`make test`.
84+
85+
Once this project is complete, all doc style rules will be handled by remark,
86+
which includes line lengths, code samples (via eslint), markdown bullet and
87+
emphasis styles, and link checking. We will have a solid basis on which to add
88+
spelling and grammar checkers in the future, making it easier to maintain the
89+
docs going forward.
90+
91+
##### Subtasks
92+
93+
Want to pitch in? Look here! If someone's already working on the task, see
94+
if they need help.
95+
96+
* Identifying Remark plugins — **@qard**, others! [nodejs/docs#61](https://github.com/nodejs/docs/issues/61)
97+
* Initial Remark integration — **@qard** [nodejs/node#4866](https://github.com/nodejs/node/pull/4866)
98+
* Codify linting rules
99+
* Apply linting rules across API docs
100+
* HTML layout for guide docs
101+
* HTML layout update for API docs to include refs to guide docs
102+
103+
#### :two: Guide and Topic Docs
104+
105+
A _very_ close second to the work on the documentation tooling is the work on
106+
identifying and creating new guides and topic documentation. These two terms
107+
come up a lot, to clarify what they mean, here's an except from our [getting
108+
started][ref-getting-started] guide:
109+
110+
> 1. **Guide** documents explain processes to help the reader learn a concept
111+
> in service of their larger goal. Usually a guide has the reader build
112+
> something — a little webserver, or CLI — and explains the concept it's trying
113+
> to convey using examples from the readers experience with that code. Guides
114+
> are great for introducing new concepts in a comfortable way, by letting the
115+
> reader "simulate" the process of what development will be like using those
116+
> concepts.
117+
> 2. **Topic** documents explain concepts to help the reader make a decision.
118+
> They are a great place for "deep dive" information, and to handle anything
119+
> that's fairly intricate.
120+
> 3. **Reference** documents explain capabilities to help the reader achieve
121+
> their goal. API documentation is the primary example of this.
122+
123+
Node.js currently has **reference** documentation, but because of the lack of
124+
**topic** and **guide** documentation, it ends up having to repeat itself a
125+
lot. Sometimes the lack of a dedicated place for this kind of documentation
126+
means that reference docs will attempt to include guides or topic docs inline —
127+
this usually doesn't end up working well in the long run.
128+
129+
The Docs WG has identified and created a few guides already, some of which are
130+
the subject of the [first](#one-pulling-guides-into-nodejsnode) task.
131+
*However*, we need help filling in the gaps — both in identifying needed docs,
132+
as well as in executing on them.
133+
134+
It's important to note that this documentation applies as much to topics
135+
*internal* to the project as it does to our externally facing API — we need
136+
guides and overviews for the architecture of Node, as well as how to
137+
collaborate on the project.
138+
139+
##### Subtasks
140+
141+
Want to pitch in? Look here! If someone's already working on the task, see
142+
if they need help.
143+
144+
* Overviews:
145+
* "Encoding", to be used by the Buffer and FS docs.
146+
* "Blocking vs. non-blocking."
147+
* Syscall documentation, to be used primarily by FS, but throughout the codebase.
148+
* Internal: Node.js Architecture — **@eljefedelrodeodeljefe** [#71](https://github.com/nodejs/docs/issues/71)
149+
* Internal: Initialization process — **@thealphanerd** [#73](https://github.com/nodejs/docs/issues/73)
150+
* Internal: Timers
151+
* Internal: Event loop — **@DavidTPate** [#74](https://github.com/nodejs/docs/issues/74)
152+
* Internal: Signals
153+
* Internal: Docs WG Process — **@chrisdickinson**
154+
* Guides:
155+
* Internal: New Collaborator guide — **@nodejs/inclusivity**, **@ashleygwilliams** [nodejs/inclusivity#96](https://github.com/nodejs/inclusivity/issues/96)
156+
* Internal: Move "cutting releases" into these guides — **@thealphanerd** [#75](https://github.com/nodejs/docs/issues/75)
157+
* Streams: For Authors
158+
* Streams: For Consumers — **@bengl**
159+
* Walkthroughs for each module
160+
* Reference:
161+
* Glossary of terms, to be used by all docs.
162+
* Streams: remove guide content from API doc once guides have been written.
163+
* Streams: Descriptive spec — **@nodejs/streams** [nodejs/readable-stream#181](https://github.com/nodejs/readable-stream/issues/181)
164+
* Identifying other docs to create
165+
166+
#### :three: Improving API Metadata
167+
168+
One of the most common requests we've received is that the API docs start
169+
including relevant version information alongside methods. This information
170+
should include the version the API was introduced in, when it was last changed,
171+
and when it was deprecated, if applicable. Second to that, we've received
172+
requests to automatically link types of parameters to the appropriate MDN or
173+
Node.js documentation sections, and note what (if any) errors an API will
174+
generate, and how it will propagate them.
175+
176+
This points to the need to standardize tooling around this metadata, and then
177+
execute against that tooling.
178+
179+
This task should track the work being done in task #1 — that is to say, this
180+
metadata should be tracked by remark plugins in as much as is possible.
181+
182+
##### Subtasks
183+
184+
* Per-section YAML — **@qard**, **@tflanagan** [nodejs/node#3867](https://github.com/nodejs/node/pull/3867)
185+
* Noting 'version introduced' on each API — **@tflanagan**
186+
* Ideally this should link to the CHANGELOG for that release.
187+
* Standardizing API method signature documentation
188+
* Type annotation — **@fansworld-claudio** [nodejs/node#4741](https://github.com/nodejs/node/pull/4741)
189+
* (This will have to be brought into the Remark work as well.)
190+
* Error generation
191+
* Automatically linking `syscall(2)`-format terms to the appropriate docs.
192+
* Allow authors to pick a simpler anchor for headings in addition to the
193+
autogenerated anchor.
194+
195+
### Notably Missing
196+
197+
There are a few things notably missing from this list — this is not because
198+
they are not important to us, but because we are primarily constrained by time
199+
and the size of the content we are working within. Foremost among the missing
200+
pieces is an internationalization strategy. This task cannot be approached
201+
lightly, and will likely include touching *all* of the docs in a single PR.
202+
While we welcome discussion on how to approach this issue, we will not be
203+
executing on it until after March 2016. Likewise, search is an extant issue
204+
that we do not have the resources to work on at present.
205+
206+
### Pitching In
207+
208+
If you would like to help out with the Docs, you can:
209+
210+
* Find a subtask above and raise your hand on the associated issue or create
211+
an issue on the [docs issue tracker][docs-tracker].
212+
* Raise your hand [here][weekly-review] to help with the weekly docs review
213+
load.
214+
215+
[docs-tracker]: https://github.com/nodejs/docs/issues/new
216+
[goals]: https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#documentation
217+
[guide-docs]: https://github.com/nodejs/nodejs.org/tree/master/locale/en/docs/guides
218+
[issue-roadmap]: https://github.com/nodejs/docs/issues/59
219+
[ref-doctool]: https://github.com/nodejs/node/tree/master/tools/doc
220+
[ref-getting-started]: ./GETTING-STARTED.md
221+
[ref-remark]: https://www.npmjs.com/package/remark
222+
[repo-nodejs]: https://github.com/nodejs/node
223+
[weekly-review]: https://github.com/nodejs/docs/issues/69
224+
[wg-ctc]: https://github.com/nodejs/node
225+
[wg-inclusivity]: https://github.com/nodejs/inclusivity/
226+
[wg-website]: https://github.com/nodejs/nodejs.org/

0 commit comments

Comments
 (0)