nunit / nunit/docs

How can we better handle multiple versions of the documentation for a project?

Open
#663 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:docfx area:meta-and-management type:question type:suggestion-or-request
Dominant language
Dockerfile
Stars
600
Forks
158
Avg merge
16h 8m
Merged PRs (30d)
21

Description

I'm currently maintaining two distinct versions of NUnit Console andEngine. The 4.0 is up to alpha 6 with lots of usage. My documentation is only for differences and is found here: https://github.com/nunit/nunit-console/wiki. My original plan was to completely revise the documentation when 4.0 is released, using the wiki pages as a guide.

This no longer sounds so good. The changes in 4.0 are extensive, many of them breaking. It would probably take me a week or two to completely redo the docs for the new release, leaving users without documentation for that period. In addition, the 3.x docs, needed by users who don't upgrade to 4.0, would become unavailable.

It seems to me that this is a general problem, although my particular case is extreme due to the breaking changes. Even minor releases call for documentation of new features, which is usually postponed because it would confuse users to post documentation for an unreleased feature. Nevertheless, by creating -dev releases, we gave given rise to a community of users of exactly those features.

It seems to me that we need some way to allow for at least two and up to three different sets of docs.

  1. The current stable release, which is now on the website.
  2. In cases where a release, perhaps a major release, is under development for a long time with alpha or beta releases, the latest pre-release.
  3. The latest dev release, representing the current state of master or main.

Questions that come to mind...

  • Where do we want ll of these? In the docs repo? Should some of them in the individual repos?
  • How can we set things up so that we can very quickly promote a release from one level to the next?
  • Do we want to retain a copy of the last previous stable release somewhere? If so, where and for what types of upgrades?

I'll be glad to work on the implementation of this for the console project, if we can agree on an overall approach.

I do have some tentative answers to some of my questions but I'll hold them till others have had a chance to react.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the docs repository and the NUnit Console wiki linked in the issue, then compare the needs of stable, pre-release, and development documentation. Done would require an agreed versioning and promotion approach, including where each documentation set is hosted and how previous stable docs are retained.

Written by the indexing model from the issue text.

Assessment

Domain
documentation, release
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.