git-annex


Namegit-annex JSON
Version 10.20250721 PyPI version JSON
download
home_pageNone
Summarymanage files with git, without checking their contents into git
upload_time2025-07-22 04:59:56
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords data logistics git version control
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Python wheel package for git-annex

[![Test git-annex wheel from PyPi](https://github.com/psychoinformatics-de/git-annex-wheel/actions/workflows/test-pypi-wheel.yaml/badge.svg)](https://github.com/psychoinformatics-de/git-annex-wheel/actions/workflows/test-pypi-wheel.yaml)

## Why?

[Git-annex](https://git-annex.branchable.com/) is written in Haskell and plenty
of [installation methods](https://git-annex.branchable.com/install/) are
available. However, for deploying git-annex as a dependency of a Python
library/application, like [DataLad](https://datalad.org) or
[AnnexRemote](https://github.com/Lykos153/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](https://pypi.org/project/git-annex/), and install like
any other package from PyPi.

[uv](https://docs.astral.sh/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](https://packaging.python.org/en/latest/discussions/versioning/).

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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "git-annex",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "Michael Hanke <mih@ngln.eu>",
    "keywords": "data logistics, git, version control",
    "author": null,
    "author_email": "Joey Hess <id@joeyh.name>",
    "download_url": null,
    "platform": null,
    "description": "# Python wheel package for git-annex\n\n[![Test git-annex wheel from PyPi](https://github.com/psychoinformatics-de/git-annex-wheel/actions/workflows/test-pypi-wheel.yaml/badge.svg)](https://github.com/psychoinformatics-de/git-annex-wheel/actions/workflows/test-pypi-wheel.yaml)\n\n## Why?\n\n[Git-annex](https://git-annex.branchable.com/) is written in Haskell and plenty\nof [installation methods](https://git-annex.branchable.com/install/) are\navailable. However, for deploying git-annex as a dependency of a Python\nlibrary/application, like [DataLad](https://datalad.org) or\n[AnnexRemote](https://github.com/Lykos153/AnnexRemote), system packages\nare a lot less flexible than Python's virtual environments, and other methods\nare more complex and fragile.\n\nWith git-annex being available from PyPi, versioned dependencies and deployment\nin application-specific environments are possible via standard means of Python\npackaging.\n\n## Caveats\n\nA standard git-annex deployment is (primarily) a single binary (`git-annex`),\nand a bunch of symlinks that make this one binary fulfilled multiple roles\n(`git-annex-shell`, `git-remote-annex`, etc.). A Python wheel, however, is a\nZIP file container with no support for symlinks, and also no support for\n\"post-install\" scripts.\n\nIn order to square this circle, the git-annex binary is wrapped via regular\nPython entrypoint scripts that handle calling git-annex as necessary. This\ndelivers a cross-platform compatible wheel, but at a start-up cost (~30ms vs\n~11ms on my laptop).\n\n## Installation\n\nGet the package from [PyPi](https://pypi.org/project/git-annex/), and install like\nany other package from PyPi.\n\n[uv](https://docs.astral.sh/uv/) users can deploy git-annex in a dedicated virtual\nenvironment via the one-liner:\n\n```\nuv tool install git-annex\n```\n\n## git-annex build configuration\n\nGit-annex is built with libmagic support.\n\n## Platform notes\n\n### Linux\n\nThe `manylinux` wheel is self-contained and includes copies of all libraries.\nIt only depends on the declared GLIBC versions.\nThe `magic.mgc` database is not included, and is assumed to be available on\nthe target system. Install it separately, if needed (e.g., `libmagic-mgc`\npackage).\n\n### Windows\n\nThe wheel is self-contained and includes a copy of libmagic and the `magic.mgc` database.\n\n### Mac\n\nThe wheel is self-contained and includes a copy of libmagic and the `magic.mgc` database.\n\n\n## Developer information\n\n### Sources\n\nThe sources for this package are available at\nhttps://github.com/psychoinformatics-de/git-annex-wheel\n\nThe repository tracks the git-annex sources as a Git submodule.\n\n### Issues\n\nFor issues related to the Python wheel packaging of git-annex, please\nuse the tracker at https://github.com/psychoinformatics-de/git-annex-wheel/issues\n\n### How to update for a new git-annex release?\n\nAdvance the submodule `./git-annex` to the new release tag.\n\nNow adjust the package version in `pyproject.toml` accordingly. This version\nmust follow the [rules for Python\npackages](https://packaging.python.org/en/latest/discussions/versioning/).\n\nThe included (GitHub) action workflows will build a corresponding wheel\nand upload it to PyPi.\n\n\n## Acknowledgements\n\nThis work was funded, in part, by\n\n- Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant TRR 379 (546006540, Q02 project)\n- Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant SFB 1451 (431549029, INF project)\n- MKW-NRW: Ministerium f\u00fcr Kultur und Wissenschaft des Landes Nordrhein-Westfalen under the Kooperationsplattformen 2022 program, grant number: KP22-106A\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "manage files with git, without checking their contents into git",
    "version": "10.20250721",
    "project_urls": {
        "Changelog": "http://source.git-annex.branchable.com/?p=source.git;a=blob;f=CHANGELOG;hb=HEAD",
        "Documentation": "https://git-annex.branchable.com/git-annex",
        "Homepage": "https://git-annex.branchable.com/",
        "Issues": "https://git-annex.branchable.com/bugs",
        "Source": "http://source.git-annex.branchable.com/?p=source.git"
    },
    "split_keywords": [
        "data logistics",
        " git",
        " version control"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e5e1318ec89340869ea822b9c8a86374f381624405e56f7f95ff7725d5d8b26c",
                "md5": "6fa3f41bd6aec37305e708ee2318f2d8",
                "sha256": "949effaad4e63b4fc78d1b7a941c70e93f43adbfe59886139dd9a987990fc6b8"
            },
            "downloads": -1,
            "filename": "git_annex-10.20250721-py3-none-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6fa3f41bd6aec37305e708ee2318f2d8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 14289938,
            "upload_time": "2025-07-22T04:59:56",
            "upload_time_iso_8601": "2025-07-22T04:59:56.729769Z",
            "url": "https://files.pythonhosted.org/packages/e5/e1/318ec89340869ea822b9c8a86374f381624405e56f7f95ff7725d5d8b26c/git_annex-10.20250721-py3-none-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ba5175ecf60350927211992f115148e51a529e4d7b416131ee9bd7672b42da33",
                "md5": "8192bce55a38f7937fa0a9eae12e891b",
                "sha256": "3442a534299da57915da42849ab7d8e5713b52f11a30501ceec8b01b528d2fae"
            },
            "downloads": -1,
            "filename": "git_annex-10.20250721-py3-none-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8192bce55a38f7937fa0a9eae12e891b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 35965379,
            "upload_time": "2025-07-22T04:43:47",
            "upload_time_iso_8601": "2025-07-22T04:43:47.168254Z",
            "url": "https://files.pythonhosted.org/packages/ba/51/75ecf60350927211992f115148e51a529e4d7b416131ee9bd7672b42da33/git_annex-10.20250721-py3-none-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b84a27880a47d8ac6dbfbdc073a92109e6220c126e4cfbcd41de53e999970f1d",
                "md5": "9473572facabbc853672cecd0fa3eba4",
                "sha256": "5226c869f762db650e605d35dca837d2c85bf91c5c9c458bdb7be8efd1e12d1f"
            },
            "downloads": -1,
            "filename": "git_annex-10.20250721-py3-none-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9473572facabbc853672cecd0fa3eba4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 21623143,
            "upload_time": "2025-07-22T04:40:36",
            "upload_time_iso_8601": "2025-07-22T04:40:36.634165Z",
            "url": "https://files.pythonhosted.org/packages/b8/4a/27880a47d8ac6dbfbdc073a92109e6220c126e4cfbcd41de53e999970f1d/git_annex-10.20250721-py3-none-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cc459ebdb7ba82f691bc289e8e73f4a91ce7b8b85e31103d55b5101bf843ddc6",
                "md5": "28d7bab7eaaf06c4f4b0b7894669825c",
                "sha256": "ab878f65b06cd604c85c135826d5be3fd3dc0b8d9cf8e6f02a04de037bcdd2d7"
            },
            "downloads": -1,
            "filename": "git_annex-10.20250721-py3-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "28d7bab7eaaf06c4f4b0b7894669825c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 26805744,
            "upload_time": "2025-07-22T04:45:40",
            "upload_time_iso_8601": "2025-07-22T04:45:40.371086Z",
            "url": "https://files.pythonhosted.org/packages/cc/45/9ebdb7ba82f691bc289e8e73f4a91ce7b8b85e31103d55b5101bf843ddc6/git_annex-10.20250721-py3-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-22 04:59:56",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "git-annex"
}
        
Elapsed time: 1.65963s