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.20250929-py3-none-win_amd64.whl (27.1 MB view details)

Uploaded Python 3Windows x86-64

git_annex-10.20250929-py3-none-manylinux_2_34_x86_64.whl (22.0 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

git_annex-10.20250929-py3-none-macosx_14_0_arm64.whl (36.4 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

git_annex-10.20250929-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.20250929-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250929-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2ac4f783d6fb608830eb4affe72e9709fe97520b7ecfa5ca5b4a1f6214588e50
MD5 ccf0c7aaa435dc9218ee26d382fbe54e
BLAKE2b-256 54b4bb7b4d816e7a798b20297f98a87f4be1687287a666e864bc983979f032e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250929-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cd0eae24f67e897f4552b157ca45880f5926cb3cbb93a4541ad1c7aa684181fe
MD5 00c2986c648a9a3f72d164d3af53f1c3
BLAKE2b-256 d8c9b38e270cf7ec67d6f9bad6d378d25a3da0285b084ddf1afe8eaf65526995

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250929-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d503ddc978e8a577cd0ced71c1b2726032079ca9b8b406d250b93d83563b6c84
MD5 bb572bd4051fbf6aa1c3de77ff7c13d5
BLAKE2b-256 f22a32daba81155f9a1dd8c1fdf6d222ee63afaf8a493c602f8dc89abd22ed35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250929-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7e472123b9ebdc5f07ef495891996857dbf61a3d28f63d613eac265e2cbb4094
MD5 02f8640a18ca0c64141238404c150675
BLAKE2b-256 66858016a78485fd0dc5d3fe28dcb6805ef94fba91e7247800c64e39ef87a76a

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