A vendoring tool for fetching and managing external dependencies.
Project description
DFetch can manage dependencies
We make products that can last 15+ years; because of this we want to be able to have all sources available
to build the entire project from source without depending on external resources.
For this, we needed a dependency manager that was flexible enough to retrieve dependencies as plain text
from various sources. svn externals, git submodules and git subtrees solve a similar
problem, but not in a VCS-agnostic way or completely user-friendly way.
We want self-contained code repositories without any hassle for end-users.
Dfetch must promote upstreaming changes, but allow for local customizations.
The problem is described thoroughly in managing external dependencies and sometimes
is also known as vendoring.
Other tools that do similar things are Zephyr's West, CMake ExternalProject and other meta tools.
See alternatives for a complete list.
Getting started | Manual | Troubleshooting | Contributing
Problems DFetch Solves
- Declarative code reuse across projects (inner sourcing)
- Compose multi-repo code bases into a single working tree
- Vendoring dependencies for reproducible builds
- Apply local patches while keeping upstream syncable
- VCS-agnostic dependency management
- Self-contained exports for releases or audits
Install
Stable
pip install dfetch
latest version
pip install git+https://github.com/dfetch-org/dfetch.git#egg=dfetch
Binary distributions
Each release on the releases page provides installers for all major platforms.
- Linux
.deb&.rpm - macOS
.pkg - Windows
.msi
Github Action
You can use DFetch in your Github Actions workflow to check your dependencies. The results will be uploaded to Github. Add the following to your workflow file:
jobs:
dfetch-check:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- name: Run Dfetch Check
uses: dfetch-org/dfetch@main
with:
working-directory: '.' # optional, defaults to project root
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dfetch-0.12.0.tar.gz.
File metadata
- Download URL: dfetch-0.12.0.tar.gz
- Upload date:
- Size: 3.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cebfd085d186d74b4cdceb31b90a30dc39d671b2d864d428991308f699d419f
|
|
| MD5 |
bd83c2e0d2fc980612ee8a911d51e3ca
|
|
| BLAKE2b-256 |
66ea0d8ad6b6c92b4001b58fe19e7bf4575c6df3330aecda78910ec33027df35
|
Provenance
The following attestation bundles were made for dfetch-0.12.0.tar.gz:
Publisher:
python-publish.yml on dfetch-org/dfetch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dfetch-0.12.0.tar.gz -
Subject digest:
8cebfd085d186d74b4cdceb31b90a30dc39d671b2d864d428991308f699d419f - Sigstore transparency entry: 976035228
- Sigstore integration time:
-
Permalink:
dfetch-org/dfetch@5aa13c7462f7323af20cd651519b3c12f381f642 -
Branch / Tag:
refs/tags/0.12.0 - Owner: https://github.com/dfetch-org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@5aa13c7462f7323af20cd651519b3c12f381f642 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dfetch-0.12.0-py3-none-any.whl.
File metadata
- Download URL: dfetch-0.12.0-py3-none-any.whl
- Upload date:
- Size: 92.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2d84626c1c176ed9f79f7a4144857c5ae6edca689986f7cff55e71b9ae95768
|
|
| MD5 |
4dab87012176f5343a7eaeb7d569c04a
|
|
| BLAKE2b-256 |
8313b02378716b98baf798be2aaf9bbee0f0d74a6408101eeb0c848ffc94ee45
|
Provenance
The following attestation bundles were made for dfetch-0.12.0-py3-none-any.whl:
Publisher:
python-publish.yml on dfetch-org/dfetch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dfetch-0.12.0-py3-none-any.whl -
Subject digest:
e2d84626c1c176ed9f79f7a4144857c5ae6edca689986f7cff55e71b9ae95768 - Sigstore transparency entry: 976035231
- Sigstore integration time:
-
Permalink:
dfetch-org/dfetch@5aa13c7462f7323af20cd651519b3c12f381f642 -
Branch / Tag:
refs/tags/0.12.0 - Owner: https://github.com/dfetch-org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@5aa13c7462f7323af20cd651519b3c12f381f642 -
Trigger Event:
release
-
Statement type: