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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ x86-64

git_annex-10.20250630-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3macOS 14.0+ ARM64

git_annex-10.20250630-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.20250630-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250630-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 795254f97b56233a6f8374657e06e669ea82ca443e3a0bd4f585b85f8c842f80
MD5 f50eeabe50478582bc30fe5696142f21
BLAKE2b-256 1aec0671ebb6b839f65fa20aaf11a0622f06c3c0c5a9312d06e8f77478e5a55f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250630-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8abd5b1b2de3dd7221948c904e4db694f2162ae9c4b73841088c5249ea4049bf
MD5 5f002e8c73b1698b75732d427099139c
BLAKE2b-256 5932795c91a3519c62280b084cbd1a0a5e3c2c763e0aad120eb9729c0f312793

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250630-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 47ae855820cbd7662a0dff289fbe354be005f95378c3927fa37e0882f259a2ab
MD5 e59ca5a09c786059549cb08fce7b9098
BLAKE2b-256 d309ef5cc504229c7121a927d053c6310f50b847ec46bc2ca782bbf84d77b6e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250630-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cabb477cdf0ba18f4db26a06809a3c3250a92c2a6ddaafb7c59924bad214bc53
MD5 d7d8970b3446c9ca7e9509fd02a15b5e
BLAKE2b-256 523a4537e52b98ef2fef30d0b61bb974bee5049b431f7b3a92f426df3728da1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250630-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 61396a2556a3aa7cbdf67ff0e50273b80f0f7265856a7731fe865f36272d0e02
MD5 560edd7634774d438d857901413e5719
BLAKE2b-256 44b16d0a542d6d3721c90dc71575400fe23bc6942c43660d54713b0659729334

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