Skip to content

Commit f361ca8

Browse files
Ben DavisallRisc
authored andcommitted
Updated README and Sphinx documentation
1 parent 608b98e commit f361ca8

3 files changed

Lines changed: 55 additions & 14 deletions

File tree

README.md

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,50 @@
11
# 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.
35

46
[![Tests](https://github.com/RISCY-Lib/fastsandpm/actions/workflows/run-ci-tests.yml/badge.svg)](https://github.com/RISCY-Lib/fastsandpm/actions/workflows/run-ci-tests.yml)
57
[![PyPI Latest Release](https://img.shields.io/pypi/v/fastsandpm.svg)](https://pypi.org/project/fastsandpm/)
68
[![docs](https://readthedocs.org/projects/fastsandpm/badge)](https://fastsandpm.readthedocs.io/en/latest/index.html)
79

810
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.

docs/source/index.rst

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.. fastsandpm documentation master file
22
33
fastsandpm Documentation
4+
45
===========================================
56

67
An RTL Design and DV package manager for python tools. Manage your RTL and
@@ -32,19 +33,15 @@ Installation:
3233
3334
Basic Usage:
3435

35-
.. code-block:: python
36-
37-
import pathlib
38-
import fastsandpm
39-
40-
# Get the manifest of the current project
41-
manifest = fastsandpm.get_manifest(pathlib.Path("some/repo/path"))
42-
43-
# Resolve the libraries
44-
deps = fastsandpm.resolve_dependencies(manifest.dependencies, manifest.optional_dependencies["dev"])
45-
46-
# Update the libraries
47-
fastsandpm.update_deps(libraries, pathlib.Path("some/library/.path"))
36+
>>> import pathlib
37+
>>> import fastsandpm
38+
>>> manifest = fastsandpm.get_manifest("./my-project")
39+
>>> print(manifest.package.name)
40+
'my-package'
41+
>>> resolved = fastsandpm.dependencies.resolve(manifest)
42+
>>> print(type(resolved))
43+
<class 'dict'>
44+
>>> build_library(resolved, pathlib.Path("my-library"))
4845

4946
This will bring in the library dependencies for a project into the specified directory.
5047
Additionally, a 'dependencies.f' file will be created which will point to the dependencies file list in the required order.

docs/source/usage_guide/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,6 @@ Or with pip:
2323
Basic Usage
2424
-----------
2525

26+
.. NOTE::
2627

28+
TODO: Work in progress

0 commit comments

Comments
 (0)