What's Changed
This release improves resolution behavior at both the module and file levels.
For module resolution, Protofetch now handles conflicts deep in the dependency tree more predictably. Dependencies declared earlier in protofetch.toml take priority, and transitive dependencies can always be overridden by declaring them explicitly.
For file resolution, we cleaned up several corner cases and bugs around pruned dependency resolution. We also made deny_policies behave consistently for both pruned and non-pruned dependencies.
After upgrading, generated output may change. In rare cases, these changes may break existing builds. This most likely means that one or more protofetch.toml files were relying on undocumented quirks. Even when the issue comes from a transitive dependency’s module definition, it should still be possible to work around it by adding explicit dependencies to the top-level protofetch.toml.
Details
- Rewrite proto copying (#226) @rtimush
- Use rayon for dependency fetches (#225) @rtimush
- Fully remove the old resolve implementation (#224) @rtimush
- Rewrite module resolution (#223) @rtimush
- Use rayon for proto copy parallelism (#222) @rtimush
- Make it explicit that we copy single proto source at a time (#221) @rtimush
- Extract e2e test fixtures into files (#220) @rtimush
- Documentation and tests (#219) @rtimush
- Content root fixes (#218) @rtimush
- ci: publish per-PR preview packages to pkg.pr.new (#217) @ashley-hunter
- Restructure npm distribution into platform-specific packages (#216) @ashley-hunter
- Remove per-PR preview releases (#214) @rtimush