=============== BO4E Versioning =============== The BO4E data model uses a unique versioning system to track changes and updates. This system is easy to understand once you're familiar with its format and rationale. Let's break it down: Version Format: `YYYYMM.functional.technical` - YYYYMM: Represents the year (YYYY) and month (MM) when the version was released. For example, 202312 would mean December 2023. - functional: A number that changes when there are significant updates or new features. - technical: This number changes for minor updates, like bug fixes or spelling corrections. How Does it Work? ================= 1. **Base Structure**: Think of the version number as a date followed by two additional numbers, like 202312.1.2. Here, 202312 tells you the release date, 1 is the functional number, and 2 is the technical number. 2. **Functional Changes**: For bigger changes, like adding a new business object, we update the functional number and reset the technical number to zero. For instance, if we add a significant feature to the 202312.1.2 version, it becomes 202312.2.0. 3. **Technical Changes**: If we fix a typo or a small bug, we only change the technical number. So, after a minor fix, the version might change from 202312.1.2 to 202312.1.3. Yearly Reset: With the start of a new year, we reset both the functional and technical numbers. So, if we're moving from December 2023 (202312.2.0) to January 2024, the new version would be 202401.0.0. Why This System? ================ This versioning system, inspired by semantic versioning, offers a clear and systematic way to track changes. It ensures that users can easily identify when a significant update has occurred and when minor tweaks have been made.