Skip to main content

HDL Component Manager

Project description

Manage HDL code as components so they can shared as IP.

Github Release PyPI Version Build Status Test Coverage Read The Docs Codacy Maintainability

Table of Contents

Overview

HCM was created after a frustrating attempt to merge changes from one program to another. Even after carefully performing the merge, there were issues.

It was turning into a nightmare just to pass updates between multiple concurrently running programs. I was inspired by PIP, and how easy it is to install python packages. I wanted to bring that same level of ease to HDL design.

Key Benefits

  • Provides a method to control versions of IP

  • Controls the distribution of HDL code

  • Follows the Major.Minor.Patch method of version control

  • Language independent (VHDL, Verilog, System Verilog)

  • Can be used to control vendor IP

Key Features

  • Works with SVN repositories

  • Automates publishing of code to a central location

  • Automates installing and upgrading of code

  • Supports multiple IP repositories

  • Supports dependencies between components

Installation

You can get the latest released version of HCM via pip.

pip install hcm

The latest development version can be cloned…

git clone https://github.com/jeremiah-c-leary/hdl-component-manager.git

…and then installed locally…

python setup.py install

Usage

HCM can be invoked by issuing hcm at the command line prompt:

$ hcm
usage: hcm [-h] {create,install,list,publish,show} ...

Provides configuration management for HDL components.

positional arguments:
  {create,install,list,publish,show}
    create              Creates a component repo
    install             Adds a component from the component repo
    list                Lists components and their versions
    publish             Adds components to the component repo
    show                Displays information about installed components

optional arguments:
  -h, --help            show this help message and exit

HCM has four subcommands: create, install, list, and publish.

create

Use the create subcommand to create a component directory in the repository. The arguments for the subcommand can be listed using the -h option:

$ hcm create -h
usage: hcm create [-h] url

positional arguments:
  url         location to create the base component repo

optional arguments:
  -h, --help  show this help message and exit

install

Use the install subcommand to add or upgrade a component from a repository. The arguments for the subcommand can be listed using the -h option:

$ bin/hcm install -h
usage: hcm install [-h] [--url URL] [--force] [--external] [--dependencies]
                   [--upgrade]
                   component [version]

positional arguments:
  component       Component name to install
  version         Major.Minor.Patch version of component to install. Leave
                  blank to install the latest version.

optional arguments:
  -h, --help      show this help message and exit
  --url URL       location of component directory in repo
  --force         Install component ignoring any local changes
  --external      Install as an external
  --dependencies  Install dependencies
  --upgrade       Upgrade dependencies to latest version

list

Use the list subcommand to check the versions of components you have installed. The arguments for the subcommand can be listed using the -h option:

$ hcm list -h
usage: hcm list [-h] [--all]

optional arguments:
  -h, --help  show this help message and exit
  --all       Includes directories that are not under HCM control

publish

Use the publish subcommand to push a version of a component to a repository. The arguments for the subcommand can be listed using the -h option:

$ hcm publish -h
usage: hcm publish [-h] -m M [--url URL] component version

positional arguments:
  component   Component name to publish
  version     Major.Minor.Patch version to publish

optional arguments:
  -h, --help  show this help message and exit
  -m M        Commit message
  --url URL   Base URL of the component repository

show

Use the show subcommand to display information about an installed component. The arguments for the subcommand can be listed using the -h options:

$ hcm show -h
usage: hcm show [-h] [--manifest] component

positional arguments:
  component   Component to display information

optional arguments:
  -h, --help  show this help message and exit
  --manifest  Displays manifest for all files in component

Environment Variables

HCM will use the HCM_URL_PATHS environment variable as a replacement for the –url command line option. HCM uses the paths in the variable to know which component repositories to interact with.

Documentation

All documentation for HCM is hosted at read-the-docs.

Contributing

I welcome any contributions to this project. No matter how small or large.

There are several ways to contribute:

  • Bug reports

  • Code base improvements

  • Feature requests

  • Pull requests

Please refer to the documentation hosted at read-the-docs for more details on contributing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hcm-0.6.tar.gz (17.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page