diff --git a/ChangeLog b/ChangeLog index da7fdab4..f591f7d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,42 @@ +2023-07-09 Jay Berkenbilt + + * This release consists entirely of changes made by M. Holger. + Mostly this is changes to the private API, performance + enhancements, code cleanup, and reformatting to 100 columns + instead of 80. For qpdf development, we are starting to use + JetBrains CLion, so a lot of the changes are moving us toward a + cleaner development experience in that environment. + +2023-06-15 Jay Berkenbilt + + * Bug fix: when a the same page is copied multiple times, copy + the annotations rather than having multiple pages share an + annotation object. Thanks to M. Holger for the fix. Fixes #600. + +2023-06-14 Jay Berkenbilt + + * Add "FUTURE" build option for enabling experimental APIs. Do not + package qpdf built with the FUTURE option as there are no binary + compatibility or even source compatibility guarantees. The option + is intended for developers who want to ensure that future + potentially breaking changes are compatible with their code or + provide feedback on upcoming changes. At present, the only feature + enabled by FUTURE is a move constructor for QPDFObjectHandle. + While this shouldn't break any code, it would change details about + how many copies of a specific QPDFObjectHandle were in existence, + so it could potentially break code that was relying on internal + shared pointer reference counts. Thanks to M. Holger for the idea + and contribution. + +2023-05-25 Jay Berkenbilt + + * Add new method Buffer::copy and deprecate Buffer copy + constructor and assignment operator. Buffer copy operations are + expensive as they always involve copying the buffer content. Use + "buffer2 = buffer1.copy();" or "Buffer buffer2{buffer1.copy()};" + to make it explicit that copying is intended. This change was + contributed by M. Holger. + 2023-05-21 Jay Berkenbilt * 11.4.0: release diff --git a/manual/installation.rst b/manual/installation.rst index 52578dc2..7f95f3d9 100644 --- a/manual/installation.rst +++ b/manual/installation.rst @@ -285,7 +285,7 @@ FUTURE installed qpdf libraries. Set this if you want to test your code with proposed QPDF API changes and provide feedback prior to the inclusion of those changes in a release. Packagers should never - distribute backages built with this option. + distribute packages built with this option. QTEST_COLOR Turn this on or off to control whether qtest uses color in its diff --git a/manual/release-notes.rst b/manual/release-notes.rst index 806c5e6e..bdfe06d5 100644 --- a/manual/release-notes.rst +++ b/manual/release-notes.rst @@ -27,8 +27,40 @@ Planned changes for future 12.x (subject to change): it's possible that the new qpdf-provided conversion may override your conversion. + - ``Buffer`` copy constructor and assignment operator will be + removed. ``Buffer`` copy operations are expensive as they always + involve copying the buffer content. Use ``buffer2 = + buffer1.copy();`` or ``Buffer buffer2{buffer1.copy()};`` to make + it explicit that copying is intended. + .. x.y.z: not yet released +11.5.0: July 9, 2023 + - Bug Fixes + + - When copying the same page more than once, ensure that + annotations are copied and not shared among multiple pages. + + - Build Changes + + - Add new ``FUTURE`` build option. This option enables you to test + code against proposed changes to qpdf's API. See + :ref:`build-options` for details. Packagers: do not package qpdf + with the ``FUTURE`` option enabled as there are no API/ABI + compatibility guarantees when the option is turned on. + + - Library Enhancements + + - Add new method ``Buffer::copy`` and deprecate ``Buffer`` copy + constructor and assignment operator. ``Buffer`` copies are + expensive and should be done explicitly. + + - Miscellaneous Changes + + - The source code was reformatted to 100 columns instead of 80. + Numerous cosmetic changes and changes suggested by clang-tidy + were made. M. Holger did all the hard work. + 11.4.0: May 21, 2023 - CLI Enhancements