{"library":"setuptools-git","title":"Setuptools Git Plugin","description":"setuptools-git is a plugin for setuptools that enables integration with Git. It allows setuptools to automatically include all files tracked by Git in a package distribution, serving as an alternative to explicitly listing files in MANIFEST.in. The current version is 1.2, last released in February 2017, and it was formerly known as gitlsfiles.","language":"python","status":"maintenance","last_verified":"Thu May 21","install":{"commands":["pip install setuptools-git"],"cli":null},"imports":["from setuptools import setup","from setuptools import find_packages"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport subprocess\nfrom setuptools import setup, find_packages\n\n# Create a dummy git repo for demonstration\nif not os.path.exists('.git'):\n    print(\"Initializing git repository...\")\n    subprocess.run(['git', 'init', '-b', 'main'], check=True)\n    with open('README.md', 'w') as f: f.write('# My Project')\n    os.makedirs('my_package', exist_ok=True)\n    with open('my_package/__init__.py', 'w') as f: f.write('__version__ = \"0.1.0\"')\n    with open('my_package/module.py', 'w') as f: f.write('def hello(): return \"Hello\"')\n    with open('my_package/data.txt', 'w') as f: f.write('some data')\n    with open('.gitignore', 'w') as f: f.write('*.tmp')\n    with open('ignored.tmp', 'w') as f: f.write('temp file')\n    subprocess.run(['git', 'add', '.'], check=True)\n    subprocess.run(['git', 'commit', '-m', 'Initial commit'], check=True)\n\n\nsetup(\n    name='my-project',\n    version='0.1.0',\n    packages=find_packages(),\n    include_package_data=True, # This activates setuptools-git functionality\n    setup_requires=[\"setuptools-git >= 0.3\"],\n    # Minimal metadata for a runnable setup.py\n    author='Your Name',\n    author_email='your.email@example.com',\n    description='A short description',\n    long_description='A longer description.',\n    url='http://example.com/your-project',\n    python_requires='>=3.6',\n    install_requires=[]\n)\n\nprint(\"\\n--- To build the source distribution (sdist): ---\")\nprint(\"python setup.py sdist\")\nprint(\"This will include git-tracked files like my_package/module.py and my_package/data.txt, but exclude ignored.tmp.\")\n\n# Clean up dummy repo (optional)\n# import shutil\n# if os.path.exists('.git'):\n#     shutil.rmtree('.git')\n# if os.path.exists('my_package'):\n#     shutil.rmtree('my_package')\n# if os.path.exists('README.md'):\n#     os.remove('README.md')\n# if os.path.exists('.gitignore'):\n#     os.remove('.gitignore')\n# if os.path.exists('ignored.tmp'):\n#     os.remove('ignored.tmp')","lang":"python","description":"To use setuptools-git, ensure it is listed in `setup_requires` in your `setup.py` and set `include_package_data=True` in your `setup()` call. It requires an initialized Git repository with committed files. This example creates a minimal `setup.py` and a dummy Git repository to demonstrate how tracked files (like `my_package/module.py` and `my_package/data.txt`) are included, while ignored files (`ignored.tmp`) are not, when building a source distribution.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-21","installed_version":"1.2","pypi_latest":"1.2","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":80,"avg_install_s":1.5,"avg_import_s":0.88,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.83,"mem_mb":15.7,"disk_size":"18.8M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.94,"mem_mb":15.7,"disk_size":"18.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.4,"import_time_s":0.56,"mem_mb":15.7,"disk_size":"19M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.7,"mem_mb":15.7,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.98,"mem_mb":17.2,"disk_size":"21.1M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.17,"mem_mb":17.2,"disk_size":"21.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.9,"mem_mb":17.2,"disk_size":"22M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.01,"mem_mb":17.2,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"11.6M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.4,"import_time_s":null,"mem_mb":null,"disk_size":"12M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"11.3M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":"12M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.81,"mem_mb":15.3,"disk_size":"18.4M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"setuptools-git","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.96,"mem_mb":15.3,"disk_size":"18.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.67,"mem_mb":15.3,"disk_size":"19M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"setuptools-git","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.01,"mem_mb":15.4,"disk_size":"19M"}]}}