head	1.4;
access;
symbols
	pkgsrc-2026Q2:1.2.0.2
	pkgsrc-2026Q2-base:1.2;
locks; strict;
comment	@# @;


1.4
date	2026.08.23.08.23.11;	author wiz;	state Exp;
branches;
next	1.3;
commitid	E0ZBXuR5tzNmNJSG;

1.3
date	2026.06.23.05.34.55;	author adam;	state Exp;
branches;
next	1.2;
commitid	YlKpMRtlnGz9PSKG;

1.2
date	2026.04.27.20.43.32;	author wiz;	state Exp;
branches;
next	1.1;
commitid	uLmnbntLyTwsGDDG;

1.1
date	2026.03.29.18.46.13;	author wiz;	state Exp;
branches;
next	;
commitid	f7tgK2SejZJcYTzG;


desc
@@


1.4
log
@py-vcs-versioning: update to 2.3.1.

Add some test dependencies.

## 2.3.1 (2026-08-19)

### Fixed

- Fix a `FileNotFoundError` crash in the git file finder when a
submodule is tracked in the index but its working tree directory
does not exist - such gitlinks are now skipped like not checked
out submodules.
([#1500](https://github.com/pypa/setuptools-scm/issues/1500))

## 2.3.0 (2026-08-13)

### Added

- Add a ``vcs_versioning.dynamic_metadata`` provider for the
[dynamic-metadata](https://github.com/scikit-build/dynamic-metadata)
system. ([#1465](https://github.com/pypa/setuptools-scm/issues/1465))


### Fixed

- Make the `tag.strict` and `scm.git.describe_command` diagnostics
actionable and non-conflicting.

  The `tag.strict` future-default notice is now reported by the
  git backend rather than at configuration time, and only when the
  future default would actually select a different tag for the
  repository -- the message names both the current and the future
  version string. Projects the change cannot affect are silent,
  and setting an explicit `describe_command` no longer triggers it
  at all, so the two warnings can no longer contradict each other.

  The `describe_command` notice is likewise limited to the case
  where it and an explicit `tag.strict` really disagree, and no
  longer claims that `tag.prefix` has no effect -- prefix stripping
  applies regardless of how the tag was selected.

  Both are logged at warning level instead of raised as warnings,
  so `SETUPTOOLS_SCM_DEBUG=ERROR` silences them.
  ([#1429](https://github.com/pypa/setuptools-scm/issues/1429)) -
Honour `export-ignore` on directories and submodules again in the
git file finder.

  The switch from `git archive` to `git ls-files --recurse-submodules`
  lost two parts of the archive semantics: `--recurse-submodules`
  listed every submodule regardless of `export-ignore`, and the
  `:(exclude,attr:export-ignore)` pathspec only matches files, so
  an `export-ignore` on a directory no longer excluded the files
  below it. Projects that kept vendored submodules in an `export-ignore`d
  directory suddenly shipped them in their sdists.

  The finder now lists a repository without recursion, checks
  `export-ignore` for directories via `git check-attr` (which is
  what `git archive` effectively does when it skips a tree), and
  only then descends into the submodules that survived. Submodule
  contents are still listed - with their own `.gitattributes`
  applied - so `export-ignore` in the parent repository now controls
  exactly which submodules get packaged. Submodules that are not
  checked out are skipped instead of failing the listing.
  ([#1469](https://github.com/pypa/setuptools-scm/issues/1469)) -
Honour `tag.strict` on Mercurial changesets that carry tags of
their own, and report the coming strict default for Mercurial
repositories.

  `tag.strict` was only applied when looking for the latest tag,
  so a checked-out changeset tagged `event-2024` still produced
  version `2024` even with `tag.strict = true`, while git rejected
  the same tag. Strict matching now applies to the tags on the
  changeset too: a changeset carrying only event-style tags is
  treated as untagged and versioning continues from the last real
  version tag, matching `git describe --match`. When several tags
  sit on one changeset, the version-shaped one is now selected
  instead of whichever Mercurial happened to list first.

  The `tag.strict` divergence diagnostic added in #1429 now covers
  Mercurial as well, naming the current and future version whenever
  the coming default would change them. Both backends share the
  message, and the git-only helpers moved to `_backends/_scm_workdir.py`.

  Note that the Mercurial backend required a dot in version tags
  before setuptools-scm 9, so for Mercurial projects the coming
  strict default restores the historical behavior.
  ([#1495](https://github.com/pypa/setuptools-scm/issues/1495))
@
text
@@@comment $NetBSD$
bin/vcs-versioning-${PYVERSSUFFIX}
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt
${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE.txt
${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
${PYSITELIB}/vcs_versioning/__init__.py
${PYSITELIB}/vcs_versioning/__init__.pyc
${PYSITELIB}/vcs_versioning/__init__.pyo
${PYSITELIB}/vcs_versioning/__main__.py
${PYSITELIB}/vcs_versioning/__main__.pyc
${PYSITELIB}/vcs_versioning/__main__.pyo
${PYSITELIB}/vcs_versioning/_backends/__init__.py
${PYSITELIB}/vcs_versioning/_backends/__init__.pyc
${PYSITELIB}/vcs_versioning/_backends/__init__.pyo
${PYSITELIB}/vcs_versioning/_backends/_discover_vcs.py
${PYSITELIB}/vcs_versioning/_backends/_discover_vcs.pyc
${PYSITELIB}/vcs_versioning/_backends/_discover_vcs.pyo
${PYSITELIB}/vcs_versioning/_backends/_git.py
${PYSITELIB}/vcs_versioning/_backends/_git.pyc
${PYSITELIB}/vcs_versioning/_backends/_git.pyo
${PYSITELIB}/vcs_versioning/_backends/_hg.py
${PYSITELIB}/vcs_versioning/_backends/_hg.pyc
${PYSITELIB}/vcs_versioning/_backends/_hg.pyo
${PYSITELIB}/vcs_versioning/_backends/_hg_git.py
${PYSITELIB}/vcs_versioning/_backends/_hg_git.pyc
${PYSITELIB}/vcs_versioning/_backends/_hg_git.pyo
${PYSITELIB}/vcs_versioning/_backends/_jj.py
${PYSITELIB}/vcs_versioning/_backends/_jj.pyc
${PYSITELIB}/vcs_versioning/_backends/_jj.pyo
${PYSITELIB}/vcs_versioning/_backends/_scm_workdir.py
${PYSITELIB}/vcs_versioning/_backends/_scm_workdir.pyc
${PYSITELIB}/vcs_versioning/_backends/_scm_workdir.pyo
${PYSITELIB}/vcs_versioning/_cli/__init__.py
${PYSITELIB}/vcs_versioning/_cli/__init__.pyc
${PYSITELIB}/vcs_versioning/_cli/__init__.pyo
${PYSITELIB}/vcs_versioning/_cli/_args.py
${PYSITELIB}/vcs_versioning/_cli/_args.pyc
${PYSITELIB}/vcs_versioning/_cli/_args.pyo
${PYSITELIB}/vcs_versioning/_cli/git_archival_full.txt
${PYSITELIB}/vcs_versioning/_cli/git_archival_stable.txt
${PYSITELIB}/vcs_versioning/_compat.py
${PYSITELIB}/vcs_versioning/_compat.pyc
${PYSITELIB}/vcs_versioning/_compat.pyo
${PYSITELIB}/vcs_versioning/_config.py
${PYSITELIB}/vcs_versioning/_config.pyc
${PYSITELIB}/vcs_versioning/_config.pyo
${PYSITELIB}/vcs_versioning/_discover.py
${PYSITELIB}/vcs_versioning/_discover.pyc
${PYSITELIB}/vcs_versioning/_discover.pyo
${PYSITELIB}/vcs_versioning/_dump_version.py
${PYSITELIB}/vcs_versioning/_dump_version.pyc
${PYSITELIB}/vcs_versioning/_dump_version.pyo
${PYSITELIB}/vcs_versioning/_dynamic_metadata.py
${PYSITELIB}/vcs_versioning/_dynamic_metadata.pyc
${PYSITELIB}/vcs_versioning/_dynamic_metadata.pyo
${PYSITELIB}/vcs_versioning/_entrypoints.py
${PYSITELIB}/vcs_versioning/_entrypoints.pyc
${PYSITELIB}/vcs_versioning/_entrypoints.pyo
${PYSITELIB}/vcs_versioning/_environment.py
${PYSITELIB}/vcs_versioning/_environment.pyc
${PYSITELIB}/vcs_versioning/_environment.pyo
${PYSITELIB}/vcs_versioning/_exceptions.py
${PYSITELIB}/vcs_versioning/_exceptions.pyc
${PYSITELIB}/vcs_versioning/_exceptions.pyo
${PYSITELIB}/vcs_versioning/_fallback_workdir.py
${PYSITELIB}/vcs_versioning/_fallback_workdir.pyc
${PYSITELIB}/vcs_versioning/_fallback_workdir.pyo
${PYSITELIB}/vcs_versioning/_fallbacks.py
${PYSITELIB}/vcs_versioning/_fallbacks.pyc
${PYSITELIB}/vcs_versioning/_fallbacks.pyo
${PYSITELIB}/vcs_versioning/_file_finders/__init__.py
${PYSITELIB}/vcs_versioning/_file_finders/__init__.pyc
${PYSITELIB}/vcs_versioning/_file_finders/__init__.pyo
${PYSITELIB}/vcs_versioning/_file_finders/_git.py
${PYSITELIB}/vcs_versioning/_file_finders/_git.pyc
${PYSITELIB}/vcs_versioning/_file_finders/_git.pyo
${PYSITELIB}/vcs_versioning/_file_finders/_hg.py
${PYSITELIB}/vcs_versioning/_file_finders/_hg.pyc
${PYSITELIB}/vcs_versioning/_file_finders/_hg.pyo
${PYSITELIB}/vcs_versioning/_file_finders/_jj.py
${PYSITELIB}/vcs_versioning/_file_finders/_jj.pyc
${PYSITELIB}/vcs_versioning/_file_finders/_jj.pyo
${PYSITELIB}/vcs_versioning/_get_version_impl.py
${PYSITELIB}/vcs_versioning/_get_version_impl.pyc
${PYSITELIB}/vcs_versioning/_get_version_impl.pyo
${PYSITELIB}/vcs_versioning/_integration.py
${PYSITELIB}/vcs_versioning/_integration.pyc
${PYSITELIB}/vcs_versioning/_integration.pyo
${PYSITELIB}/vcs_versioning/_integrator_helpers.py
${PYSITELIB}/vcs_versioning/_integrator_helpers.pyc
${PYSITELIB}/vcs_versioning/_integrator_helpers.pyo
${PYSITELIB}/vcs_versioning/_legacy_parse.py
${PYSITELIB}/vcs_versioning/_legacy_parse.pyc
${PYSITELIB}/vcs_versioning/_legacy_parse.pyo
${PYSITELIB}/vcs_versioning/_log.py
${PYSITELIB}/vcs_versioning/_log.pyc
${PYSITELIB}/vcs_versioning/_log.pyo
${PYSITELIB}/vcs_versioning/_modify_version.py
${PYSITELIB}/vcs_versioning/_modify_version.pyc
${PYSITELIB}/vcs_versioning/_modify_version.pyo
${PYSITELIB}/vcs_versioning/_node_utils.py
${PYSITELIB}/vcs_versioning/_node_utils.pyc
${PYSITELIB}/vcs_versioning/_node_utils.pyo
${PYSITELIB}/vcs_versioning/_overrides.py
${PYSITELIB}/vcs_versioning/_overrides.pyc
${PYSITELIB}/vcs_versioning/_overrides.pyo
${PYSITELIB}/vcs_versioning/_paths.py
${PYSITELIB}/vcs_versioning/_paths.pyc
${PYSITELIB}/vcs_versioning/_paths.pyo
${PYSITELIB}/vcs_versioning/_project_overrides.py
${PYSITELIB}/vcs_versioning/_project_overrides.pyc
${PYSITELIB}/vcs_versioning/_project_overrides.pyo
${PYSITELIB}/vcs_versioning/_protocols.py
${PYSITELIB}/vcs_versioning/_protocols.pyc
${PYSITELIB}/vcs_versioning/_protocols.pyo
${PYSITELIB}/vcs_versioning/_pyproject_reading.py
${PYSITELIB}/vcs_versioning/_pyproject_reading.pyc
${PYSITELIB}/vcs_versioning/_pyproject_reading.pyo
${PYSITELIB}/vcs_versioning/_requirement_cls.py
${PYSITELIB}/vcs_versioning/_requirement_cls.pyc
${PYSITELIB}/vcs_versioning/_requirement_cls.pyo
${PYSITELIB}/vcs_versioning/_run_cmd.py
${PYSITELIB}/vcs_versioning/_run_cmd.pyc
${PYSITELIB}/vcs_versioning/_run_cmd.pyo
${PYSITELIB}/vcs_versioning/_scm_metadata.py
${PYSITELIB}/vcs_versioning/_scm_metadata.pyc
${PYSITELIB}/vcs_versioning/_scm_metadata.pyo
${PYSITELIB}/vcs_versioning/_scm_version.py
${PYSITELIB}/vcs_versioning/_scm_version.pyc
${PYSITELIB}/vcs_versioning/_scm_version.pyo
${PYSITELIB}/vcs_versioning/_test_utils.py
${PYSITELIB}/vcs_versioning/_test_utils.pyc
${PYSITELIB}/vcs_versioning/_test_utils.pyo
${PYSITELIB}/vcs_versioning/_toml.py
${PYSITELIB}/vcs_versioning/_toml.pyc
${PYSITELIB}/vcs_versioning/_toml.pyo
${PYSITELIB}/vcs_versioning/_types.py
${PYSITELIB}/vcs_versioning/_types.pyc
${PYSITELIB}/vcs_versioning/_types.pyo
${PYSITELIB}/vcs_versioning/_version_cls.py
${PYSITELIB}/vcs_versioning/_version_cls.pyc
${PYSITELIB}/vcs_versioning/_version_cls.pyo
${PYSITELIB}/vcs_versioning/_version_fields.py
${PYSITELIB}/vcs_versioning/_version_fields.pyc
${PYSITELIB}/vcs_versioning/_version_fields.pyo
${PYSITELIB}/vcs_versioning/_version_inference.py
${PYSITELIB}/vcs_versioning/_version_inference.pyc
${PYSITELIB}/vcs_versioning/_version_inference.pyo
${PYSITELIB}/vcs_versioning/_version_schemes/__init__.py
${PYSITELIB}/vcs_versioning/_version_schemes/__init__.pyc
${PYSITELIB}/vcs_versioning/_version_schemes/__init__.pyo
${PYSITELIB}/vcs_versioning/_version_schemes/_common.py
${PYSITELIB}/vcs_versioning/_version_schemes/_common.pyc
${PYSITELIB}/vcs_versioning/_version_schemes/_common.pyo
${PYSITELIB}/vcs_versioning/_version_schemes/_standard.py
${PYSITELIB}/vcs_versioning/_version_schemes/_standard.pyc
${PYSITELIB}/vcs_versioning/_version_schemes/_standard.pyo
${PYSITELIB}/vcs_versioning/_version_schemes/_towncrier.py
${PYSITELIB}/vcs_versioning/_version_schemes/_towncrier.pyc
${PYSITELIB}/vcs_versioning/_version_schemes/_towncrier.pyo
${PYSITELIB}/vcs_versioning/_worktree_discovery.py
${PYSITELIB}/vcs_versioning/_worktree_discovery.pyc
${PYSITELIB}/vcs_versioning/_worktree_discovery.pyo
${PYSITELIB}/vcs_versioning/overrides.py
${PYSITELIB}/vcs_versioning/overrides.pyc
${PYSITELIB}/vcs_versioning/overrides.pyo
${PYSITELIB}/vcs_versioning/py.typed
${PYSITELIB}/vcs_versioning/test_api.py
${PYSITELIB}/vcs_versioning/test_api.pyc
${PYSITELIB}/vcs_versioning/test_api.pyo
@


1.3
log
@py-vcs-versioning: updated to 2.1.0

2.1.0 (2026-06-22)

Added

- Add `VcsEnvironment.build_config_from_pyproject`, `build_config_from_data`, and `pyproject_tool_names` methods for canonical env-first configuration creation.

Fixed

- Fix DeprecationWarning leak in pretend API by ensuring all public APIs attach VcsEnvironment to Configuration before accessing env-dependent properties.
- Fix fallback discovery so an unprocessed `.git_archival.txt` no longer shadows a valid `PKG-INFO` in PyPI sdists.

2.0.1 (2026-06-22)

Fixed

- Update CI to use PyPy 3.11 as cryptography has no PyPy 3.10 build available

2.0.0 (2026-06-22)

Removed

- Remove module-level accessor functions from ``vcs_versioning.overrides``: ``get_active_overrides()``, ``get_debug_level()``, ``get_subprocess_timeout()``, ``get_hg_command()``, ``get_source_date_epoch()``, and ``source_epoch_or_utc_now()``. Use ``VcsEnvironment.from_env()`` or ``config.env`` instead. External consumer audit confirmed no downstream usage of these functions.

Added

- Introduce ``VcsEnvironment`` and the chained API (``env → config → workdir → version``) for explicit runtime settings. Add ``Configuration.env``, ``Configuration.discover_workdir()``, and the ``vcs_versioning.discover_workdir`` entry-point group. Integrators can now use ``VcsEnvironment.from_env("MY_TOOL").build_config()`` to thread timeout, hg command, and other settings without ambient globals.
- Warn when ``version_file`` or ``write_to`` targets a file that is tracked by version control. A tracked version file causes ``git describe --dirty`` to report a dirty tree after builds rewrite it, leading to unexpected dev-version bumps on tag checkouts. The warning advises removing the file from VCS and adding it to the ignore file.
- Add native Jujutsu (jj) VCS backend with version inference, file finder, and strict error when `.jj/` is detected but `jj` is not installed. The `SETUPTOOLS_SCM_DISABLE_JJ=1` environment variable can be used to opt out of jj discovery in environments where `jj` is not available.
- Add ``no-local-version-strict`` local scheme that combines ``no-local-version`` and ``fail-on-uncommitted-changes`` in a single entry-point. When the working tree is dirty the build fails with ``DirtyWorkingTreeError``; otherwise the local segment is stripped, producing PyPI-safe versions suitable for release builds.
- Modernize Mercurial backend to use `latesttag(pattern)` template instead of manual tag discovery with revsets, reducing subprocess calls and enabling tag.prefix/tag.strict support for Mercurial repositories.
- Add `tag.prefix` and `tag.strict` configuration options for controlling which VCS tags are considered version tags. `tag.prefix` filters and strips a literal prefix (for monorepo tag schemes like `hatchling-v1.0.0`). `tag.strict` (tri-state) requires tags to contain at least one dot, rejecting non-version tags like event markers. Both compose to generate the `git describe --match` glob automatically.

Fixed

- Replace bare ``assert`` in ``ScmWorkdir.config`` and ``FallbackWorkdir.config`` with a ``RuntimeError`` that explains how to properly associate a ``Configuration`` with a workdir.
- Filter Mercurial pseudo-tags (tip, qbase, qtip, qparent) and iterate all tags when resolving versions, fixing spurious "no version found" warnings from MQ extension tags.
- The ``semver-pep440`` and ``semver-pep440-release-branch`` version schemes now
  correctly handle ``.dev0`` tags and pre-release tags. Exact checkout on a tag
  returns the tag as-is (``2.0.dev0`` stays ``2.0.dev0``, ``1.0.0rc1`` stays
  ``1.0.0rc1``). Non-exact ``.dev0`` tags are treated as explicit version anchors,
  producing ``X.Y.0.devN`` instead of incorrectly bumping past the anchored version.
- Replace git archive with git ls-files for file discovery, fixing freshly added files being hidden while still honoring export-ignore via gitattributes
- Fix git archivals from repositories with no tags failing to determine a version.
- Override user-defined shell aliases when invoking VCS commands, preventing alias expansions from corrupting subprocess output.
- Suppress spurious "toml section missing" warnings when setuptools-scm is used only for file finding or with simplified activation. The log message is now debug-level and only emitted when the package is actually a build requirement.
- Read towncrier fragment directory from `[tool.towncrier]` in `pyproject.toml` or the top-level `directory` key in `towncrier.toml` instead of hardcoding `changelog.d/`.
- Add the py.typed marker file.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.2 2026/04/27 20:43:32 wiz Exp $
d56 3
@


1.2
log
@py-vcs-versioning: version vcs-versioning

so multiple Python versions of this package can co-exist

Based on a patch by gdt@@

Bump PKGREVISION.
@
text
@d1 1
a1 1
@@comment $NetBSD$
d18 3
d30 3
d59 3
d65 3
d80 3
d92 3
d107 9
d125 3
d143 3
d161 3
d167 1
@


1.1
log
@devel/py-vcs-versioning: import py-vcs-versioning-1.1.1

Core VCS versioning functionality extracted as a standalone library
that can be used independently of setuptools.
@
text
@d2 1
a2 1
bin/vcs-versioning
@

