Skip to main content

Conversion tool for DLS XML builder IOC instances to ibek ioc.yaml

Project description

CI Coverage PyPI License

builder2ibek

A tool suite for converting DLS XML builder projects to epics-containers ibek.

Source https://github.com/epics-containers/builder2ibek
PyPI pip install builder2ibek
Releases https://github.com/epics-containers/builder2ibek/releases
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ xml2yaml        Convert a builder XML IOC instance definition file into an   │
│                 ibek YAML file                                               │
│ beamline2yaml   Convert all IOCs in a BLXXI-SUPPORT project into a set of    │
│                 ibek services folders (TODO)                                 │
│ autosave        Convert DLS autosave DB template comments into autosave req  │
│                 files                                                        │
│ db-compare      Compare two DB files and output the differences              │
╰──────────────────────────────────────────────────────────────────────────────╯

How to use the devcontainer

This repo includes a devcontainer for testing and developing converters.

To use this re-open in container.

  • First make sure you have the submodules
    • git submodule update --init
  • This adds ibek-support and ibek-support-dls meaning that we can validate converted projects against a global ibek schema that include all support modules currently defined in ibek-support*.
  • To add a new IOC to the tests simply copy its XML definition into tests/samples. Then run ./tests/samples/make_samples.sh to convert the XML to YAML and create a test for it.
  • important: this will re-convert all of the sample XML files in the samples folder. Always check the diff before committing.

Once you have done this you can iterate on converting your XML:

  • make changes to the ibek support yaml in ibek-support-dls and ibek-support
  • make changes/additions to src/builder2ibek/converters/*.py
  • re-convert your XML with ./tests/samples/make_samples.sh
  • rebuild the global ioc yaml schema with ./update-schema
  • Inspect your generated YAML in tests/samples and look for schema validation issues (make sure you have the RedHat YAML extension installed in VSCode)
  • NOTE: sometimes the YAML extension does not notice changes to the schema. If you are seeing errors that you think are incorrect, opening the exttension settings and toggling the Yaml: Validate off and on again can help - it's the last option.

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

builder2ibek-1.1.1.tar.gz (654.2 kB view details)

Uploaded Source

Built Distribution

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

builder2ibek-1.1.1-py3-none-any.whl (46.3 kB view details)

Uploaded Python 3

File details

Details for the file builder2ibek-1.1.1.tar.gz.

File metadata

  • Download URL: builder2ibek-1.1.1.tar.gz
  • Upload date:
  • Size: 654.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for builder2ibek-1.1.1.tar.gz
Algorithm Hash digest
SHA256 70c76f1ca1b27ffcb66e55c0d3ae05f395fc4958584a6be1983c8ed85cc5aa5d
MD5 08d08d1d62ca2d0feae39599b981829f
BLAKE2b-256 6c948fb9eb6c22a16bcbbeb0324e1e7af0ea068ad77643e5bdff826d9990eec7

See more details on using hashes here.

File details

Details for the file builder2ibek-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: builder2ibek-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 46.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for builder2ibek-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e8c05639a3ae56a9703e7ddfbad45b866dfede10e0634fb8ed2fe456d4b90af
MD5 ea34aeb0c0de0353a84afdcb865071c7
BLAKE2b-256 96b77fc1d37ee9da86da7a277b60c429e829ca8e10b182874870dfa8acf8d95b

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