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.2` tag
pip install git+https://gitlab.com/dawalters/ocpiupdate@v0.6.2

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.2.tar.gz (20.3 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.2-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ocpiupdate-0.6.2.tar.gz
  • Upload date:
  • Size: 20.3 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.2.tar.gz
Algorithm Hash digest
SHA256 645eab73e489e255e4df58424df8fa96d6f72dd30351b34cb7dd8be1d70bf937
MD5 6ac833e04a9ecba557b945adbb04cc06
BLAKE2b-256 841c210104561e7c91ae8dee75b3c6abebfcf1e75cb072ce6af9d0780b6afead

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ocpiupdate-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 24.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0b44d827cb4b214c0dfe4ed2c8e5773f4562cf04a5c5c857625ee8839ecdeb5b
MD5 4cb491bf9849f6ef57e9823b998db3f6
BLAKE2b-256 5c0e159095d28c2d5188569851532df47b0de8f97fbc4fb69c21bed1ba096a72

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