|
1 | 1 | # FastSandPM |
2 | | -A package management and dependency resolution tool for HDL Design and DV projects |
| 2 | +An RTL Design and DV package manager for python tools. Manage your RTL and |
| 3 | +design verification library dependencies by cloning, updating, and |
| 4 | +version-controlling git repositories. |
3 | 5 |
|
4 | 6 | [](https://github.com/RISCY-Lib/fastsandpm/actions/workflows/run-ci-tests.yml) |
5 | 7 | [](https://pypi.org/project/fastsandpm/) |
6 | 8 | [](https://fastsandpm.readthedocs.io/en/latest/index.html) |
7 | 9 |
|
8 | 10 | See [Read-The-Docs](https://fastsandpm.readthedocs.io/en/latest/index.html) for details |
| 11 | + |
| 12 | +Key Features |
| 13 | +------------ |
| 14 | + |
| 15 | +- **Library Management**: Clone and update RTL/DV libraries from git repositories |
| 16 | +- **Version Pinning**: Pin libraries to specific tags, branches, or commits |
| 17 | +- **Version Ranges**: Specify flexible version constraints (e.g., ``>=1.0.0,<2.0.0``) |
| 18 | +- **TOML Configuration**: Organize libraries in configuration files with sub-headings |
| 19 | +- **Local Development**: Symlink local directories for development workflows |
| 20 | +- **Multi-Remote Support**: Automatically discover repositories across configured remotes |
| 21 | + |
| 22 | +Quick Start |
| 23 | +----------- |
| 24 | + |
| 25 | +Installation: |
| 26 | + |
| 27 | +.. code-block:: bash |
| 28 | + |
| 29 | + # For UV Based projects |
| 30 | + uv add fastsandpm |
| 31 | + |
| 32 | + # For pip-based projects |
| 33 | + pip install fastsandpm |
| 34 | + |
| 35 | +Basic Usage: |
| 36 | + |
| 37 | + >>> import pathlib |
| 38 | + >>> import fastsandpm |
| 39 | + >>> manifest = fastsandpm.get_manifest("./my-project") |
| 40 | + >>> print(manifest.package.name) |
| 41 | + 'my-package' |
| 42 | + >>> resolved = fastsandpm.dependencies.resolve(manifest) |
| 43 | + >>> print(type(resolved)) |
| 44 | + <class 'dict'> |
| 45 | + >>> build_library(resolved, pathlib.Path("my-library")) |
| 46 | + |
| 47 | +This will bring in the library dependencies for a project into the specified directory. |
| 48 | +Additionally, a 'dependencies.f' file will be created which will point to the dependencies file list in the required order. |
| 49 | + |
| 50 | +For more examples, see [the docs](https://fastsandpm.readthedocs.io/en/latest/usage_guide/index.html) for details. |
0 commit comments