Make it easier and more consistent to package for distros #1549
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.
The
all_features
set has, well, all features. That's fine for end users that are usingcargo install
or building directly from a Git clone, but that set of features includes one thing than is almost never appropriate for distro packagers to use: theself_update
feature. Because the resulting binary in installed somewhere that the system package manager is tracking, it should never get messed with by a self-* feature. This is a common issue on many projects that enable this by default. If upstream projects don't include a way to disable it out of the box distro often have to patch it out themselves.In the case of this project it can be avoided by manually assembling a long list of features:
--features='feature_capable,apply,fetch,foreach,generate,geocode,luau,polars,python,to,to_parquet'
.This is somewhat combersome and error prone, and also subject to change. The last release for example removed the
generate
feature. That at least threw an error on build so I noticed it when updating the package, but it would be easy for a new feature to get added and have distro packagers miss it.The arrangement in this PR adds a new feature set for the convenience of distro packagers or others distributing a binary through a channel other than "self". This should make it easier to maintain by staying up to date upstream and giving distros a single flag to set that works for most cases.