Merge "update the retention policy for queens"

This commit is contained in:
Zuul 2017-10-17 17:15:13 +00:00 committed by Gerrit Code Review
commit 8146272d0e
3 changed files with 305 additions and 124 deletions

View File

@ -4,6 +4,15 @@
Documentation Program Specifications
====================================
Queens approved specs
=====================
.. toctree::
:glob:
:maxdepth: 1
specs/queens/*
Pike approved specs
======================

View File

@ -1,124 +0,0 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=================================================
Archiving old documentation on docs.openstack.org
=================================================
Problem description
===================
As of the time of drafting, the docs.openstack.org site retention policy is
to publish the current release (Newton), plus two previous releases (Mitaka
and Liberty). The retention policy was initially designed to match the "End
of Life" support policy that project branches adhere to, which is documented
as indicating stable branches (see References). Because the project code
would not be supported, the docs were removed from the docs site, to match
the project code branch strategy.
According to the last User Survey (see References), 9% of production OpenStack
installations were still running Icehouse, 17% were running Juno, and 40% were
running Kilo.
This would indicate that a significant number of users are relying on
documentation that could potentially disappear in accordance with our current
retention policy.
Historical note: When the documentation pages were created in 2010, they were
hosted on Rackspace Cloud Sites without a clear retention policy, which
resulted in a large number of unmanaged files over many years. The docs.o.o
site was the largest site on Cloud Sites at the time, which resulted in Cloud
Sites specifically asking us to remove old content. Change in hosting provider
was eventually enforced on the team by the sale of Cloud Sites to Liquid Web
in 2016, and the site is now hosted on internal OpenStack infrastructure, and
the current retention policy was decided upon at the Barcelona Summit in
October 2016.
Proposed change
===============
* At every new release, the release becoming EOL'd is moved to a read-only
archive folder (this can be completed with a script, TBD).
* The archive folder is made available online for people to download the
branch they require as a tar.gz file.
* The archive folder should be accessible from the openstack-manuals repo,
and delivered publicly from the docs.openstack.org site.
* Note somewhere obvious that documents in the archive are not editable, and
bugs raised against them will be closed WONTFIX.
* Develop a procedure for taking a certain git history SHA and creating the
documentation locally. Write this up in the Contributor Guide.
Notes
-----
* This solution would cover all documentation in /$EOLRELEASE on
docs.openstack.org, including /developer, in order to simplify the process.
* This covers books that are already versioned (Install Guide, Config Ref,
and CLI Ref), but could potentially be expanded to all books.
* We will need to determine a threshold for deleting documentation from the
archive permanently. This can be achieved through a community discussion.
* All documentation history and tags will remain in the git repository, so it
is always possible to checkout old versions, even if they are not published.
* Can we do something like archive.openstack.org? Also, maybe a link to
archives from the main docs site.
Alternatives
------------
* Maintain the status quo (Do nothing)
* About a million other things
Implementation
==============
Assignee(s)
-----------
Primary assignee:
* Documentation team
Other contributors:
* Lana Brindley (loquacities)
* Alexandra Settle (asettle)
* Brian Moss - Docs Tools (bmoss)
* Anne Gentle (annegentle)
Work items
----------
* Develop script for archiving (Brian & Infra)
* Investigate the possibility of archiving only PDF versions (Brian & Infra)
* Use Sphinxmark to watermark old versions, and add note about bugs
(Brian & Tools)
* Implementation
* Document the procedure for restoring documentation from a git repo at a
certain point-in-time (Anne)
Dependencies
============
* Infra assistance
Testing
=======
Testing will follow the standard documentation review process.
References
==========
* OpenStack supported releases: `<https://releases.openstack.org/>`_
* OpenStack "End of Life" support policy: `<http://docs.openstack.org/project-team-guide/stable-branches.html/>`_
* OpenStack User Survey snapshot results, October 2016:
`<https://www.openstack.org/assets/survey/October2016SurveyReport.pdf>`_
* This conversation was triggered by:
`<https://bugs.launchpad.net/openstack-manuals/+bug/1658659>`_ and
`<https://bugs.launchpad.net/openstack-manuals/+bug/1621685>`_
* Mailing list conversation:
`<http://lists.openstack.org/pipermail/openstack-docs/2017-January/009493.html>`_
* Meeting discussion:
`<http://eavesdrop.openstack.org/meetings/docteam/2017/docteam.2017-01-26-21.03.log.html>`_

View File

@ -0,0 +1,296 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==============================================
Retention Policy for Published Documentation
==============================================
https://blueprints.launchpad.net/openstack-manuals/+spec/retention-policy
The `2017 User survey`_ highlights the fact that many of our users are
still deploying and otherwise working with versions of OpenStack for
which upstream support is no longer available. These end-of-life
versions are still clearly useful to some users, and to improve their
experience we should continue to make the documentation for those
releases available.
Problem description
===================
The current retention policy for published documentation calls for
manuals to be removed from docs.openstack.org when the associated
branches are marked "end of life" and closed. The older documentation
has been removed from the site in the past for several reasons. In no
particular order:
* **Content size**
The amount of content we were publishing was quite large for the
hosting service being used at the time.
* **Search results**
* Removing older documentation was seen as reducing confusion
because users searching without specifying a version number or
series name would not encounter information that was out of date.
* Documentation for older releases, by virtue of having longer lived
stable URLs, was appearing higher in search results than similar
updated content for newer releases.
* **Support requests**
Bugs and support requests have been filed for versions of the
documentation that will no longer be updated or fixed. This caused
undue burden to the documentation team.
* **Build support**
After the stable branch for the documentation was closed, there was
no longer a way to build and update the published
documentation. This is not an issue with regard to content, but we
have had at least one situation where there was a security issue for
a cross-site-scripting attack that pointed out if we had similar
problems in the future with dynamic aspects of the site for branches
that could no longer be built, deleting the content may be the only
action we could take. See commit
de6289854e9a059d5a33075b6593e7f9cb3b4f2d in the
clouddocs-maven-plugin repository for details (that repository is
not indexed via gerrit or available via the cgit web UI for some
reason).
We are updating this policy for two reasons:
1. According to the latest user survey at the time of this writing,
around 60% of users running a version of OpenStack no longer
supported upstream. These users are left without accurate
documentation for the versions of software that they are deploying.
2. As part of the :doc:`../pike/os-manuals-migration` initiative, more
of the actively maintained documentation is now managed by project
teams outside of the ``openstack-manuals`` git repository.
Proposed change
===============
The proposed change is to stop deleting all content from
docs.openstack.org based on its age, or the age of the software to
which it applies or the repository from which it was recovered.
We will also recover the admin guide, CLI reference, and user guide
for Mitaka through Ocata. The admin guide is meant to be reusable
between series, but that is only true when the underlying operating
system does not change. Since it has changed in the past, we need to
view the admin guide as series-specific *even when we do not change
it*. The CLI reference and user guide for Mitaka use the old versions
of the clients, and the options may have changed since then.
The Mitaka series was selected for several reasons.
1. It is the first series for which all of the documentation was
managed using Sphinx, which is easier to install than the older
tools and we have more knowledge throughout the community for
working with Sphinx.
2. It also represents a sufficiently old version to be useful to a
large number of users. The combination of utility and ease of
updating makes Mitaka a good compromise point for starting the new
retention policy.
3. Much of the project-specific documentation from the Mitaka release
still exists on docs.openstack.org so it will be easy to link to
it.
We will find other ways to mitigate the issues that motivated us to
adopt the old policy of deleting end-of-life releases.
The documentation for end-of-life releases will still be frozen when
the relevant stable branches are closed, so no updates will be
made. This change should not significantly expand the maintenance
burden or expectations of users.
* **Content size**
We have already migrated docs.openstack.org off of the CloudSites
hosting service to a standard web server with a large
filesystem. The amount of content we are publishing is no longer a
significant issue.
* **Search results**
Given the number of users running older versions, our priorities for
search results have changed. We *want* old versions to be available
via search engines, assuming the user can easily determine whether
the results they have found match their version or that they can
navigate between versions quickly.
We will continue to experiment with search engine optimization
techniques to have unqualified searches like "installing nova" show
newer results. That work will have its own spec, to be created by
the team that takes on the task.
We can make navigating between series-specific docs easy by taking
advantage of the ``earliest_published_series`` `configuration option
for the
theme. <https://docs.openstack.org/openstackdocstheme/latest/>`__
We will also update the documentation theme to include a watermark
or "badge" clearly indicating when content is considered old and
especially when it is no longer maintained. These markers need to be
built outside of the documentation itself so they can be updated
independently, without patching the docs or adding steps to the
stable branch EOL process. The plan discussed at the PTG was based
on SVG files built from the openstack-manuals repository and
included into published pages by the ``openstackdocstheme``. More
details need to be worked out, and that work will involve its own
spec to follow this one.
* **Support requests**
Project teams are now responsible for project-specific
documentation. Bugs and support requests that come in to the
documentation team can be triaged and reassigned to project teams as
needed. Anything related to documentation that is no longer
supported should be treated the same way as bug reports for
unsupported code (closed "wontfix").
* **Build support**
Because we are not extending the supported lifetime for stable
branches and the documentation they contain, the only reasons to
need to build the docs are if we lose the data on the web server or
if there is another security issue. After a branch is closed, no
more updates to the documentation for that branch need to be
considered.
While we do not want to downplay the seriousness of potential issues
with cross-site scripting or JavaScript CVEs, we also do not want to
over-emphasize the likelihood of such issues coming up. If such
issues do arise, we will work on a resolution at that time. In a
worst-case scenario where restoring stable branches and changing the
builds does not work, and manual updates of the affected files are
not possible, we can delete the bad content. Any decision about the
best course of action will be made at the time by the people
actively working on the problem.
Similarly, if we experience a loss of data on the web server and
need to rebuild content, the people managing the recovery can
develop a plan when needed.
Alternatives
------------
#. Do nothing.
This option is not appealing because we have had clear and loud
requests from users to help them in this area.
#. Suggest that users build local copies of the documentation for old
releases.
Some users have resorted to trying to build their own internal
copies of the documentation to continue to manage their
deployments. They have found issues with the documentation at the
``$series-eol`` tags no longer building properly because external
references to things like sample files in git repositories are not
present.
#. Create ``docfixes`` branches, similar to the ``driverfixes``
branches used by project teams to allow vendors to collaborate on
patches to drivers after a version of the software has been marked
EOL. The ``docfixes`` branches would be allowed to build only the
documentation and update the published content on
docs.openstack.org (they would not be used for new releases of
software or code patches not related to documentation).
Without a significant number of contributors to review and manage
pages in these branches, it seems unlikely that we would see any
benefit from keeping them open. If the contributions to the
existing stable branches increase, we can reconsider this option in
the future.
#. Archive the content in non-indexed formats such as tarballs.
The old archival spec approved for Pike but never implemented
requires much more manual work and active management of old
content. Simply leaving the content in place on the web server is
more sustainable with a small documentation team.
Implementation
==============
Assignee(s)
-----------
Primary assignees:
* dhellmann
Other contributors:
* pkovar
Work Items
----------
* Restore the stable/mitaka version of the admin, cli, and user guides
are published using series-specific URLs. (dhellmann)
* Create a new ``stable/mitaka`` branch.
* Update the build scripts so the manuals are published to
series-specific URLs.
* Add appropriate redirects.
* Re-close the branch.
* Update the stable/ocata branch of openstack/openstack-manuals to
build the admin, cli, and user guides using series-specific
URLs. (*owner needed*)
* Update the build scripts so the manuals are published to
series-specific URLs.
* Add appropriate redirects.
* Update the stable/newton branch of openstack/openstack-manuals to
link to the Ocata versions of the admin, cli, and user guides.
* Write a spec for the version "badges" and implement the appropriate
changes. (*owner needed*)
Dependencies
============
None
Testing
=======
Old documents will be recovered as-is, and only changes needed to
update the publication locations and ensure the builds work will be
allowed.
References
==========
* `2017 User survey`_
.. _2017 User survey: http://superuser.openstack.org/articles/2017-openstack-user-survey-insights/
* Mailing list threads
* `July 2017 (docs list)
<http://lists.openstack.org/pipermail/openstack-docs/2017-July/thread.html#10069>`__
* `July 2017 (dev list)
<http://lists.openstack.org/pipermail/openstack-dev/2017-July/thread.html#120254>`__
* `August 2017 (dev list)
<http://lists.openstack.org/pipermail/openstack-dev/2017-August/thread.html#120541>`__
* `Notes from discussion at the Queens PTG
<https://etherpad.openstack.org/p/docs-i18n-ptg-queens>`__
* `Old "Archiving" spec
<http://git.openstack.org/cgit/openstack/docs-specs/commit/?id=4ce480f4e29d8514a8b01acbe8157d84ed731d04>`__
* `Old "Archiving" blueprint
<https://blueprints.launchpad.net/openstack-manuals/+spec/archiving>`__