diff --git a/.tool-versions b/.tool-versions index 33c41cfb..2e352203 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,3 @@ python 3.9.18 -poetry 2.1.4 +poetry 2.2.1 +nodejs 20.11.0 diff --git a/docs/interfaces/cli.md b/docs/interfaces/cli.md index f7612f2f..89050bec 100644 --- a/docs/interfaces/cli.md +++ b/docs/interfaces/cli.md @@ -1,6 +1,6 @@ # Command-line Interface -After setting up `gitman` with a [config file](../index.md#setup), various commands can be run to manage these Git-controlled source dependencies. +After setting up Gitman with a [config file](../index.md#setup), various commands can be run to manage these Git-controlled source dependencies. ## Init diff --git a/docs/interfaces/plugin.md b/docs/interfaces/plugin.md index e233f4ce..9ddbd698 100644 --- a/docs/interfaces/plugin.md +++ b/docs/interfaces/plugin.md @@ -1,6 +1,6 @@ # Git Plugin -`gitman` offers a simplified version of the [command-line interface](cli.md) in the form of a plugin for Git. +Gitman offers a simplified version of the [command-line interface](cli.md) in the form of a plugin for Git. ## Install diff --git a/docs/requirements.txt b/docs/requirements.txt index d833f5b4..12c269ab 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,6 +1,6 @@ altgraph==0.17.2 ; python_version >= "3.9" and python_version < "3.15" astroid==3.3.11 ; python_version >= "3.9" and python_version < "3.15" -black==25.1.0 ; python_version >= "3.9" and python_version < "3.15" +black==25.9.0 ; python_version >= "3.9" and python_version < "3.15" cached-property==1.5.2 ; python_version >= "3.9" and python_version < "3.15" certifi==2024.7.4 ; python_version >= "3.9" and python_version < "3.15" charset-normalizer==2.1.1 ; python_version >= "3.9" and python_version < "3.15" @@ -9,54 +9,59 @@ click==8.1.3 ; python_version >= "3.9" and python_version < "3.15" colorama==0.4.5 ; python_version >= "3.9" and python_version < "3.15" coverage==7.10.6 ; python_version >= "3.9" and python_version < "3.15" coveragespace==6.1 ; python_version >= "3.9" and python_version < "3.15" -datafiles==2.3.1 ; python_version >= "3.9" and python_version < "3.15" +datafiles==2.3.4 ; python_version >= "3.9" and python_version < "3.15" dill==0.3.8 ; python_version >= "3.9" and python_version < "3.15" docopt==0.6.2 ; python_version >= "3.9" and python_version < "3.15" exceptiongroup==1.1.1 ; python_version >= "3.9" and python_version < "3.11" freezegun==1.5.5 ; python_version >= "3.9" and python_version < "3.15" future==0.18.3 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "win32" ghp-import==2.1.0 ; python_version >= "3.9" and python_version < "3.15" +griffe==1.14.0 ; python_version >= "3.9" and python_version < "3.11" +griffe==1.15.0 ; python_version >= "3.11" and python_version < "3.15" idna==3.3 ; python_version >= "3.9" and python_version < "3.15" -importlib-metadata==4.12.0 ; python_version >= "3.9" and python_version < "3.15" +importlib-metadata==4.12.0 ; python_version == "3.9" iniconfig==1.1.1 ; python_version >= "3.9" and python_version < "3.15" -isort==6.0.1 ; python_version >= "3.9" and python_version < "3.15" +isort==6.1.0 ; python_version >= "3.9" and python_version < "3.15" jinja2==3.1.6 ; python_version >= "3.9" and python_version < "3.15" json-five==1.1.2 ; python_version >= "3.9" and python_version < "3.15" +librt==0.6.3 ; python_version >= "3.9" and python_version < "3.15" and platform_python_implementation != "PyPy" macfsevents==0.8.4 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "darwin" macholib==1.16 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "darwin" -markdown==3.3.7 ; python_version >= "3.9" and python_version < "3.15" +markdown==3.9 ; python_version >= "3.9" and python_version < "3.15" markupsafe==2.1.1 ; python_version >= "3.9" and python_version < "3.15" mccabe==0.6.1 ; python_version >= "3.9" and python_version < "3.15" mergedeep==1.3.4 ; python_version >= "3.9" and python_version < "3.15" minilog==2.3.1 ; python_version >= "3.9" and python_version < "3.15" -mkdocs-autorefs==0.4.1 ; python_version >= "3.9" and python_version < "3.15" -mkdocs==1.3.1 ; python_version >= "3.9" and python_version < "3.15" -mkdocstrings-python-legacy==0.2.2 ; python_version >= "3.9" and python_version < "3.15" -mkdocstrings==0.18.1 ; python_version >= "3.9" and python_version < "3.15" +mkdocs-autorefs==1.4.3 ; python_version >= "3.9" and python_version < "3.15" +mkdocs-get-deps==0.2.0 ; python_version >= "3.9" and python_version < "3.15" +mkdocs==1.6.1 ; python_version >= "3.9" and python_version < "3.15" +mkdocstrings-python==1.18.2 ; python_version >= "3.9" and python_version < "3.11" +mkdocstrings-python==2.0.1 ; python_version >= "3.11" and python_version < "3.15" +mkdocstrings==0.30.1 ; python_version >= "3.9" and python_version < "3.15" mypy-extensions==1.0.0 ; python_version >= "3.9" and python_version < "3.15" -mypy==1.3.0 ; python_version >= "3.9" and python_version < "3.15" +mypy==1.19.1 ; python_version >= "3.9" and python_version < "3.15" nose==1.3.7 ; python_version >= "3.9" and python_version < "3.15" packaging==24.1 ; python_version >= "3.9" and python_version < "3.15" parse==1.19.0 ; python_version >= "3.9" and python_version < "3.15" -pathspec==0.10.1 ; python_version >= "3.9" and python_version < "3.15" +pathspec==0.12.1 ; python_version >= "3.9" and python_version < "3.15" pefile==2022.5.30 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "win32" platformdirs==2.5.2 ; python_version >= "3.9" and python_version < "3.15" pluggy==1.5.0 ; python_version >= "3.9" and python_version < "3.15" -pydocstyle==6.1.1 ; python_version >= "3.9" and python_version < "3.15" -pygments==2.15.0 ; python_version >= "3.9" and python_version < "3.15" -pyinstaller-hooks-contrib==2025.8 ; python_version >= "3.9" and python_version < "3.15" -pyinstaller==6.15.0 ; python_version >= "3.9" and python_version < "3.15" -pylint==3.3.8 ; python_version >= "3.9" and python_version < "3.15" +pydocstyle==6.3.0 ; python_version >= "3.9" and python_version < "3.15" +pygments==2.19.2 ; python_version >= "3.9" and python_version < "3.15" +pyinstaller-hooks-contrib==2025.10 ; python_version >= "3.9" and python_version < "3.15" +pyinstaller==6.17.0 ; python_version >= "3.9" and python_version < "3.15" +pylint==3.3.9 ; python_version >= "3.9" and python_version < "3.15" pymdown-extensions==10.0 ; python_version >= "3.9" and python_version < "3.15" pync==2.0.3 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "darwin" pytest-cov==7.0.0 ; python_version >= "3.9" and python_version < "3.15" -pytest-describe==2.2.0 ; python_version >= "3.9" and python_version < "3.15" +pytest-describe==3.1.0 ; python_version >= "3.9" and python_version < "3.15" pytest-expecter==3.0 ; python_version >= "3.9" and python_version < "3.15" pytest-random==0.02 ; python_version >= "3.9" and python_version < "3.15" -pytest==8.3.2 ; python_version >= "3.9" and python_version < "3.15" +pytest==8.4.2 ; python_version >= "3.9" and python_version < "3.15" python-dateutil==2.8.2 ; python_version >= "3.9" and python_version < "3.15" python-termstyle==0.1.10 ; python_version >= "3.9" and python_version < "3.15" -pytkdocs==0.16.1 ; python_version >= "3.9" and python_version < "3.15" +pytokens==0.1.10 ; python_version >= "3.9" and python_version < "3.15" pytoolconfig==1.3.0 ; python_version >= "3.9" and python_version < "3.15" pywin32-ctypes==0.2.3 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "win32" pyyaml-env-tag==0.1 ; python_version >= "3.9" and python_version < "3.15" @@ -64,8 +69,8 @@ pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.15" regex==2025.9.1 ; python_version >= "3.9" and python_version < "3.15" requests==2.32.5 ; python_version >= "3.9" and python_version < "3.15" rope==1.14.0 ; python_version >= "3.9" and python_version < "3.15" -ruamel-yaml-clib==0.2.8 ; python_version >= "3.9" and python_version < "3.11" and platform_python_implementation == "CPython" -ruamel-yaml==0.17.21 ; python_version >= "3.9" and python_version < "3.15" +ruamel-yaml-clib==0.2.14 ; python_version >= "3.9" and python_version < "3.14" and platform_python_implementation == "CPython" +ruamel-yaml==0.18.15 ; python_version >= "3.9" and python_version < "3.15" setuptools==80.9.0 ; python_version >= "3.9" and python_version < "3.15" six==1.16.0 ; python_version >= "3.9" and python_version < "3.15" sly==0.5 ; python_version >= "3.9" and python_version < "3.15" @@ -74,9 +79,9 @@ snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "3.15" tomli==2.0.1 ; python_version >= "3.9" and python_version < "3.11" tomlkit==0.10.2 ; python_version >= "3.9" and python_version < "3.15" types-freezegun==1.1.10 ; python_version >= "3.9" and python_version < "3.15" -types-setuptools==65.3.0 ; python_version >= "3.9" and python_version < "3.15" -typing-extensions==4.3.0 ; python_version >= "3.9" and python_version < "3.15" -universal-startfile==0.2 ; python_version >= "3.9" and python_version < "3.15" +types-setuptools==80.9.0.20251223 ; python_version >= "3.9" and python_version < "3.15" +typing-extensions==4.15.0 ; python_version >= "3.9" and python_version < "3.15" +universal-startfile==0.4 ; python_version >= "3.9" and python_version < "3.15" urllib3==2.6.3 ; python_version >= "3.9" and python_version < "3.15" watchdog==2.1.9 ; python_version >= "3.9" and python_version < "3.15" -zipp==3.19.1 ; python_version >= "3.9" and python_version < "3.15" +zipp==3.19.1 ; python_version == "3.9" diff --git a/docs/setup/git-svn.md b/docs/setup/git-svn.md index 22f9bf16..08cf43d0 100644 --- a/docs/setup/git-svn.md +++ b/docs/setup/git-svn.md @@ -1,6 +1,6 @@ # Git SVN Setup -If you're planning to use `gitman` to manage Subversion repositories, ensure `git svn` is configured correctly. +If you're planning to use Gitman to manage Subversion repositories, ensure `git svn` is configured correctly. ## Install missing SVN packages @@ -11,7 +11,7 @@ sudo apt-get install subversion libapache2-svn ## Credentials -In order for `gitman` to interact with `git svn`, it must be configured to store your SVN credentials (cached) for private repository access. As a test, trying cloning one of your private repositories: +In order for Gitman to interact with `git svn`, it must be configured to store your SVN credentials (cached) for private repository access. As a test, trying cloning one of your private repositories: ```sh $ git svn clone -r diff --git a/docs/setup/git.md b/docs/setup/git.md index f2847430..eba30a14 100644 --- a/docs/setup/git.md +++ b/docs/setup/git.md @@ -1,6 +1,6 @@ # Git Setup -In order for `gitman` to interact with Git, it must be configured to store your credentials for private repository access. +In order for Gitman to interact with Git, it must be configured to store your credentials for private repository access. To test, trying cloning one of your private repositories: diff --git a/docs/use-cases/branch-tracking.md b/docs/use-cases/branch-tracking.md index 479575d6..503ea43f 100644 --- a/docs/use-cases/branch-tracking.md +++ b/docs/use-cases/branch-tracking.md @@ -1,6 +1,6 @@ # Tracking Branches in Dependencies -One common use case of `gitman` is to track versions of related product sub-components such as a web app that depends on an API. +One common use case of Gitman is to track versions of related product sub-components such as a web app that depends on an API. ## Sample Configuration diff --git a/docs/use-cases/build-integration.md b/docs/use-cases/build-integration.md index 336a1308..4995fcd8 100644 --- a/docs/use-cases/build-integration.md +++ b/docs/use-cases/build-integration.md @@ -4,7 +4,7 @@ Gitman can be invoked from your build system or continuous integration environme ## Makefile -The following example shows one way you might want to call `gitman` from within a Makefile: +The following example shows one way you might want to call Gitman from within a Makefile: ```makefile .PHONY: all diff --git a/docs/use-cases/linked-features.md b/docs/use-cases/linked-features.md index 62979f48..af5ddec2 100644 --- a/docs/use-cases/linked-features.md +++ b/docs/use-cases/linked-features.md @@ -1,7 +1,7 @@ # Linking Related Feature Branches -Another use case of `gitman` is to test experimental versions of related product sub-components. In the [web app + API example](branch-tracking.md), a new feature might require changes in both the API and web app. +Another use case of Gitman is to test experimental versions of related product sub-components. In the [web app + API example](branch-tracking.md), a new feature might require changes in both the API and web app. ## Custom Locked Sources diff --git a/docs/use-cases/submodules.md b/docs/use-cases/submodules.md index 0af6855b..8cea0af4 100644 --- a/docs/use-cases/submodules.md +++ b/docs/use-cases/submodules.md @@ -14,7 +14,7 @@ Using Git in the outer working tree will essentially ignore the contents of the ## Mimicking Submodules -To get the same behavior using `gitman`, first delete the `.gitmodules` file and create a new `.gitman.yml`: +To get the same behavior using Gitman, first delete the `.gitmodules` file and create a new `.gitman.yml`: ```yaml location: .gitman diff --git a/poetry.lock b/poetry.lock index 53123d7e..8caf6d92 100644 --- a/poetry.lock +++ b/poetry.lock @@ -384,6 +384,41 @@ python-dateutil = ">=2.8.1" [package.extras] dev = ["flake8", "markdown", "twine", "wheel"] +[[package]] +name = "griffe" +version = "1.14.0" +description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version < \"3.11\"" +files = [ + {file = "griffe-1.14.0-py3-none-any.whl", hash = "sha256:0e9d52832cccf0f7188cfe585ba962d2674b241c01916d780925df34873bceb0"}, + {file = "griffe-1.14.0.tar.gz", hash = "sha256:9d2a15c1eca966d68e00517de5d69dd1bc5c9f2335ef6c1775362ba5b8651a13"}, +] + +[package.dependencies] +colorama = ">=0.4" + +[[package]] +name = "griffe" +version = "1.15.0" +description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." +optional = false +python-versions = ">=3.10" +groups = ["dev"] +markers = "python_version >= \"3.11\"" +files = [ + {file = "griffe-1.15.0-py3-none-any.whl", hash = "sha256:6f6762661949411031f5fcda9593f586e6ce8340f0ba88921a0f2ef7a81eb9a3"}, + {file = "griffe-1.15.0.tar.gz", hash = "sha256:7726e3afd6f298fbc3696e67958803e7ac843c1cfe59734b6251a40cdbfb5eea"}, +] + +[package.dependencies] +colorama = ">=0.4" + +[package.extras] +pypi = ["pip (>=24.0)", "platformdirs (>=4.2)", "wheel (>=0.42)"] + [[package]] name = "idna" version = "3.3" @@ -795,6 +830,43 @@ crystal = ["mkdocstrings-crystal (>=0.3.4)"] python = ["mkdocstrings-python (>=1.16.2)"] python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] +[[package]] +name = "mkdocstrings-python" +version = "1.18.2" +description = "A Python handler for mkdocstrings." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version < \"3.11\"" +files = [ + {file = "mkdocstrings_python-1.18.2-py3-none-any.whl", hash = "sha256:944fe6deb8f08f33fa936d538233c4036e9f53e840994f6146e8e94eb71b600d"}, + {file = "mkdocstrings_python-1.18.2.tar.gz", hash = "sha256:4ad536920a07b6336f50d4c6d5603316fafb1172c5c882370cbbc954770ad323"}, +] + +[package.dependencies] +griffe = ">=1.13" +mkdocs-autorefs = ">=1.4" +mkdocstrings = ">=0.30" +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "mkdocstrings-python" +version = "2.0.1" +description = "A Python handler for mkdocstrings." +optional = false +python-versions = ">=3.10" +groups = ["dev"] +markers = "python_version >= \"3.11\"" +files = [ + {file = "mkdocstrings_python-2.0.1-py3-none-any.whl", hash = "sha256:66ecff45c5f8b71bf174e11d49afc845c2dfc7fc0ab17a86b6b337e0f24d8d90"}, + {file = "mkdocstrings_python-2.0.1.tar.gz", hash = "sha256:843a562221e6a471fefdd4b45cc6c22d2607ccbad632879234fa9692e9cf7732"}, +] + +[package.dependencies] +griffe = ">=1.13" +mkdocs-autorefs = ">=1.4" +mkdocstrings = ">=0.30" + [[package]] name = "mypy" version = "1.19.1" @@ -1577,8 +1649,6 @@ files = [ {file = "ruamel.yaml.clib-0.2.14-cp39-cp39-win32.whl", hash = "sha256:6d5472f63a31b042aadf5ed28dd3ef0523da49ac17f0463e10fda9c4a2773352"}, {file = "ruamel.yaml.clib-0.2.14-cp39-cp39-win_amd64.whl", hash = "sha256:8dd3c2cc49caa7a8d64b67146462aed6723a0495e44bf0aa0a2e94beaa8432f6"}, {file = "ruamel.yaml.clib-0.2.14.tar.gz", hash = "sha256:803f5044b13602d58ea378576dd75aa759f52116a0232608e8fdada4da33752e"}, - {file = "ruamel_yaml_clib-0.2.14-cp314-cp314-win32.whl", hash = "sha256:9b4104bf43ca0cd4e6f738cb86326a3b2f6eef00f417bd1e7efb7bdffe74c539"}, - {file = "ruamel_yaml_clib-0.2.14-cp314-cp314-win_amd64.whl", hash = "sha256:13997d7d354a9890ea1ec5937a219817464e5cc344805b37671562a401ca3008"}, ] [[package]] @@ -1810,4 +1880,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.1" python-versions = "^3.9,<3.15" -content-hash = "4ab564b1b380a0b5a5bc8bc00ef539a33f066c1772c41401583d205124730ee7" +content-hash = "2c65f3927ccc461ec9e27e5c94c0bfa36e7b6a599b7c0913fb6160dafead2aef" diff --git a/pyproject.toml b/pyproject.toml index 77960694..0c2a7c6d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,6 +76,7 @@ coveragespace = "^6.1" # Documentation mkdocs = "^1.2.3" mkdocstrings = ">=0.18.1,<0.31.0" +mkdocstrings-python = "*" pygments = "^2.15.0" jinja2 = "~3.1.6"