From 80fcf3216a6f93b7fc5570a63af41fbbb8b3ef37 Mon Sep 17 00:00:00 2001 From: shenxianpeng Date: Sun, 23 Feb 2025 16:35:32 +0000 Subject: [PATCH] Update changelog and show it to documentation --- CHANGELOG.md | 239 +++++++++++++++++++++++----------------------- docs/changelog.md | 3 + mkdocs.yml | 2 + pyproject.toml | 1 + 4 files changed, 125 insertions(+), 120 deletions(-) create mode 100644 docs/changelog.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 0182fed7..184f62c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,33 +1,33 @@ +# Changelog -# v8.2.0 +## v8.2.0 -## Added +### Added - fix #960: add a ``--force-write-version-files`` flag for the cli -## Changed +### Changed - fix #950: ensure to pass encodings to io usage -- fix #957 - add subprocess timeout control env var +- fix #957: add subprocess timeout control env var - add sp-repo-review pre-commit hook -## Fixed +### Fixed - fix #1018: allow non-normalized versions for semver - fix #1103: respect GIT_CEILING_DIRECTORIES when trying to find git toplevels - fix #1081: add name normalized pipx entrypoint - fix #1080: clean pdm from PYTHONPATH to protect mercurial -- -# 8.1.0 +## v8.1.0 -## Changed +### Changed - inclusion of `__all__` in autogenerated `version.py` files to aid IDE autoimports -# v8.0.4 +## v8.0.4 -## Changed +### Changed - introduce scriv for changelog management - reconfigure local build backend to use an attribute instead of star imports from setuptools @@ -36,24 +36,23 @@ - add build and wheel to the test requirements for regression testing - move internal toml handling to own module -## Fixed +### Fixed - fix #925: allow `write_to` to be an absolute path when it's a subdirectory of the root - fix #932: ensure type annotations in version file don't cause linter issues - fix #930: temporary restore `DEFAULT_VERSION_SCHEME` and `DEFAULT_LOCAL_SCHEME` on the `setuptools-scm` package +## v8.0.3 -# v8.0.3 - -## bugfix +### Fixed - fix #918 for good - remove external importlib-metadata to avoid source only loop - fix #926: ensure mypy on python3.8 works with the version file -# v8.0.2 +## v8.0.2 -## bugfix +### Fixed - fix #919: restore legacy version-file behaviour for external callers + add Deprecation warning - fix #918: use packaging from setuptools for self-build @@ -63,16 +62,16 @@ to account for large repos or slow connections -# v8.0.1 +## v8.0.1 -## bugfix +### Fixed - update version file template to work on older python versions by using type comments - ensure tag regex from setup.py is parsed into regex -# v8.0.0 +## v8.0.0 -## breaking +### breaking - remove legacy version parser api - config arg always required - turn Configuration into a dataclass @@ -88,7 +87,7 @@ - introduce `version_file` as replacement for `write_to` - renameed the project from `setuptools_scm` to `setuptools-scm` -## features +### Added - created a directory for the vcs-versioning package and added it to pypi - git: expect main as possible default branch @@ -109,48 +108,48 @@ - fix #527: type annotation in default version template - fix #549: use fallbacks when scm search raises CommandNotFoundError -## bugfixes +### Fixed - fix #883: use HeadersParser to ensure only mime metadata in headers is used - fix #884: parse calver dates from versions with the v prefix - don't use a C locale without UTF-8 support, when running commands. -# v7.1.0 +## v7.1.0 -- #748: use `tomllib` from stdlib +- \#748: use `tomllib` from stdlib - fix #762: handle non-ascii in setup.cfg -- #752: implement fallback file finders for archives -- #765: removed coding header in python template +- \#752: implement fallback file finders for archives +- \#765: removed coding header in python template - declared Python 3.11 support - fix #759: update .git_archival.txt templates match git-describe invocation - fix #772: fix handling of .git-archival.txt from tagged commit -# v7.0.5 +## v7.0.5 - fixes #742, #745: correctly handle accidentally released archival files -# v7.0.4 +## v7.0.4 - fix #727: correctly handle incomplete archival from setuptools_scm_git_archival - fix #691: correctly handle specifying root in pyproject.toml - correct root override check condition (to ensure absolute path matching) - allow root by the cli to be considered relative to the cli (using abspath) -# v7.0.3 +## v7.0.3 - fix mercurial usage when pip primes a isolated environment - fix regression for branch names on git + add a test -# v7.0.2 +## v7.0.2 - fix #723 and #722: remove bootstrap dependencies - ensure we read the distribution name from `setup.cfg` if needed even for `pyproject.toml` -# v7.0.1 +## v7.0.1 - fix #718: Avoid `ModuleNotFoundError` by requiring `importlib_metadata` in `python<3.8` -# v7.0.0 +## v7.0.0 - drop python 3.6 support - include git archival support @@ -158,18 +157,18 @@ (common with misconfigured containers, thanks @chrisburr ) - fix #548: correctly handle parsing the commit timestamp of HEAD when `log.showSignature` is set -# v6.4.2 +## v6.4.2 - fix #671: `NoReturn` is not available in painfully dead python 3.6 -# v6.4.1 +## v6.4.1 - fix regression #669: restore get_version signature - fix #668: harden the self-test for distribution extras -# 6.4.0 +## 6.4.0 -- compatibility adjustments for setuptools \>58 +- compatibility adjustments for setuptools \>58 - only put minimal setuptools version into toml extra to warn people with old strict pins - correctly handle hg-git self-use - better mercurial detection @@ -182,18 +181,18 @@ - ensure no-guess-dev will fail on bad tags instead of generating invalid versions - ensure we use utc everywhere to avoid confusion -# 6.3.2 +## v6.3.2 - fix #629: correctly convert Version data in tags_to_version parser to avoid errors -# 6.3.1 +## v6.3.1 - fix #625: restore tomli in install_requires after the regression changes in took it out and some users never added it even tho they have pyproject.toml files -# 6.3.0 +## v6.3.0 -## warning +### warning This release explicitly warns on unsupported setuptools. This unfortunately has to happen as the legacy `setup_requires` mechanism @@ -207,21 +206,21 @@ to `setup.py`, which would install the required version of setuptools. This mechanism has long since been deprecated and removed as most people haven\'t been using it -## bugfixes +### Fixed - fix #612: depend on packaging to ensure version parsing parts - fix #611: correct the typo that hid away the toml extra and add it in `setup.py` as well - fix #615: restore support for the git_archive plugin which doesn't pass over the config - restore the ability to run on old setuptools while to avoid breaking pipelines -# v6.2.0 +## v6.2.0 - fix #608: resolve tomli dependency issue by making it a hard dependency as all intended/supported install options use pip/wheel this is only a feature release - ensure python 3.10 works -# v6.1.1 +## v6.1.1 - fix #605: completely disallow bdist_egg - modern enough setuptools\>=45 uses pip @@ -232,7 +231,7 @@ haven\'t been using it [tool.setuptools_scm.dist_name]{.title-ref}) section or [setup.cfg]{.title-ref} ([metadata.name]{.title-ref}) -# v6.1.0 +## v6.1.0 - fix #587: don\'t fail file finders when distribution is not given - fix #524: new parameters `normalize` and `version_cls` to customize @@ -247,11 +246,11 @@ haven\'t been using it - fix #557: Use `packaging.version` for `version_tuple` - fix #544: enhance errors on unsupported python/setuptools versions -# v6.0.1 +## v6.0.1 - fix #537: drop node_date on old git to avoid errors on missing %cI -# v6.0.0 +## v6.0.0 - fix #517: drop dead python support \>3.6 required - drop dead setuptools support \> 45 required (can install wheels) @@ -261,18 +260,18 @@ haven\'t been using it schemes - support for calendar versioning (calver) by date -# v5.0.2 +## v5.0.2 - fix #415: use git for matching prefixes to support the windows situation -# v5.0.1 +## v5.0.1 - fix #509: support `SETUPTOOLS_SCM_PRETEND_VERSION_FOR_${DISTRIBUTION_NAME}` for `pyproject.toml` -# v5.0.0 +## v5.0.0 -Breaking changes: +### Breaking changes - fix #339: strict errors on missing scm when parsing a scm dir to avoid false version lookups @@ -280,7 +279,7 @@ Breaking changes: it as direct target instead of the containing folder and print a warning -Bugfixes: +### Fixed - fix #352: add support for generally ignoring specific vcs roots - fix #471: better error for version bump failing on complex but @@ -300,16 +299,16 @@ Bugfixes: - fix #213: better error message for non-zero dev numbers in tags - fix #356: add git branch to version on describe failure -# v4.1.2 +## v4.1.2 - disallow git tags without dots by default again - #449 -# v4.1.1 +## v4.1.1 - drop jaraco.windows from pyproject.toml, allows for wheel builds on python2 -# v4.1.0 +## v4.1.0 - include python 3.9 via the deadsnakes action - return release_branch_semver scheme (it got dropped in a bad rebase) @@ -321,7 +320,7 @@ Bugfixes: - correct the tox flake8 invocation - trigger builds on tags again -# v4.0.0 +## v4.0.0 - Add `parentdir_prefix_version` to support installs from GitHub release tarballs. @@ -340,35 +339,35 @@ Bugfixes: - make global configuration available to version metadata - drop official support for python 3.4 -# v3.5.0 +## v3.5.0 - add `no-local-version` local scheme and improve documentation for schemes -# v3.4.4 +## v3.4.4 - fix #403: also sort out resource warnings when dealing with git file finding -# v3.4.3 +## v3.4.3 - fix #399: ensure the git file finder terminates subprocess after reading archive -# v3.4.2 +## v3.4.2 - fix #395: correctly transfer tag regex in the Configuration constructor - rollback \--first-parent for git describe as it turns out to be a regression for some users -# v3.4.1 +## v3.4.1 - pull in #377 to fix #374: correctly set up the default version scheme for pyproject usage. this bugfix got missed when rushing the release. -# v3.4.0 +## v3.4.0 - fix #181 - add support for projects built under setuptools declarative config by way of the @@ -383,49 +382,49 @@ Bugfixes: - use \--first-parent for git describe -# v3.3.3 +## v3.3.3 - add eggs for python3.7 and 3.8 to the deploy -# v3.3.2 +## v3.3.2 - fix #335 - fix python3.8 support and add builds for up to python3.8 -# v3.3.1 +## v3.3.1 - fix #333 (regression from #198) - use a specific fallback root when calling fallbacks. Remove old hack that resets the root when fallback entrypoints are present. -# v3.3.0 +## v3.3.0 - fix #198 by adding the `fallback_version` option, which sets the version to be used when everything else fails. -# v3.2.0 +## v3.2.0 \* fix #303 and #283 by adding the option `git_describe_command` to allow the user to control the way that [git describe]{.title-ref} is called. -# v3.1.0 +## v3.1.0 - fix #297 - correct the invocation in version_from_scm and deprecate it as its exposed by accident - fix #298 - handle git file listing on empty repositories - fix #268 - deprecate ScmVersion.extra -# v3.0.6 +## v3.0.6 - fix #295 - correctly handle self install from tarballs -# v3.0.5 +## v3.0.5 - fix #292 - match leading `V` character as well -# v3.0.4 +## v3.0.4 - re-release of 3.0.3 after fixing the release process @@ -434,17 +433,17 @@ v3.0.3 (pulled from pypi due to a packaging issue) ====== - fix #286 - duo an oversight a helper function was returning a generator instead of a list -# v3.0.2 +## v3.0.2 - fix a regression from tag parsing - support for multi-dashed prefixes - #284 -# v3.0.1 +## v3.0.1 - fix a regression in setuptools_scm.git.parse - reorder arguments so the positional invocation from before works as expected #281 -# v3.0.0 +## v3.0.0 - introduce pre-commit and use black - print the origin module to help testing @@ -459,14 +458,14 @@ v3.0.3 (pulled from pypi due to a packaging issue) ====== tag parsing and prefixes (thanks to \@punkadiddle for introducing it and passing it through) -# v2.1.0 +## v2.1.0 - enhance docs for sphinx usage - add symlink support to file finder for git #247 (thanks Stéphane Bidoul) - enhance tests handling win32 (thanks Stéphane Bidoul) -# v2.0.0 +## v2.0.0 - fix #237 - correct imports in code examples - improve mercurial commit detection (thanks Aaron) @@ -477,7 +476,7 @@ v3.0.3 (pulled from pypi due to a packaging issue) ====== - introduce support for branch name in version metadata and support a opt-in simplified semver version scheme -# v1.17.0 +## v1.17.0 - fix regression in git support - use a function to ensure it works in egg installed mode @@ -487,17 +486,17 @@ v3.0.3 (pulled from pypi due to a packaging issue) ====== (thanks Mehdi ABAAKOUK for both) -# v1.16.2 +## v1.16.2 - fix regression in handling git export ignores (thanks Mehdi ABAAKOUK) -# v1.16.1 +## v1.16.1 - fix regression in support for old setuptools versions (thanks Marco Clemencic) -# v1.16.0 +## v1.16.0 - drop support for eol python versions - #214 - fix misuse in surrogate-escape api @@ -509,47 +508,47 @@ v3.0.3 (pulled from pypi due to a packaging issue) ====== - fix #223 - remove the dependency on the internal `SetuptoolsVersion` as it was removed after long-standing deprecation -v1.15.7 ====== +## v1.15.7 - Fix #174 with #207: Reuse samefile backport as developed in jaraco.windows, and only use the backport where samefile is not available. -# v1.15.6 +## v1.15.6 - fix #171 by unpinning the py version to allow a fixed one to get installed -# v1.15.5 +## v1.15.5 - fix #167 by correctly respecting preformatted version metadata from PKG-INFO/EGG-INFO -# v1.15.4 +## v1.15.4 - fix issue #164: iterate all found entry points to avoid errors when pip remakes egg-info - enhance self-use to enable pip install from github again -# v1.15.3 +## v1.15.3 - bring back correctly getting our version in the own sdist, finalizes #114 - fix issue #150: strip local components of tags -# v1.15.2 +## v1.15.2 - fix issue #128: return None when a scm specific parse fails in a worktree to ease parse reuse -# v1.15.1 +## v1.15.1 - fix issue #126: the local part of any tags is discarded when guessing new versions - minor performance optimization by doing fewer git calls in the usual cases -# v1.15.0 +## v1.15.0 - more sophisticated ignoring of mercurial tag commits when considering distance in commits (thanks Petre Mierlutiu) @@ -560,44 +559,44 @@ v1.15.7 ====== sphinx - fix issue #81: fail more gracious when git/hg are missing - address issue #93: provide an experimental api to customize - behaviour on shallow git repos a custom parse function may pick pre + behavior on shallow git repos a custom parse function may pick pre parse actions to do when using git -# v1.14.1 +## v1.14.1 - fix #109: when detecting a dirty git workdir don't consider untracked file (this was a regression due to #86 in v1.13.1) - consider the distance 0 when the git node is unknown (happens when you haven't committed anything) -# v1.14.0 +## v1.14.0 - publish bdist_egg for python 2.6, 2.7 and 3.3-3.5 - fix issue #107 - dont use node if it is None -# v1.13.1 +## v1.13.1 - fix issue #86 - detect dirty git workdir without tags -# v1.13.0 +## v1.13.0 - fix regression caused by the fix of #101 - assert types for version dumping - strictly pass all versions through parsed version metadata -# v1.12.0 +## v1.12.0 - fix issue #97 - add support for mercurial plugins - fix issue #101 - write version cache even for pretend version (thanks anarcat for reporting and fixing) -# v1.11.1 +## v1.11.1 - fix issue #88 - better docs for sphinx usage (thanks Jason) - fix issue #89 - use normpath to deal with windows (thanks Te-jé Rodgers for reporting and fixing) -# v1.11.0 +## v1.11.0 - always run tag_to_version so in order to handle prefixes on old setuptools (thanks to Brian May) @@ -606,12 +605,12 @@ v1.15.7 ====== Unterwaditzer) - fix bug when using callable version_scheme (thanks Esben Haabendal) -# v1.10.1 +## v1.10.1 - fix issue #73 - in hg pre commit merge, consider parent1 instead of failing -# v1.10.0 +## v1.10.0 - add support for overriding the version number via the environment variable SETUPTOOLS_SCM_PRETEND_VERSION @@ -626,22 +625,22 @@ v1.15.7 ====== this change also introduces the setuptools_scm.parse_scm_fallback entrypoint which can be used to register custom archive fallbacks -# v1.9.0 +## v1.9.0 - Add `relative_to` parameter to `get_version` function, fixes #44 per #45. -# v1.8.0 +## v1.8.0 - fix issue with setuptools wrong version warnings being printed to standard out. User is informed now by distutils-warnings. - restructure root finding, we now reliably ignore outer scm and prefer PKG-INFO over scm, fixes #43 and #45 -# v1.7.0 +## v1.7.0 - correct the url to github thanks David Szotten - enhance scm not found errors with a note on git tarballs thanks Markus - add support for `write_to_template` -# v1.6.0 +## v1.6.0 - bail out early if the scm is missing @@ -651,64 +650,64 @@ v1.15.7 ====== - properly raise errors on write_to misuse (thanks Te-jé Rodgers) -# v1.5.5 +## v1.5.5 - Fix bug on Python 2 on Windows when environment has unicode fields. -# v1.5.4 +## v1.5.4 - Fix bug on Python 2 when version is loaded from existing metadata. -# v1.5.3 +## v1.5.3 - #28: Fix decoding error when PKG-INFO contains non-ASCII. -# v1.5.2 +## v1.5.2 - add zip_safe flag -# v1.5.1 +## v1.5.1 - fix file access bug I missed in 1.5 -# v1.5.0 +## v1.5.0 - moved setuptools integration related code to own file - support storing version strings into a module/text file using the `write_to` configuration parameter -# v1.4.0 +## v1.4.0 - proper handling for sdist - fix file-finder failure from windows - reshuffle docs -# v1.3.0 +## v1.3.0 - support setuptools easy_install egg creation details by hardwire-ing the version in the sdist -# v1.2.0 +## v1.2.0 - enhance self-use -# v1.1.0 +## v1.1.0 - enable self-use -# v1.0.0 +## v1.0.0 - documentation enhancements -# v0.26 +## v0.26 - rename to setuptools_scm - split into package, add lots of entry points for extension - pluggable version schemes -# v0.25 +## v0.25 - fix pep440 support this reshuffles the complete code for version guessing -# v0.24 +## v0.24 - don't drop dirty flag on node finding - fix distance for dirty flagged versions @@ -717,25 +716,25 @@ v1.15.7 ====== - include file finding - handle edge cases around dirty tagged versions -# v0.23 +## v0.23 - windows compatibility fix (thanks stefan) drop samefile since it`s missing in some python2 versions on windows - add tests to the source tarballs -# v0.22 +## v0.22 - windows compatibility fix (thanks stefan) use samefile since it does path normalisation -# v0.21 +## v0.21 - fix the own version attribute (thanks stefan) -# v0.20 +## v0.20 - fix issue 11: always take git describe long format to avoid the source of the ambiguity - fix issue 12: add a `__version__` attribute via pkginfo -# v0.19 +## v0.19 - configurable next version guessing - fix distance guessing (thanks stefan) diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 00000000..15fe40c9 --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,3 @@ +{% + include-markdown "../CHANGELOG.md" +%} diff --git a/mkdocs.yml b/mkdocs.yml index 79ad48a7..7d0553f8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -7,6 +7,7 @@ nav: - config.md - extending.md - overrides.md + - changelog.md theme: name: material @@ -24,6 +25,7 @@ markdown_extensions: plugins: - entangled - search +- include-markdown - mkdocstrings: default_handler: python handlers: diff --git a/pyproject.toml b/pyproject.toml index acb04a3b..21051a0e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,6 +50,7 @@ docs = [ "entangled-cli~=2.0", "mkdocs", "mkdocs-entangled-plugin", + "mkdocs-include-markdown-plugin", "mkdocs-material", "mkdocstrings[python]", "pygments",