katyukha/Odood
Odood Advances Assembly Versioning and Fixes Assembly Path Issues in Recent Releases
Odood, a tool focused on managing assembly versions and release processes, has introduced significant improvements in its assembly version tracking and changelog generation in its v0.7.0-dev.1 release. Additionally, recent updates address critical bugs related to assembly path handling that caused synchronization failures.
What is Odood?
Odood is a project designed to streamline the management of assembly versions and release artifacts, particularly in environments where precise version control and changelog accuracy are critical. It is used by developers who need automated tools to handle assembly versioning, changelog generation, and release tagging, ensuring that releases are consistent and traceable. The tool integrates tightly with Git, leveraging tags and commit histories to maintain version integrity.
Key Updates in Recent Releases
v0.7.0-dev.1
The latest development release, v0.7.0-dev.1, introduces several new commands and changes that enhance how assembly versions are managed:
New Commands:
odood assembly release: Automates assigning the next assembly version, generating release artifacts, committing changes, and creating a Git tag. This command requires a clean working tree to ensure the tag accurately reflects the committed content.odood assembly status: Displays the current assembly version.odood assembly sync --changelog-preview: Writes pending changes into theCHANGELOG.mdunder an "Unreleased" heading, allowing preview of changelog updates before release.
Version Tracking Shift: Assembly versions are now primarily tracked by Git tags, moving away from relying solely on a
VERSIONfile. TheVERSIONfile remains optional and is updated during releases if present.Breaking Change: The command
odood assembly sync --changeloghas been removed, consolidating changelog generation and version assignment intoodood assembly release. This change requires continuous integration (CI) environments to fetch full Git history and tags (fetch-depth: 0), as shallow clones are no longer supported.API Enhancements: The library API now separates release preparation (
Assembly.prepareRelease), validation (Assembly.validateRelease), and changelog generation (generateChangelog). This modular approach improves release workflow automation.Bug Fixes: Fixes include correcting the Docker image version label to prevent it from drifting from the actual release version and ensuring the
.dockerignorefile does not exclude critical files likeodood-assembly.ymlneeded during Docker builds.
v0.6.6 and v0.6.6-dev.2
Both these releases addressed a significant bug where loading a project with an assembly-path bound to an invalid Odoo series caused the odood assembly sync command to fail with a fatal Git error related to an invalid refspec. This bug also affected source resolution, potentially targeting incorrect branches. The fix ensures that assemblies are correctly bound to valid Odoo series, preventing synchronization failures.
Why These Changes Matter
Assembly versioning is a common challenge in software development, especially when managing complex projects with multiple dependencies and release cycles. Odood's move to track assembly versions via Git tags aligns with best practices in version control, providing a more reliable and auditable release process. The addition of new commands simplifies the release workflow, reducing manual steps and the risk of errors.
The removal of shallow clone support in CI environments, while requiring configuration changes, ensures that releases are based on complete repository history, which is essential for accurate versioning and changelog generation.
Fixing the assembly-path binding bug improves stability and reliability, especially for users who integrate Odood with Odoo series projects, ensuring that source resolution and synchronization work as intended.
Community and Usage Context
While the search context primarily covers assembly versioning challenges in .NET environments, Odood's approach to managing assembly versions through Git tags and changelog automation reflects broader industry trends towards integrating version control more deeply into release management. Users of Odood benefit from automated, consistent versioning and release artifact generation, which is crucial in continuous integration and deployment pipelines.
Conclusion
The recent Odood releases demonstrate a focused effort to enhance assembly version management and address critical bugs that affect synchronization reliability. Developers using Odood should update to these versions to take advantage of improved release commands, better version tracking, and resolved assembly path issues. Additionally, CI configurations may need adjustment to accommodate the new requirements for full Git history fetching.