From 08bca374fdcf3831e8ad15246fbd3b2d5675b4a5 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Thu, 21 Jan 2021 11:34:39 -0500 Subject: [PATCH] docs: update changelog, nicer output for script (#2811) --- docs/changelog.rst | 91 ++++++++++++++++++++++++++++++++++++----- tools/make_changelog.py | 27 ++++++++---- 2 files changed, 100 insertions(+), 18 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 2e97e7892..a1410a7a0 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -11,10 +11,57 @@ v2.6.2 (TBA, not yet released) ------------------------------ +Minor missing functionality added: + +* enum: add missing Enum.value property. + `#2739 `_ + * Allow thread termination to be avoided during shutdown for CPython 3.7+ via - ``.disarm``. + ``.disarm`` for ``gil_scoped_acquire``/``gil_scoped_release``. `#2657 `_ + +Build improvements: + +* Setup helpers: ``extra_compile_args`` and ``extra_link_args`` automatically set by + Pybind11Extension are now prepended, which allows them to be overridden + by user-set ``extra_compile_args`` and ``extra_link_args``. + `#2808 `_ + +* Setup helpers: Don't trigger unused parameter warning. + `#2735 `_ + +* CMake: Support running with ``--warn-uninitialized`` active. + `#2806 `_ + +* CMake: Avoid error if included from two submodule directories. + `#2804 `_ + +* CMake: Fix ``STATIC`` / ``SHARED`` being ignored in FindPython mode. + `#2796 `_ + +* CMake: Respect the setting for ``CMAKE_CXX_VISIBILITY_PRESET`` if defined. + `#2793 `_ + +* CMake: Fix issue with FindPython2/FindPython3 not working with ``pybind11::embed``. + `#2662 `_ + +* CMake: mixing local and installed pybind11's would prioritize the installed + one over the local one (regression in 2.6.0). + `#2716 `_ + + +Bug fixes: + +* Fix invalid access when calling a pybind11 ``__init__`` on a non-pybind11 + class instance. + `#2755 `_ + +* The ``type_caster`` for integers does not convert Python objects with + ``__int__`` anymore with ``noconvert`` or during the first round of trying + overloads. + `#2698 `_ + * Fix bug where the constructor of ``object`` subclasses would not throw on being passed a Python object of the wrong type. `#2701 `_ @@ -34,19 +81,41 @@ v2.6.2 (TBA, not yet released) * Fix ``py::gil_scoped_acquire`` assert with CPython 3.9 debug build. `#2683 `_ -* CMake: Fix issue with FindPython2/FindPython3 not working with ``pybind11::embed``. - `#2662 `_ - -* CMake: mixing local and installed pybind11's would prioritize the installed - one over the local one (regression in 2.6.0). - `#2716 `_ - -* Don't trigger unused parameter warning in ``setup_helpers.py``. - `#2735 `_ - * Fix issue with a test failing on PyTest 6.2. `#2741 `_ +Warning fixes: + +* Fix warning modifying constructor parameter 'flag' that shadows a field of + 'set_flag' ``[-Wshadow-field-in-constructor-modified]``. + `#2780 `_ + +* Suppressed some deprecation warnings about old-style + ``__init__``/``__setstate__`` in the tests. + `#2759 `_ + +Valgrind work: + +* Fixed various minor memory leaks in pybind11's test suite. + `#2758 `_ + +* Resolved memory leak in cpp_function initialization when exceptions occurred. + `#2756 `_ + +* Added a Valgrind build, checking for leaks and memory-related UB, to CI. + `#2746 `_ + +Compiler support: + +* Intel compiler was not activating C++14 support due to a broken define. + `#2679 `_ + +* Support ICC and NVIDIA HPC SDK in C++17 mode. + `#2729 `_ + +* Support Intel OneAPI compiler (ICC 20.2) and add to CI. + `#2573 `_ + v2.6.1 (Nov 11, 2020) diff --git a/tools/make_changelog.py b/tools/make_changelog.py index 2c8c47c51..609ce2f19 100755 --- a/tools/make_changelog.py +++ b/tools/make_changelog.py @@ -3,7 +3,10 @@ import re -import ghapi.core +import ghapi.all + +from rich import print +from rich.syntax import Syntax ENTRY = re.compile( @@ -19,8 +22,10 @@ ENTRY = re.compile( re.DOTALL | re.VERBOSE, ) +print() -api = ghapi.core.GhApi(owner="pybind", repo="pybind11") + +api = ghapi.all.GhApi(owner="pybind", repo="pybind11") issues = api.issues.list_for_repo(labels="needs changelog", state="closed") missing = [] @@ -34,17 +39,25 @@ for issue in issues: if not msg.endswith("."): msg += "." - print(msg) - print(f" `#{issue.number} <{issue.html_url}>`_\n") + msg += f"\n `#{issue.number} <{issue.html_url}>`_" + + print(Syntax(msg, "rst", theme="ansi_light")) + print() else: missing.append(issue) if missing: print() - print("-" * 30) + print("[blue]" + "-" * 30) print() for issue in missing: - print(f"Missing: {issue.title}") - print(f" {issue.html_url}") + print(f"[red bold]Missing:[/red bold][red] {issue.title}") + print(f"[red] {issue.html_url}\n") + + print("[bold]Template:\n") + msg = "## Suggested changelog entry:\n\n```rst\n\n```" + print(Syntax(msg, "md", theme="ansi_light")) + +print()