[libcxx-commits] [libcxx] b88db47 - [libc++] Encode the version in the ReleaseNotes file

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jul 18 11:06:34 PDT 2023


Author: Louis Dionne
Date: 2023-07-18T14:06:21-04:00
New Revision: b88db47bd2085c2c8a246751feb63a3ac20a3665

URL: https://github.com/llvm/llvm-project/commit/b88db47bd2085c2c8a246751feb63a3ac20a3665
DIFF: https://github.com/llvm/llvm-project/commit/b88db47bd2085c2c8a246751feb63a3ac20a3665.diff

LOG: [libc++] Encode the version in the ReleaseNotes file

This way, we don't need to remove the contents of the ReleaseNotes file
after the branch. This should make it much easier and natural to cherry-pick
changes onto the release branch. Typically, we need two patches for those.
First, we need the code changes against `main`, and then we need a patch
that updates the release notes on the just-created branch.

By versioning the release notes, it becomes easy to author a change
against `main` that targets a just-branched LLVM release by simply
adding it to the release notes for the right version. This has been
a pain point in previous releases.

Differential Revision: https://reviews.llvm.org/D155024

Added: 
    libcxx/docs/Helpers/ReleaseNotesTemplate.rst
    libcxx/docs/ReleaseNotes/17.rst

Modified: 
    libcxx/docs/ReleaseProcedure.rst
    libcxx/docs/index.rst

Removed: 
    libcxx/docs/ReleaseNotes.rst


################################################################################
diff  --git a/libcxx/docs/Helpers/ReleaseNotesTemplate.rst b/libcxx/docs/Helpers/ReleaseNotesTemplate.rst
new file mode 100644
index 00000000000000..395a5378b71054
--- /dev/null
+++ b/libcxx/docs/Helpers/ReleaseNotesTemplate.rst
@@ -0,0 +1,62 @@
+===========================================
+Libc++ XX.YY.ZZ (In-Progress) Release Notes
+===========================================
+
+.. contents::
+   :local:
+   :depth: 2
+
+Written by the `Libc++ Team <https://libcxx.llvm.org>`_
+
+.. warning::
+
+   These are in-progress notes for the upcoming libc++ XX.YY.ZZ release.
+   Release notes for previous releases can be found on
+   `the Download Page <https://releases.llvm.org/download.html>`_.
+
+Introduction
+============
+
+This document contains the release notes for the libc++ C++ Standard Library,
+part of the LLVM Compiler Infrastructure, release XX.YY.ZZ. Here we describe the
+status of libc++ in some detail, including major improvements from the previous
+release and new feature work. For the general LLVM release notes, see `the LLVM
+documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM releases may
+be downloaded from the `LLVM releases web site <https://llvm.org/releases/>`_.
+
+For more information about libc++, please see the `Libc++ Web Site
+<https://libcxx.llvm.org>`_ or the `LLVM Web Site <https://llvm.org>`_.
+
+Note that if you are reading this file from a Git checkout or the
+main Libc++ web page, this document applies to the *next* release, not
+the current one. To see the release notes for a specific release, please
+see the `releases page <https://llvm.org/releases/>`_.
+
+What's New in Libc++ XX.YY.ZZ?
+==============================
+
+
+Implemented Papers
+------------------
+
+
+Improvements and New Features
+-----------------------------
+
+
+Deprecations and Removals
+-------------------------
+
+
+Upcoming Deprecations and Removals
+----------------------------------
+
+NOTE: THIS SHOULD BE POPULATED FROM THE PREVIOUS RELEASE'S UPCOMING DEPRECATIONS AND REMOVALS FOR THE NEXT-NEXT RELEASE (IF ANY)
+
+ABI Affecting Changes
+---------------------
+
+
+Build System Changes
+--------------------
+

diff  --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes/17.rst
similarity index 100%
rename from libcxx/docs/ReleaseNotes.rst
rename to libcxx/docs/ReleaseNotes/17.rst

diff  --git a/libcxx/docs/ReleaseProcedure.rst b/libcxx/docs/ReleaseProcedure.rst
index f7d54f89a1011f..7981bb25c583ad 100644
--- a/libcxx/docs/ReleaseProcedure.rst
+++ b/libcxx/docs/ReleaseProcedure.rst
@@ -16,7 +16,7 @@ This is done by the libc++ developers.
 It should be finished before the Release managers start branching the new
 release:
 
-* Make sure the ``libcxx/docs/ReleaseNotes.rst`` is up to date. Typically
+* Make sure ``libcxx/docs/ReleaseNotes/<VERSION>.rst`` is up to date. Typically
   this file is updated when contributing patches. Still there might be some
   information added regarding the general improvements of larger projects.
 
@@ -48,7 +48,8 @@ After branching for an LLVM release:
 2. Update the version number in ``libcxx/docs/conf.py``
 3. Update ``_LIBCPPABI_VERSION`` in ``libcxxabi/include/cxxabi.h``
 4. Update ``_LIBUNWIND_VERSION`` in ``libunwind/include/__libunwind_config.h``
-5. Remove the in-progress warning from ``libcxx/docs/ReleaseNotes.rst``
+5. Create a release notes file for the next release from the template
+6. Point to the new release notes file from ``libcxx/docs/index.rst``
 
 Post branching
 ==============

diff  --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index c107dc46702327..40a3ce6c3844cd 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -34,7 +34,7 @@ Getting Started with libc++
 .. toctree::
    :maxdepth: 1
 
-   ReleaseNotes
+   ReleaseNotes/17
    UsingLibcxx
    BuildingLibcxx
    TestingLibcxx


        


More information about the libcxx-commits mailing list