Repository navigation
feat(vendor): install the locked addons into the group directories - #33
Merged
Merged
Conversation
odx vendor replaces every [tool.odx.groups] directory with the addons of the packages the group declares in uv.lock and the addon packages they need: wheels downloaded as uv.lock names them, sha256-checked and cached, with odoo/addons/<addon> copied out; packages from git exported from the commit odx.lock locked. Excluded files are left out, directories outside the project are refused, and output is byte-identical across runs. A content change without a version change bumps the last version segment, kept while the content stays. The vendor manifest records what was written; odx verify --vendored and --deployed check it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 5:
odx vendorfor directory-based platforms.plan: the addon packages per group fromuv.lock(declared ones plus addon dependencies no group declares); packages in develop mode, missing fromuv.lockor without a wheel fail with their name.archive: wheels fetched exactly asuv.locknames them (HTTPS through reqwest,file:///paths from disk), sha256-checked, cached under the cache'swheels/; zip extraction ofodoo/addons/<addon>/with excludes, refusing entries that leave the addon directory.git archiveof the commitodx.locklocked, from the cache (Merger::archive).content: content hashes, last-segment bumps, in-place manifest version rewrite.record:.odx/vendor.lock(round-trips)...) or holdingpyproject.toml/.gitis refused.odx vendorwrites the directories (not forgeneric-wheels, where--requirementsonly writes the requirements);--requirementsalso writes the requirements file; JSON nestsrequirements.odx verify --vendored(directories match the manifest,uv.lock/odx.lockunchanged since) and--deployed <dir>.uv lockof two OCA 17.0 addons from PyPI,odx vendor --requirementsdownloads, verifies and extracts them; a second run is byte-identical;odx verify --vendored --requirementspasses.zip(MIT) with the pure-Rust zlib-rs backend.