================================ BO4E Data Model Release Workflow ================================ Welcome to the BO4E Data Model release process! This guide provides a straightforward explanation of how we release new versions of our data model, making it easier for you to integrate and use them in your preferred programming language. Step-by-Step Guide ================== 1. Python Package Implementation -------------------------------- * **Starting Point:** The journey begins with the implementation of the `BO4E data model as a Python package `_. 2. Release and Schema Generation -------------------------------- * **Automatic Generation:** Upon releasing a new version of this Python package, a GitHub action automatically triggers. * **JSON Schemas Creation:** This action generates JSON schemas, which are essential blueprints of the data model. * **Storage:** These schemas are then stored in a dedicated repository, known as the `BO4E-Schemas Repository `_. 3. Optional Customization (BO4E-Schema-Tool) -------------------------------------------- * **Flexibility in Data Fields:** Initially, the JSON schemas contain only optional fields. * **Setting Required Fields:** If you need to designate certain fields as mandatory, you can use the `BO4E-Schema-Tool Repository `_. * **Tool Functionality:** This repository houses a command-line interface (CLI) tool that assists in updating the JSON schema files to define required fields. 4. Code Generation (BO4E-Python-Generator) ------------------------------------------ * **Finalizing JSON Schemas:** Once you have the final version of the JSON schema files, it's time to generate code. * **Pydantic Classes Creation:** Utilize tools like the `BO4E-Python-Generator `_, another CLI tool, to create Pydantic classes from the JSON schemas. 5. Ready to Use --------------- * **Integration:** With these steps complete, the BO4E data model is now ready for use in your favorite programming language. * **Seamless Application:** Implement the data model seamlessly in your projects and enjoy the efficiency it brings to your workflow. .. note:: This workflow ensures that the BO4E data model remains flexible, adaptable, and easy to integrate into various programming environments. Visualization of the release workflow ===================================== .. image:: /_static/bo4e-release-workflow.png