diff --git a/CHANGES.rst b/CHANGES.rst index 838926129..b3bb01f0c 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,37 +1,55 @@ -v9.9.9 (unreleased) -------------------- +Changelog +========= -fixes: +.. scriv-insert-here + +.. _changelog-9.9.9: + +9.9.9 (2025-10-13) +------------------ -- docs: add unreleased section (#1681) -- fix: check only activate plugins listed in CORE_PLUGINS (#1601) -- chore: bump jinja to 3.1.3 (#1684) -- chore: bump actions/setup-python version (#1686, #1700, #1708, #1738) -- chore: bump actions/checkout version (#1696, #1704, #1737) -- chore: optimize Dockerfile (#1679) -- docs: fix telegram install command (#1697) -- chore: add python versions to test (#1705) -- chore: remove python 3.8 support (#1707) -- chore: use ruff for formatting (#1706) -- chore: bump setuptools to 75.7.0 (#1709) -- chore: bump pyOpenSSL to 24.3.0 (#1710) -- chore: bump jinja2 to 3.1.5 and requests to 2.32.0 (#1714) -- Fix: situationally broken apropos command (#1711) -- chore: bump requests to 2.32.3 (#1715) -- Fix: Newlines replaced with spaces in botcmd args (#1716) -- chore: bump jinja2 to 3.1.6 (#1723) -- chore: update errbot-backend-slackv3 version to 0.3.1 (#1725) -- fix: Close and join thread pools between tests (#1724) -- fix: type hints (#1698) -- fix: update plugin config message (#1727) -- docs: add example on how to use threaded replies (#1728) -- fix: add extra_plugin_dir support to FullStackTest (#1726) -- fix: add missing py 3.13 in tox (#1731) -- fix: add filter to tar extract (#1730) -- refactor: use importlib to find plugins in entry_points (#1669, #1733) -- chore: bump setuptools to >=78.1.1 (#1734) -- docs: update tox chat server URLs (#1739) +features: + +- Use importlib to find plugins in entry_points (#1669, #1733) + +fixes: +- Check only activate plugins listed in CORE_PLUGINS (#1601) +- Fix type hints (#1698) +- Fix situationally broken apropos command (#1711) +- Fix newlines replaced with spaces in botcmd args (#1716) +- Close and join thread pools between tests (#1724) +- Add extra_plugin_dir support to FullStackTest (#1726) +- Update plugin config message (#1727) +- Add filter to tar extract (#1730) +- Add missing py 3.13 in tox (#1731) + +docs: + +- Add unreleased section (#1681) +- Fix telegram install command (#1697) +- Add example on how to use threaded replies (#1728) +- Update tox chat server URLs (#1739) + +deprecations: + +- Remove python 3.8 support (#1707) + +miscellaneous: + +- Optimize Dockerfile (#1679) +- Bump jinja to 3.1.3 (#1684) +- Add python versions to test (#1705) +- Use ruff for formatting (#1706) +- Bump setuptools to 75.7.0 (#1709) +- Bump pyOpenSSL to 24.3.0 (#1710) +- Bump jinja2 to 3.1.5 and requests to 2.32.0 (#1714) +- Bump requests to 2.32.3 (#1715) +- Bump jinja2 to 3.1.6 (#1723) +- Update errbot-backend-slackv3 version to 0.3.1 (#1725) +- Bump setuptools to >=78.1.1 (#1734) +- Bump actions/checkout version (#1696, #1704, #1737) +- Bump actions/setup-python version (#1686, #1700, #1708, #1738) v6.2.0 (2024-01-01) ------------------- diff --git a/README.rst b/README.rst index 21c1d20c8..850a09281 100644 --- a/README.rst +++ b/README.rst @@ -225,3 +225,35 @@ Contribution to Errbot itself ----------------------------- Feel free to fork and propose changes on `github `_ + +Contributing changes +~~~~~~~~~~~~~~~~~~~~ + +When contributing code changes, please include a changelog fragment describing your change. +We use `scriv `_ to manage our changelog. + +To add a changelog fragment: + +1. Install scriv (if not already installed): ``pip install scriv`` +2. Create a new changelog fragment with a brief descriptive name: ``scriv create --add`` +3. When prompted, enter a short slug (e.g., "fix_memory_leak" or "add_threading") +4. Edit the generated file in ``changes.d/`` to describe your change +5. Uncomment and fill in the appropriate category (features, fixes, docs, deprecations, miscellaneous) +6. Commit the fragment file with your changes + +**Note:** The fragment filename uses a timestamp + your description (e.g., ``20251014_163045_fix_memory_leak.rst``). +You don't need to know the PR number when creating the fragment - just describe your change and the +maintainers will add the PR reference when merging. + +**Example fragment:** + +.. code:: rst + + features: + - Add support for threaded replies in Discord backend + + fixes: + - Fix memory leak in plugin storage mechanism + +Only include the categories that apply to your change. The fragment will be automatically +included in the next release notes when maintainers run ``scriv collect``. diff --git a/changes.d/20251014_100000_core_plugins.rst b/changes.d/20251014_100000_core_plugins.rst new file mode 100644 index 000000000..75cc08c6c --- /dev/null +++ b/changes.d/20251014_100000_core_plugins.rst @@ -0,0 +1,2 @@ +fixes: +- Check only activate plugins listed in CORE_PLUGINS (#1601) diff --git a/changes.d/20251014_100001_importlib.rst b/changes.d/20251014_100001_importlib.rst new file mode 100644 index 000000000..2142ff67d --- /dev/null +++ b/changes.d/20251014_100001_importlib.rst @@ -0,0 +1,2 @@ +features: +- Use importlib to find plugins in entry_points (#1669, #1733) diff --git a/changes.d/20251014_100002_dockerfile.rst b/changes.d/20251014_100002_dockerfile.rst new file mode 100644 index 000000000..b86faec06 --- /dev/null +++ b/changes.d/20251014_100002_dockerfile.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Optimize Dockerfile (#1679) diff --git a/changes.d/20251014_100003_unreleased_section.rst b/changes.d/20251014_100003_unreleased_section.rst new file mode 100644 index 000000000..968b99500 --- /dev/null +++ b/changes.d/20251014_100003_unreleased_section.rst @@ -0,0 +1,2 @@ +docs: +- Add unreleased section (#1681) diff --git a/changes.d/20251014_100004_jinja.rst b/changes.d/20251014_100004_jinja.rst new file mode 100644 index 000000000..a99c01fba --- /dev/null +++ b/changes.d/20251014_100004_jinja.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump jinja to 3.1.3 (#1684) diff --git a/changes.d/20251014_100005_telegram_docs.rst b/changes.d/20251014_100005_telegram_docs.rst new file mode 100644 index 000000000..872bc4e03 --- /dev/null +++ b/changes.d/20251014_100005_telegram_docs.rst @@ -0,0 +1,2 @@ +docs: +- Fix telegram install command (#1697) diff --git a/changes.d/20251014_100006_type_hints.rst b/changes.d/20251014_100006_type_hints.rst new file mode 100644 index 000000000..9c884ac1b --- /dev/null +++ b/changes.d/20251014_100006_type_hints.rst @@ -0,0 +1,2 @@ +fixes: +- Fix type hints (#1698) diff --git a/changes.d/20251014_100007_python_versions.rst b/changes.d/20251014_100007_python_versions.rst new file mode 100644 index 000000000..7510f21bc --- /dev/null +++ b/changes.d/20251014_100007_python_versions.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Add python versions to test (#1705) diff --git a/changes.d/20251014_100008_ruff.rst b/changes.d/20251014_100008_ruff.rst new file mode 100644 index 000000000..914f8fc60 --- /dev/null +++ b/changes.d/20251014_100008_ruff.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Use ruff for formatting (#1706) diff --git a/changes.d/20251014_100009_python38.rst b/changes.d/20251014_100009_python38.rst new file mode 100644 index 000000000..e1f2d952e --- /dev/null +++ b/changes.d/20251014_100009_python38.rst @@ -0,0 +1,2 @@ +deprecations: +- Remove python 3.8 support (#1707) diff --git a/changes.d/20251014_100010_setuptools.rst b/changes.d/20251014_100010_setuptools.rst new file mode 100644 index 000000000..1492eb8ff --- /dev/null +++ b/changes.d/20251014_100010_setuptools.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump setuptools to 75.7.0 (#1709) diff --git a/changes.d/20251014_100011_pyopenssl.rst b/changes.d/20251014_100011_pyopenssl.rst new file mode 100644 index 000000000..12f98662d --- /dev/null +++ b/changes.d/20251014_100011_pyopenssl.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump pyOpenSSL to 24.3.0 (#1710) diff --git a/changes.d/20251014_100012_apropos.rst b/changes.d/20251014_100012_apropos.rst new file mode 100644 index 000000000..86962f601 --- /dev/null +++ b/changes.d/20251014_100012_apropos.rst @@ -0,0 +1,2 @@ +fixes: +- Fix situationally broken apropos command (#1711) diff --git a/changes.d/20251014_100013_jinja_requests.rst b/changes.d/20251014_100013_jinja_requests.rst new file mode 100644 index 000000000..1caf3c2e9 --- /dev/null +++ b/changes.d/20251014_100013_jinja_requests.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump jinja2 to 3.1.5 and requests to 2.32.0 (#1714) diff --git a/changes.d/20251014_100014_requests.rst b/changes.d/20251014_100014_requests.rst new file mode 100644 index 000000000..4f33a5ea7 --- /dev/null +++ b/changes.d/20251014_100014_requests.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump requests to 2.32.3 (#1715) diff --git a/changes.d/20251014_100015_botcmd_args.rst b/changes.d/20251014_100015_botcmd_args.rst new file mode 100644 index 000000000..a075dd0a8 --- /dev/null +++ b/changes.d/20251014_100015_botcmd_args.rst @@ -0,0 +1,2 @@ +fixes: +- Fix newlines replaced with spaces in botcmd args (#1716) diff --git a/changes.d/20251014_100016_jinja2.rst b/changes.d/20251014_100016_jinja2.rst new file mode 100644 index 000000000..fe9f6456d --- /dev/null +++ b/changes.d/20251014_100016_jinja2.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump jinja2 to 3.1.6 (#1723) diff --git a/changes.d/20251014_100017_thread_pools.rst b/changes.d/20251014_100017_thread_pools.rst new file mode 100644 index 000000000..d524a1e75 --- /dev/null +++ b/changes.d/20251014_100017_thread_pools.rst @@ -0,0 +1,2 @@ +fixes: +- Close and join thread pools between tests (#1724) diff --git a/changes.d/20251014_100018_slackv3.rst b/changes.d/20251014_100018_slackv3.rst new file mode 100644 index 000000000..b14a980c6 --- /dev/null +++ b/changes.d/20251014_100018_slackv3.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Update errbot-backend-slackv3 version to 0.3.1 (#1725) diff --git a/changes.d/20251014_100019_fullstacktest.rst b/changes.d/20251014_100019_fullstacktest.rst new file mode 100644 index 000000000..97e0f3e20 --- /dev/null +++ b/changes.d/20251014_100019_fullstacktest.rst @@ -0,0 +1,2 @@ +fixes: +- Add extra_plugin_dir support to FullStackTest (#1726) diff --git a/changes.d/20251014_100020_plugin_config.rst b/changes.d/20251014_100020_plugin_config.rst new file mode 100644 index 000000000..030d4ea74 --- /dev/null +++ b/changes.d/20251014_100020_plugin_config.rst @@ -0,0 +1,2 @@ +fixes: +- Update plugin config message (#1727) diff --git a/changes.d/20251014_100021_threaded_replies.rst b/changes.d/20251014_100021_threaded_replies.rst new file mode 100644 index 000000000..f9879f51b --- /dev/null +++ b/changes.d/20251014_100021_threaded_replies.rst @@ -0,0 +1,2 @@ +docs: +- Add example on how to use threaded replies (#1728) diff --git a/changes.d/20251014_100022_tar_extract.rst b/changes.d/20251014_100022_tar_extract.rst new file mode 100644 index 000000000..557d5dd41 --- /dev/null +++ b/changes.d/20251014_100022_tar_extract.rst @@ -0,0 +1,2 @@ +fixes: +- Add filter to tar extract (#1730) diff --git a/changes.d/20251014_100023_py313_tox.rst b/changes.d/20251014_100023_py313_tox.rst new file mode 100644 index 000000000..ae7478450 --- /dev/null +++ b/changes.d/20251014_100023_py313_tox.rst @@ -0,0 +1,2 @@ +fixes: +- Add missing py 3.13 in tox (#1731) diff --git a/changes.d/20251014_100024_setuptools2.rst b/changes.d/20251014_100024_setuptools2.rst new file mode 100644 index 000000000..1cca15cd4 --- /dev/null +++ b/changes.d/20251014_100024_setuptools2.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump setuptools to >=78.1.1 (#1734) diff --git a/changes.d/20251014_100025_tox_urls.rst b/changes.d/20251014_100025_tox_urls.rst new file mode 100644 index 000000000..40d120d14 --- /dev/null +++ b/changes.d/20251014_100025_tox_urls.rst @@ -0,0 +1,2 @@ +docs: +- Update tox chat server URLs (#1739) diff --git a/changes.d/20251014_100026_checkout_versions.rst b/changes.d/20251014_100026_checkout_versions.rst new file mode 100644 index 000000000..c82d25d18 --- /dev/null +++ b/changes.d/20251014_100026_checkout_versions.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump actions/checkout version (#1696, #1704, #1737) diff --git a/changes.d/20251014_100027_setup_python_versions.rst b/changes.d/20251014_100027_setup_python_versions.rst new file mode 100644 index 000000000..ef98494f3 --- /dev/null +++ b/changes.d/20251014_100027_setup_python_versions.rst @@ -0,0 +1,2 @@ +miscellaneous: +- Bump actions/setup-python version (#1686, #1700, #1708, #1738) diff --git a/changes.d/README.rst b/changes.d/README.rst new file mode 100644 index 000000000..7ba14e3cf --- /dev/null +++ b/changes.d/README.rst @@ -0,0 +1,39 @@ +Changelog Fragments +=================== +This directory contains changelog fragments managed by scriv. +How to Add a Changelog Entry +----------------------------- +When you make a change that should be noted in the changelog, create a new +fragment file using scriv: +.. code-block:: bash + scriv create +This will create a new file in this directory with a template. Edit the file +to describe your change under the appropriate category: +- **Features**: New features and improvements +- **Bug Fixes**: Bug fixes +- **Documentation**: Documentation improvements +- **Deprecations and Removals**: Deprecations and removals +- **Miscellaneous**: Other changes +Example +------- +After running ``scriv create``, you'll get a file like +``changelog.d/20251013_120000_username.rst``. Edit it to look like: +.. code-block:: rst + Features + -------- + - Add support for threaded replies in Discord backend. (#123) + Bug Fixes + --------- + - Fix memory leak in plugin storage mechanism. (#456) +Only include the categories that apply to your change. You can delete the +categories you don't need. +Linking to Issues +----------------- +When referencing GitHub issues or pull requests, use RST link syntax: +.. code-block:: rst + - Your change description. (#123) +Building the Changelog +----------------------- +Maintainers will collect all fragments into the main CHANGES.rst file using: +.. code-block:: bash + scriv collect --version X.Y.Z diff --git a/changes.d/scriv.ini b/changes.d/scriv.ini new file mode 100644 index 000000000..6162a0c67 --- /dev/null +++ b/changes.d/scriv.ini @@ -0,0 +1,41 @@ +[scriv] +# Scriv configuration for errbot +# See https://scriv.readthedocs.io for details + +# Format can be "rst", "md" +format = rst + +# Output changelog file +changelog = CHANGES.rst + +# RST header characters (must use rst_header_chars for RST) +rst_header_chars = -~ + +# Fragment directory +fragment_directory = changes.d + +# Where to insert new entries +md_header_level = 3 +rst_section_marker = .. scriv-insert-here + +# Categories in fragments (lowercase with colon, no RST headers) +categories = + features + fixes + docs + deprecations + miscellaneous + +# New fragment template +new_fragment_template = file: changes.d/templates/fragment.rst.j2 + +# Fragment file naming - uses timestamp + custom slug for readability +# Contributors should use a brief descriptive name when creating fragments +# Example: scriv create --edit --add will create a file like 20251014_163045_mychange.rst +fragment_template = {now:%Y%m%d_%H%M%S}_{slug}.{ext} + +# Title format for entries +entry_title_template = {{ version }} ({{ date.strftime('%%Y-%%m-%%d') }}) + +# Version +version = literal: 9.9.9 diff --git a/changes.d/templates/fragment.rst.j2 b/changes.d/templates/fragment.rst.j2 new file mode 100644 index 000000000..60568ff96 --- /dev/null +++ b/changes.d/templates/fragment.rst.j2 @@ -0,0 +1,18 @@ +.. A new changelog fragment. +.. +.. Uncomment the section for the type of change this fragment documents: +.. +.. features: +.. - Describe the new feature here. +.. +.. fixes: +.. - Describe the bug fix here. +.. +.. docs: +.. - Describe the documentation change here. +.. +.. deprecations: +.. - Describe the deprecation or removal here. +.. +.. miscellaneous: +.. - Describe miscellaneous changes here.