xref: /aosp_15_r20/external/cronet/third_party/libc++/src/docs/ReleaseProcedure.rst (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1.. _ReleaseProcedure:
2
3=================
4Release procedure
5=================
6
7The LLVM project creates a new release twice a year following a fixed
8`schedule <https://llvm.org/docs/HowToReleaseLLVM.html#annual-release-schedule>`__.
9This page describes the libc++ procedure for that release.
10
11Prepare the release
12===================
13
14This is done by the libc++ developers.
15
16It should be finished before the Release managers start branching the new
17release:
18
19* Make sure ``libcxx/docs/ReleaseNotes/<VERSION>.rst`` is up to date. Typically
20  this file is updated when contributing patches. Still there might be some
21  information added regarding the general improvements of larger projects.
22
23* Make sure the deprecated features on this page are up to date. Typically a
24  new deprecated feature should be added to the release notes and this page.
25  However this should be verified so removals won't get forgotten.
26
27* Make sure the latest Unicode version is used. The C++ Standard
28  `refers to the Unicode Standard <https://wg21.link/intro.refs#1.10>`__
29
30  ``The Unicode Consortium. The Unicode Standard. Available from: https://www.unicode.org/versions/latest/``
31
32  Typically the Unicode Consortium has one release per year. The libc++
33  format library uses the Unicode Standard. Libc++ should be updated to the
34  latest Unicode version. Updating means using the latest data files and, if
35  needed, adapting the code to changes in the Unicode Standard.
36
37* Make sure all libc++ supported compilers in the CI are updated to their
38  latest release.
39
40Branching
41=========
42
43This is done by the LLVM Release managers.
44
45After branching for an LLVM release:
46
471. Update ``_LIBCPP_VERSION`` in ``libcxx/include/__config``
482. Update the version number in ``libcxx/docs/conf.py``
493. Update ``_LIBCPPABI_VERSION`` in ``libcxxabi/include/cxxabi.h``
504. Update ``_LIBUNWIND_VERSION`` in ``libunwind/include/__libunwind_config.h``
515. Create a release notes file for the next release from the template
526. Point to the new release notes file from ``libcxx/docs/ReleaseNotes.rst``
53
54Post branching
55==============
56
57This is done by the libc++ developers.
58
59After branching it takes a couple of days before the new LLVM ToT version is
60available on `<https://apt.llvm.org>`_. Once it is available the pre-commit CI
61can start using the new ToT version. In order to make sure patches can be
62backported to the release branch the oldest compiler is not removed yet.
63
64The section ``Upcoming Deprecations and Removals`` is cleared by the release
65managers. Copy back the items that were in this section.
66
67The items that need changing are marked with ``LLVM POST-BRANCH``.
68
69Post release
70============
71
72This is done by the libc++ developers.
73
74Support for the ToT - 3 version is removed:
75
76- Search for ``LLVM RELEASE`` and address their comments
77- Search for test that have ``UNSUPPORTED`` or ``XFAIL`` for the no longer supported version
78- Search for ``TODO(LLVM-<ToT>)`` and address their comments
79