Skip to main content

manage files with git, without checking their contents into git

Project description

Python wheel package for git-annex

Test git-annex wheel from PyPi

Why?

Git-annex is written in Haskell and plenty of installation methods are available. However, for deploying git-annex as a dependency of a Python library/application, like DataLad or AnnexRemote, system packages are a lot less flexible than Python's virtual environments, and other methods are more complex and fragile.

With git-annex being available from PyPi, versioned dependencies and deployment in application-specific environments are possible via standard means of Python packaging.

Caveats

A standard git-annex deployment is (primarily) a single binary (git-annex), and a bunch of symlinks that make this one binary fulfilled multiple roles (git-annex-shell, git-remote-annex, etc.). A Python wheel, however, is a ZIP file container with no support for symlinks, and also no support for "post-install" scripts.

In order to square this circle, the git-annex binary is wrapped via regular Python entrypoint scripts that handle calling git-annex as necessary. This delivers a cross-platform compatible wheel, but at a start-up cost (~30ms vs ~11ms on my laptop).

Installation

Get the package from PyPi, and install like any other package from PyPi.

uv users can deploy git-annex in a dedicated virtual environment via the one-liner:

uv tool install git-annex

git-annex build configuration

Git-annex is built with libmagic support.

Platform notes

Linux

The manylinux wheel is self-contained and includes copies of all libraries. It only depends on the declared GLIBC versions. The magic.mgc database is not included, and is assumed to be available on the target system. Install it separately, if needed (e.g., libmagic-mgc package).

Windows

The wheel is self-contained and includes a copy of libmagic and the magic.mgc database.

Mac

The wheel is self-contained and includes a copy of libmagic and the magic.mgc database.

Developer information

Sources

The sources for this package are available at https://github.com/psychoinformatics-de/git-annex-wheel

The repository tracks the git-annex sources as a Git submodule.

Issues

For issues related to the Python wheel packaging of git-annex, please use the tracker at https://github.com/psychoinformatics-de/git-annex-wheel/issues

How to update for a new git-annex release?

Advance the submodule ./git-annex to the new release tag.

Now adjust the package version in pyproject.toml accordingly. This version must follow the rules for Python packages.

The included (GitHub) action workflows will build a corresponding wheel and upload it to PyPi.

Acknowledgements

This work was funded, in part, by

  • Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant TRR 379 (546006540, Q02 project)
  • Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant SFB 1451 (431549029, INF project)
  • MKW-NRW: Ministerium für Kultur und Wissenschaft des Landes Nordrhein-Westfalen under the Kooperationsplattformen 2022 program, grant number: KP22-106A

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

git_annex-10.20250721-py3-none-win_amd64.whl (26.8 MB view details)

Uploaded Python 3Windows x86-64

git_annex-10.20250721-py3-none-manylinux_2_34_x86_64.whl (21.6 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

git_annex-10.20250721-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

git_annex-10.20250721-py3-none-macosx_14_0_arm64.whl (36.0 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

git_annex-10.20250721-py3-none-macosx_13_0_x86_64.whl (14.3 MB view details)

Uploaded Python 3macOS 13.0+ x86-64

File details

Details for the file git_annex-10.20250721-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250721-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ab878f65b06cd604c85c135826d5be3fd3dc0b8d9cf8e6f02a04de037bcdd2d7
MD5 28d7bab7eaaf06c4f4b0b7894669825c
BLAKE2b-256 cc459ebdb7ba82f691bc289e8e73f4a91ce7b8b85e31103d55b5101bf843ddc6

See more details on using hashes here.

File details

Details for the file git_annex-10.20250721-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250721-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5226c869f762db650e605d35dca837d2c85bf91c5c9c458bdb7be8efd1e12d1f
MD5 9473572facabbc853672cecd0fa3eba4
BLAKE2b-256 b84a27880a47d8ac6dbfbdc073a92109e6220c126e4cfbcd41de53e999970f1d

See more details on using hashes here.

File details

Details for the file git_annex-10.20250721-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250721-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0086e6fc51e3183747fd1aea6f28e2771d158dda0fcb942264e41a280298bdee
MD5 c17819ad11a0eec62e2db802819fc10d
BLAKE2b-256 90a0eed0f352481cfa22bdbf3e0cf4cab609d878592e140a864e03b5e51a0289

See more details on using hashes here.

File details

Details for the file git_annex-10.20250721-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250721-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3442a534299da57915da42849ab7d8e5713b52f11a30501ceec8b01b528d2fae
MD5 8192bce55a38f7937fa0a9eae12e891b
BLAKE2b-256 ba5175ecf60350927211992f115148e51a529e4d7b416131ee9bd7672b42da33

See more details on using hashes here.

File details

Details for the file git_annex-10.20250721-py3-none-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250721-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 949effaad4e63b4fc78d1b7a941c70e93f43adbfe59886139dd9a987990fc6b8
MD5 6fa3f41bd6aec37305e708ee2318f2d8
BLAKE2b-256 e5e1318ec89340869ea822b9c8a86374f381624405e56f7f95ff7725d5d8b26c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page