diff --git a/ChangeLog b/ChangeLog index 624911fc..994b8263 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +2022-04-16 Jay Berkenbilt + + * Perform code cleanup including some source-compatible but not + binary compatible changes to function signatures. + +2022-04-09 Jay Berkenbilt + + * Replace PointerHolder with std::shared_ptr through the QPDF API. + A backward-compatible interface is provided and enabled by default + with a warning that can be turned off. See "Smart Pointers" in the + "Design and Library Notes" section of the manual for information + including a detailed migration process to assist with migrating + code that uses the qpdf library. + +2022-04-03 Jay Berkenbilt + + * Add automatic code formatting with clang-format. See "Code + Formatting" in the "Contributing to qpdf" chapter of the manual. + 2022-03-19 Jay Berkenbilt * 10.6.3.0cmake1: unofficial release diff --git a/manual/release-notes.rst b/manual/release-notes.rst index 9afb1553..c52a7710 100644 --- a/manual/release-notes.rst +++ b/manual/release-notes.rst @@ -6,47 +6,65 @@ Release Notes For a detailed list of changes, please see the file :file:`ChangeLog` in the source distribution. -10.6.3 + cmake: March 19, 2022 - - This is an unofficial release and is marked as "pre-release" at - github. It is intended for developers and packagers who want to - test out the new build system. +11.0.0 + - Replacement of ``PointerHolder`` with ``std::shared_ptr`` - - The old autoconf-based build has been replaced with CMake. Version - 3.16 or newer is required. For all the details, please read - :ref:`installing` and, if you package qpdf for a distribution, - :ref:`packaging`. + - The qpdf-specific ``PointerHolder`` smart pointer implementation + has now been completely replaced with ``std::shared_ptr`` + through the qpdf API. Please see :ref:`smart-pointers` for + details about this change and a comprehensive migration plan. + Note that a backward-compatible ``PointerHolder`` class is + provided and is enabled by default. A warning is issued, but + this can be turned off by following the migration steps outlined + in the manual. - - For the most part, other than being familiar with generally how to - build things with cmake, what you need to know to convert your - build over is described in :ref:`autoconf-to-cmake`. Here are a - few changes in behavior to be aware of: + - Build replaced with cmake - - Example sources are installed by default in the documentation - directory. + - The old autoconf-based build has been replaced with CMake. Version + 3.16 or newer is required. For all the details, please read + :ref:`installing` and, if you package qpdf for a distribution, + :ref:`packaging`. - - The configure options to enable image comparison and large file - tests have been replaced by environment variables. The old - options set environment variables behind the scenes. Before, to - skip image tests, you had to set - ``QPDF_SKIP_TEST_COMPARE_IMAGES=1``, which was done by default. - Now these are off by default, and you have to set - ``QPDF_TEST_COMPARE_IMAGES=1`` to enable them. + - For the most part, other than being familiar with generally how to + build things with cmake, what you need to know to convert your + build over is described in :ref:`autoconf-to-cmake`. Here are a + few changes in behavior to be aware of: - - In the default configuration, the native crypto provider is only - selected when explicitly requested or when there are no other - options. See :ref:`crypto.build` for a detailed discussion. + - Example sources are installed by default in the documentation + directory. - - Windows external libraries are detected by default if the - :file:`external-libraries` directory is found. Static libraries - for zlib, libjpeg, and openssl are provided as described in - :file:`README-windows.md`. They are only compatible with - non-debug builds. + - The configure options to enable image comparison and large file + tests have been replaced by environment variables. The old + options set environment variables behind the scenes. Before, to + skip image tests, you had to set + ``QPDF_SKIP_TEST_COMPARE_IMAGES=1``, which was done by default. + Now these are off by default, and you have to set + ``QPDF_TEST_COMPARE_IMAGES=1`` to enable them. + + - In the default configuration, the native crypto provider is only + selected when explicitly requested or when there are no other + options. See :ref:`crypto.build` for a detailed discussion. + + - Windows external libraries are detected by default if the + :file:`external-libraries` directory is found. Static libraries + for zlib, libjpeg, and openssl are provided as described in + :file:`README-windows.md`. They are only compatible with + non-debug builds. + + - A new directory called ``pkg-tests`` has been added which + contains short shell scripts that can be used to smoke test an + installed qpdf package. These are used by the debian + ``autopkgtest`` framework but can be used by others. See + :file:`pkg-test/README.md` for details. + + - Other changes + + - A new chapter on contributing to qpdf has been added to the + documentation. See :ref:`contributing`. + + - The qpdf source code is now formatted automatically with + ``clang-format``. See :ref:`code-formatting` for information. - - A new directory called ``pkg-tests`` has been added which - contains short shell scripts that can be used to smoke test an - installed qpdf package. These are used by the debian - ``autopkgtest`` framework but can be used by others. See - :file:`pkg-test/README.md` for details. 10.6.3: March 8, 2022 - Announcement of upcoming change: