fastsandpm Documentation
An RTL Design and DV package manager for python tools. Manage your RTL and design verification library dependencies by cloning, updating, and version-controlling git repositories.
Key Features
Library Management: Clone and update RTL/DV libraries from git repositories
Version Pinning: Pin libraries to specific tags, branches, or commits
Version Ranges: Specify flexible version constraints (e.g.,
>=1.0.0,<2.0.0)TOML Configuration: Organize libraries in configuration files with sub-headings
Local Development: Symlink local directories for development workflows
Multi-Remote Support: Automatically discover repositories across configured remotes
Quick Start
Installation:
# For UV Based projects
uv add fastsandpm
# For pip-based projects
pip install fastsandpm
Command Line Usage:
The simplest way to use FastSandPM is via the fspm command:
# Install dependencies from proj.toml in current or parent directory
fspm
# Install to a custom directory
fspm --output ./vendor
# Install with optional dependency groups
fspm --optional dev,test
See Command Line Interface for the complete CLI reference.
Python API Usage:
>>> import pathlib
>>> import fastsandpm
>>> manifest = fastsandpm.get_manifest("./my-project")
>>> print(manifest.package.name)
'my-package'
>>> resolved = fastsandpm.dependencies.resolve(manifest)
>>> print(type(resolved))
<class 'dict'>
>>> fastsandpm.build_library(resolved, pathlib.Path("my-library"))
This will bring in the library dependencies for a project into the specified directory.
Additionally, a library.f file will be created which will point to the dependencies
file list in the required order.
For more examples, see the Library User Guide.
User Information
How the manifest is to be structured.
How to use
fastsandpmin a different python project.
Developer Information
Guide for contributing to
fastsandpm
List of changes made to
fastsandpm
API
A package management and dependency resolution tool for HDL Design and DV projects. |