-
Notifications
You must be signed in to change notification settings - Fork 14
feat!: consume the declarative index, drop the pkg_id requirement #186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 19 commits
Commits
Show all changes
66 commits
Select commit
Hold shift + click to select a range
f3fb8e1
build: require compak 0.2 for single-file compression
QaidVoid 2798d45
feat(registry): read the declarative index format
QaidVoid 1d3e9ac
feat(db): store binaries and side files
QaidVoid 6a0ad6b
fix(dl): extract by content, not declared type
QaidVoid 5d96b13
feat(core): install side files and fix extraction
QaidVoid fa89bd4
fix(operations): resolve binaries by path before name
QaidVoid 04d44b1
fix(cli): report packages rejected during import
QaidVoid 6557122
feat: select variants by family, deprecate pkg_id
QaidVoid 38ef337
fix(cli): surface log events instead of dropping them
QaidVoid 90f2981
feat: track package family for installed packages
QaidVoid 2b589ee
feat: allow packages without an id
QaidVoid ef48f06
feat(db): stop inventing package ids on import
QaidVoid 66c3529
fix(remove): restore write bits before deleting a package
QaidVoid fa73bdb
fix: match installed packages by name, not by id
QaidVoid 450b8da
fix(update): order versions by segment, not by string
QaidVoid 9bd5d5f
feat: declare an index format version
QaidVoid a1af52b
docs(install): explain why licences carry no hash
QaidVoid 4715fb3
fmt
QaidVoid a72ee19
refactor(db): collapse the new migrations into one per database
QaidVoid b048a17
fix(url): keep the derived id when building a package
QaidVoid 61bf815
fix: repair tests and lints left by the pkg_id removal
QaidVoid 203b5c0
feat(config): deprecate install_patterns
QaidVoid 1ad8b75
fix: scope package lookups by identity, not by a missing id
QaidVoid 614cb70
fix(db): refuse a downgrade instead of deleting id-less rows
QaidVoid cd0513e
fix(db): let the metadata cache clear on downgrade
QaidVoid 7140788
refactor: stop deriving package ids for local sources
QaidVoid 27b2955
feat: install packages from the published file list
QaidVoid ef2b305
feat(health): report whether man can find installed pages
QaidVoid c8ce8df
fix: resolve multi-version installs and lay out read-only trees
QaidVoid b180d89
fix: show one row per package, not one per version
QaidVoid 1d244e5
feat: name the other versions a package publishes
QaidVoid 09f5e76
fix(query): order versions newest first
QaidVoid cebcd2c
fix: tell apart packages that share a name across repos
QaidVoid 1291794
fix(run): lay out archives and cache per exact package
QaidVoid 06bdca2
fix(run): reuse the cache and run the chosen package
QaidVoid 4f96faf
fix: give each install its own directory
QaidVoid 9a03e83
fix: treat the repository as part of a package identity
QaidVoid d60c43a
fix(use): link the chosen row, not every matching checksum
QaidVoid 6cb5cdb
fix(run): end the progress line before the program starts
QaidVoid 04bc368
fix(run): end the progress line before the program starts
QaidVoid 0a833ea
fix: match a package by its id and family, not its name
QaidVoid b30389b
fix(db): tell id-less packages apart by their family
QaidVoid 8c76eb9
fix: fail the install when nothing could be extracted
QaidVoid 2bf2be5
fix(link): keep shared links across an upgrade
QaidVoid 9a74c76
fix(version): rank a commit hash below an ordinary version
QaidVoid 25abb9f
fix(update): restore write bits before removing a package
QaidVoid 3891a96
fix(db): treat a differing id or version as an alternate
QaidVoid 04647b7
docs: reattach doc comments to the items they describe
QaidVoid deceeda
fix(install): make the file layout survive a failed move
QaidVoid 78f0e1b
fix(install): compare the family when matching an install
QaidVoid 61b420a
fix(run): key the cache by repository, verify what it returns
QaidVoid 1f67a0c
fix(registry): name the field a malformed index failed on
QaidVoid 56aebb8
fix(link): walk once, and refuse a second source for one command
QaidVoid 84b4c72
refactor: keep one list of the shared link destinations
QaidVoid e686db1
refactor(db): drop the checksum-keyed unlink and link twins
QaidVoid b7e1d2c
refactor: share the newest-version helpers with search
QaidVoid 099a325
fix(db): count and match packages that carry no id
QaidVoid 5430306
fix(query): anchor the parser so a third segment is rejected
QaidVoid 1d2893f
fix: narrow every installed-package lookup by family
QaidVoid e1f862d
fix(cli): show and re-resolve a package by its family
QaidVoid 91f7d55
fix(portable): reject a family that is not a path component
QaidVoid 3f44f87
fix(json2db): name the import temporary after the process
QaidVoid e8adfdd
feat(config): declare a package family, deprecate pkg_id
QaidVoid aeedb6d
fix(db): rebuild the packages table without losing rows
QaidVoid fdb6e0d
refactor(db): drop the metadata binaries column
QaidVoid a1634ce
fix(health): treat a missing directory as nothing to check
QaidVoid File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🌐 Web query:
compak crate changelog 0.2.0 breaking changes detect_from_file💡 Result:
The compak crate has not reached version 0.2.0; as of August 1, 2026, the latest available version on crates.io is 0.1.2 [1][2]. Consequently, there is no changelog or breaking changes documentation for a 0.2.0 release [1]. The function detect_from_file is indeed present in the compak crate, but it is located within the format module (full path: compak::format::detect_from_file) [3]. Because the crate is currently at version 0.1.2, any behavior associated with this function is subject to the version 0.1.x API and has not undergone breaking changes associated with a 0.2.0 release [1]. If you encountered a reference to detect_from_file breaking changes, it may be associated with another Rust crate that implements similar functionality, such as ccstatus (where detect_from_file is also used) [4][5] or other libraries, rather than the compak crate [1][3].
Citations:
🏁 Script executed:
Repository: pkgforge/soar
Length of output: 509
🏁 Script executed:
Repository: pkgforge/soar
Length of output: 3636
🏁 Script executed:
Repository: pkgforge/soar
Length of output: 712
🌐 Web query:
docs.rs compak 0.2.0 crate detect_from_file💡 Result:
The compak crate does not currently have a version 0.2.0; the latest version is 0.1.2 [1][2]. In the compak crate, the detect_from_file function is located within the format module (exposed as compak::format::detect_from_file) [3]. It is designed to detect the archive format of a given file. Based on the crate's documentation, the signature of this function is: pub fn detect_from_file
(path: P) -> Result<ArchiveFormat, ArchiveError> where P: AsRef, This function takes a path to a file (any type that implements AsRef) and returns a Result containing either the detected ArchiveFormat enum or an ArchiveError if the detection fails [3].
Citations:
Do not pin this
compakdependency to0.2.0.compakdoes not have an available0.2.0release on crates.io, but this package entry pins it to0.2.0and the lockfile recordsversion = "0.2.0". This will fail dependency/solution locking because no published package matches that version.🤖 Prompt for AI Agents