Skip to content
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

Make it easier and more consistent to package for distros #1549

Merged
merged 2 commits into from
Jan 18, 2024

Conversation

alerque
Copy link
Contributor

@alerque alerque commented Jan 18, 2024

The all_features set has, well, all features. That's fine for end users that are using cargo 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: the self_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.

@jqnatividad jqnatividad merged commit 3281fa5 into jqnatividad:master Jan 18, 2024
13 checks passed
@jqnatividad
Copy link
Owner

Thanks @alerque ! Out of curiosity, are you currently packaging qsv in a distro? Which one?

@alerque alerque deleted the organize-features branch January 18, 2024 13:50
@alerque
Copy link
Contributor Author

alerque commented Jan 18, 2024

Yes, I package it for Arch Linux. It is currently in the AUR and the prebuilt user repository I host, but I'll probably move it to official repositories soon. I also know Hombrew packages this, and now that it does I can start depending on it for some production work that needs to have access to it. This should benefit that build too. I also plan on submitting it to Nix. I see others have packaged it for Void Linux and MacPorts as well. This should be relevant in all of those cases as well as other potential distros.

@alerque
Copy link
Contributor Author

alerque commented Jan 18, 2024

https://repology.org/project/qsv/versions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants