Skip to main content

An updater for OpenCPI Projects

Project description

ocpiupdate - An updater for OpenCPI projects

pypi release gitlab pre-commit codecov

ocpiupdate updates OpenCPI Projects to use style associated with newer versions of OpenCPI.

For example:

  • Using <worker>-<model>.xml for the Worker Description files, instead of <worker>.xml.
  • Using <component>.comp/<component>-comp.xml for Component Specification files instead of specs/<component>[-_]spec.xml.
  • Using xml files instead of Makefiles.

Dependencies

This library requires Python 3.12 or newer. This means it doesn't support the default system python3 install on Ubuntu 20.04 or Ubuntu 22.04.

If you use a system with Python 3.11 or older, you need to either:

  • Install a newer python3 just for this library.
    • I'd recommend using a tool like uv.
  • Download and run the containerised version.

Installation

pip

You can install the latest release from PyPi:

pip install ocpiupdate

Or, you can install this repository directly:

# Installs `develop` branch
pip install git+https://gitlab.com/dawalters/ocpiupdate

# Installs `v0.6.4` tag
pip install git+https://gitlab.com/dawalters/ocpiupdate@v0.6.4

docker or podman

A Dockerfile is available that builds a container that can run ocpiupdate.

You can download prebuilt containers from the Gitlab Container Registry. This happens automatically when running a registry image without a local copy.

See scripts/ocpiupdate.sh for a script that allows running the ocpiupdate:latest container over more than one project.

To download and use this script:

# If you want to keep a local copy of the script
curl -o ocpiupdate.sh https://gitlab.com/dawalters/ocpiupdate/-/raw/develop/scripts/ocpiupdate.sh
source ocpiupdate.sh

# If you don't want to keep a local copy of the script
source <(curl -s https://gitlab.com/dawalters/ocpiupdate/-/raw/develop/scripts/ocpiupdate.sh)

You can then use the terminal command ocpiupdate in exactly the same way as the python script.

If you have built a local version of the container, then ocpiupdate.sh will use that. Otherwise, it will download the container from the remote registry.

Source tarball

You can download source releases from the Gitlab Releases page.

Configuration

The various functions that ocpiupdate performs are called actions.

You can view all available actions:

ocpiupdate --actions
rename_hdl_owds_to_hyphen_hdl
rename_rcc_owds_to_hyphen_rcc
rename_spec_to_comp_except_project
rename_protocol_to_prot
rename_underscore_prot_to_hyphen_prot
translate_applications_from_makefile_to_xml
translate_hdl_adapters_from_makefile_to_xml
translate_hdl_assemblies_from_makefile_to_xml
translate_hdl_cards_from_makefile_to_xml
translate_hdl_device_from_makefile_to_xml
translate_hdl_platforms_from_makefile_to_xml
translate_hdl_primitives_from_makefile_to_xml
translate_hdl_worker_from_makefile_to_xml
translate_project_from_makefile_to_xml
translate_rcc_worker_from_makefile_to_xml

If you encounter issues with an action, you can disable it:

ocpiupdate \
    --skip-action rename_protocol_to_prot \
    --skip-action rename_underscore_prot_to_hyphen_prot \
    $project

Disclaimer

This repository has no affiliation with OpenCPI.

The maintainer doesn't maintain OpenCPI.

The maintainer does not guarantee that ocpiupdate will result in a buildable project. If you encounter difficulties, please open an issue.

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

ocpiupdate-0.6.4.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ocpiupdate-0.6.4-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file ocpiupdate-0.6.4.tar.gz.

File metadata

  • Download URL: ocpiupdate-0.6.4.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for ocpiupdate-0.6.4.tar.gz
Algorithm Hash digest
SHA256 14656b1cc5475342c51f9ae64a90233ba869a764c5cb4200965cd6f809b82198
MD5 06d95c6e7eff35a0c0e84bd50a887086
BLAKE2b-256 074aaea49f0836e25fcde5826f1fdedc844f103d74861ee2f3b885ee315d343c

See more details on using hashes here.

File details

Details for the file ocpiupdate-0.6.4-py3-none-any.whl.

File metadata

  • Download URL: ocpiupdate-0.6.4-py3-none-any.whl
  • Upload date:
  • Size: 25.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for ocpiupdate-0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 668e1a8320b5e7a8bc2f48675b8b1f3e165aa8d8c1f36810c344dd8a6d85ad9c
MD5 fdb0f31975c5e03475b4f72b1dbc34b8
BLAKE2b-256 9972154f529c9bd04b9a36e67aaa6ca70ad0e8c6b9efebbfdd8295531f4b57ab

See more details on using hashes here.

Supported by

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