| Crates.io | wrale-acdm |
| lib.rs | wrale-acdm |
| version | 0.2.2 |
| created_at | 2025-03-30 21:49:26.988382+00 |
| updated_at | 2025-03-30 21:49:26.988382+00 |
| description | Wrale Agnostic Content Dependency Manager |
| homepage | |
| repository | https://github.com/wrale/wrale-acdm |
| max_upload_size | |
| id | 1612783 |
| size | 220,634 |
Wrale Agnostic Content Dependency Manager
wrale-acdm is an open-source tool designed to solve the problem of granular, selective content inclusion from external repositories without the complexity and limitations of Git submodules. Built in Rust with clean architecture principles, it enables teams to pull specific folders or files from external repositories while maintaining a clean project history and minimizing dependency footprint.
⚠️ Platform Support: Currently,
wrale-acdmis only officially supported on macOS (specifically tested on M1 MacBook Air). While it may work on other platforms when built from source, these are not officially supported yet. Contributions for other platforms are welcome!
# Install from crates.io
cargo install wrale-acdm
or install from source:
git clone https://github.com/wrale/wrale-acdm.git
cd wrale-acdm
cargo install --path .
Alternatively, using the provided Makefile:
git clone https://github.com/wrale/wrale-acdm.git
cd wrale-acdm
make install
Initialize a new configuration:
acdm init
Add an external dependency:
acdm add git@github.com:example/repo.git --name example-dep --rev main --target vendor/example
Define which files to include:
acdm include example-dep "docs/specification/**" "schema/**"
Update all dependencies:
acdm update
After running any command that modifies files, you'll need to review and commit the changes manually:
git add .
git commit -m "Update external dependencies"
Note: acdm requires a clean git repository to perform updates. It will not automatically commit changes.
The following flags can be used with any command:
--quiet: Suppress verbose logging, showing only warnings and errors--force: Skip confirmation prompts and proceed with potentially destructive operations--config <path>: Specify a custom path to the configuration file (default: acdm.toml)acdm.toml example:
location = "vendor/external"
[[sources]]
repo = "git@github.com:example/repo.git"
name = "example-dependency"
rev = "main"
type = "git"
sparse_paths = [
"docs/specification/**",
"schema/**"
]
target = "vendor/example"
Requirements:
Building from source:
git clone https://github.com/wrale/wrale-acdm.git
cd wrale-acdm
make build
Running tests:
make test # Run all tests
make unit # Run unit tests only
make integration # Run integration tests only
Preparing for a commit:
make prepare # Formats code, runs linter, checks, tests, and generates docs
See all available commands:
make help
This project is licensed under the MIT License - see the LICENSE file for details. Copyright information is available in the NOTICE file.
rust dependency-management git vendoring content-management submodules monorepo package-manager selective-checkout sparse-checkout
Copyright (c) 2025 Wrale LTD contact@wrale.com