This is a summary on Efabless' IP Manager (IPM), and how to use it
IPM is an open-source ChipIgnite Program IPs Package Manager; it is meant to provide a mean for distributing high quality IPs. IPM is tied to the IPs that can be found in our Market Place.
Installing IPM
IPM is now on PyPi, you can install it using this command:
pip install ipmgr
Verify that is it working
ipm --version
Usage
List all available IPs
You can do that by visiting the Market Place, Or using this command
ipm ls-remote
Get more info about a specific IP from the CLI
ipm info <IP_NAME>
Install IP
ipm install <IP_NAME> [OPTIONS]
Options:
--version
Install IP with a specific version
--ip-root
IP installation path [default: {PWD}/ip
]
--ipm-root
Path to the IPM root where the IPs will reside [default: ~/.ipm
]
--help
Show this message and exit
IPM installs the IPs in a shared directory ipm-root
which is by default set to ~/.ipm
, then it will create a symlink to ip-root
which is by default set to {PWD}/ip
.
IPM will create a dependencies.json
file under ip-root
, which will have all the IPs that you used in your project. Push this file to your repo in order to have a reproducible project.
Install IPs from dependencies file
ipm install-dep [OPTIONS]
Options:
--ip-root
IP path [default: {PWD}/ip/dependencies.json
]
--ipm-root
Path to the IPM root where the IPs will reside [default: ~/.ipm
]
--help
Show this message and exit
This will download the IPs in the dependencies.json
, with the same versions that it used inside the file
Uninstall IPs
ipm uninstall <IP_NAME> [OPTIONS]
Options:
--version
Uninstall IP with a specific version
-f, --force
Forces the uninstall
--ipm-root
Path to the IPM root where the IPs will reside [default: ~/.ipm
]
--help
Show this message and exit
It is advised to use this command rather than deleting the IP manually
Remove IP from project
ipm rm <IP_NAME> [OPTIONS]
Options:
--ipm-root
Path to the IPM root where the IPs are installed [default: ~/.ipm
]
--ip-root
IP path [default: {PWD}/ip
]
--help
Show this message and exit
Update IP
ipm update [IP_NAME][OPTIONS]
Options:
--ipm-root
Path to the IPM root where the IPs will reside [default: ~/.ipm
]
--ip-root
IP path [default: {PWD}/ip
]
--help
Show this message and exit
If an IP_NAME
is provided it will only update this IP, if not it will update all installed IPs