-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: Remove Docs Versions #439
Comments
@plumbis how would we handle the situation where something existed in version X, but was removed/substantially changed in version Y. If a user is on version X and looking for documentation around this topic that was removed/changed, how would they find it? Could we not create version snapshots of the documentation? I.e. we have a flat structure like you propose, with the latest version always on the main branch. We then use tags/branches to keep track of old releases. |
This actually brings up another point I forgot to add which is the creation of a "change log" to track what's new across release and what was changed/added in the docs. Something like this. https://devcenter.heroku.com/changelog Tagging in GH is fine with me as well. |
This is what we did before the current iteration of the documentation. The docs lived in the crossplane/crossplane repo and were thus inherently coupled to Crossplane releases by their release branches. I personally strongly prefer release branches over release directories (whether those branches live in c/c or in c/docs). Touching on a few of the "What's wrong" points:
|
I just did a few Google searches to see what happens for other projects:
|
Do you mean Crossplane release or docs release? https://github.com/crossplane/crossplane/releases intends to cover that use case for the former. My preference would be not to duplicate it. |
@negz -
This becomes a maintenance and build problem over time. It's hard to leave incorrect info or typos in published docs so the maintenance still happens even if the version is EOL. The other problem is it will make docs builds (local and for PRs) longer with the more content we have.
I'm not sure I'm following. Are you talking about the old "backport" tag/action?
Generally I agree and it's why it's not something I've raised before. My take is that most of what's in the Crossplane docs doesn't tie to a version (i.e. Concepts) or if it does, it's clearly marked (ie., XFNs). I suspect (and some of our metrics support it) that most users just go to whatever is $latest based on where the docs send you. Most readers aren't changing the version numbers.
I would vote to duplicate it for discoverability. New Crossplane releases already trigger a docs issue so it's unlikely that we'd miss copying the release notes from Github to the docs.
|
I thought it may be easier to discuss this with a concrete demo. https://deploy-preview-449--crossplane.netlify.app/ Calling out a solutions to specific concerns:
|
Suggestion to add "last updated" to an individual doc. |
Looks good to me. My main feedback point was Pete's previous comment as I think most people will be curious about what's been updated when they're in context of a specific guide |
That's great feedback @shanecmiller23! I've added a |
@plumbis thank you very much for helping everyone understand the impact of this change better by preparing a preview and calling out the changes to note in #439 (comment) - that's really quite helpful for getting everyone aligned 🙇 A few thoughts below organized into high level themes: Burden on the readermy biggest concern with removing versions completely is that it puts the burden onto the reader/user to figure out what exactly in the docs page they are looking at applies to the crossplane version they are using. A good example of this is the table that shows what versions certain fields were added, IMO that places too much burden on the user vs the alternative of giving them a version of the docs that accurately represents the version of crossplane they are using. we often see folks that are not running the latest crossplane release (for whatever reason), so it is a non-zero group of people that will be looking at our docs for older versions. Git, release branches, backportingI don't know if it's worth the effort now, but I do personally miss having release branches that contained the docs for each version of crossplane we support. That creates a very clean logical separation between points in time and supported versions of our docs. It removes duplication of content and there wouldn't be a need for splitting between versioned and non versioned content. It's all the same (versioned) and the mechanism is release branches. IMO, backporting a change to a previous version was very easy esp. with out automated backport bot that opened the PR for you. If there are instances where we're having trouble with git, my instincts are that they could be addressed by a small workflow adjustment for folks having the troubles. I also think that git is fairly standard today and most all folks contributing to our docs will be familiar with it. Google search resultsFor any issues we're having with Google search, we could be more aggressive about our removal requests. For each release, we request a removal of content from the oldest previously supported release that has just reached EOL (see last item in release template), but we could extend this to be for all previous versions, so that the only google search indexed version is latest. TL;DR - Summary
|
After discussing with Nic and Jared, we won't move forward with this. Thanks for the detailed feedback everyone! |
Background
Today we maintain a docs directory for each currently supported version of Crossplane. When the community releases a new version of Crossplane the EOL version directory is deleted and the
master
folder is copied into a new folder for the new release.What's Wrong?
This approach has exposed a few problems that we've tried to address with varying levels of success.
Suggested Fix
Remove "version" as the organizing element in the documentation. All content would be at the "top-level", for example /concepts and /software instead of /v1.11/concepts and /v1.11/software.
What about features that are only in a specific version?
Any new features in a version would be tagged either at the top of the page or when discussing the feature. We already have something like this with XFNs. For specific features and knobs this would actually provide better tracking of when something was introduced. Today new knobs just appear in the docs where they weren't in the previous version.
How do we document things for the next release?
We start using a release branch when any docs work starts on the next release. Things specific to that new version would go into the release branch and it would be merged back into main when the release is cut.
How does this solve search or bookmarking?
Now there is only a single canonical version of a doc/guide. Bookmarks point to a page that (in theory) doesn't get a new URL every 3 months.
What about old bookmarks
For the fixed, existing set of docs we can build redirects.
What happens to the KB?
The KB flattens into the docs as well. The existing KB sections ( config guides, integrations, installing/upgrading) become top level or have their content moved into better top-level locations
The text was updated successfully, but these errors were encountered: