Skip to content

Commit 78d94ba

Browse files
committedMay 13, 2024·
Doc changes
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
1 parent c176438 commit 78d94ba

File tree

6 files changed

+75
-6
lines changed

6 files changed

+75
-6
lines changed
 

‎doc/source/getting_started.rst

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#########################
2+
Getting Started with IVPM
3+
#########################
4+
5+
Installing IVPM
6+
***************
7+
8+
IVPM must be installed before it can be used to work with a project. Typically,
9+
the easiest approach is to install IVPM as a user-installed package:
10+
11+
..code-block:: bash
12+
13+
% python3 -m pip install --user ivpm
14+
15+
Once this is done, you can invoke IVPM either via the entry-point script (ivpm)
16+
or as a Python module:
17+
18+
..code-block:: bash
19+
20+
% ivpm --help
21+
% python3 -m ivpm --help
22+
23+
Initializing an Exiting IVPM Project
24+
************************************
25+
After fetching the source for an IVPM-enabled project, the `ivpm update` command
26+
is used to fetch source dependencies and initialize a Python virtual environment
27+
for the project.
28+
29+
The IVPM project, itself, is IVPM-enabled. The steps to fetch and initialize
30+
the project are shown below (assuming ivpm has already been installed):
31+
32+
..code-block:: bash
33+
34+
% git clone https://github.com/fvutils/ivpm
35+
% cd ivpm
36+
% ivpm update
37+
38+
Note that, by default, IVPM clones sub-projects using your ssh public key. If
39+
this key has not been registered with a Git server, then cloning any projects
40+
from that server will fail. Git projects can be cloned using https
41+
(ie anonymously) by running `ivpm update -a`.
42+
43+
IVPM performs the following tasks as a part of the `update` operation:
44+
- Fetches the source for each dependent project (eg .git, .tar.gz, .jar, etc)
45+
- Identifies dependent projects that are, themselves, IVPM-enabled and
46+
determines sub-dependencies
47+
- Identifies dependent projects that are Python projects and dependencies
48+
from PyPi. Installs these into the project-local Python virtual
49+
environment, with source projects installed in `editable` mode.
50+
51+
Initializing a New IVPM Project
52+
*******************************
53+
54+
48 KB
Loading

‎doc/source/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Welcome to IVPM's documentation!
1111
:caption: Contents:
1212

1313
introduction
14+
getting_started
1415
reference
1516

1617

‎doc/source/introduction.rst

+10
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ lightweight project-local package manager. It excels at
99
managing projects where dependencies are co-developed with
1010
the project.
1111

12+
.. image:: imgs/IVPM_System_Diagram.png
13+
1214
Let's look at a simple example. A System-on-Chip
1315
(SoC) design targeting an FPGA or an ASIC is composed of
1416
multiple IPs written in a hardware-description language (HDL)
@@ -47,4 +49,12 @@ original developers.
4749
create a project that contains all its required
4850
dependencies.
4951

52+
- IVPM provides build/release utilities for C/C++ packages
53+
that provide a Python interface
54+
55+
- IVPM provides features for discovering source and library paths
56+
across Python and non-Python packages. This support is
57+
currently focused on the needs of managing FuseSoC libraries.
58+
59+
5060

‎src/ivpm/cmds/cmd_init.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ def __call__(self, args):
2222
# TODO: allow override
2323
proj = os.getcwd()
2424

25-
ivpm_dir = os.path.dirname(os.path.realpath(__file__))
25+
ivpm_dir = os.path.dirname(
26+
os.path.dirname(os.path.realpath(__file__)))
2627
templates_dir = os.path.join(ivpm_dir, "templates")
2728

2829
for src,dir in zip(["ivpm.yaml"], [""]):

‎src/ivpm/templates/ivpm.yaml

+8-5
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
#*****************************************************************************
44
package:
55
name: ${name}
6-
version: ${version}
6+
7+
dep-sets:
8+
9+
- name: default
10+
deps: []
11+
12+
- name: default-dev
13+
deps: []
714

8-
deps:
9-
10-
dev-deps:
11-

0 commit comments

Comments
 (0)
Please sign in to comment.