-
-
Notifications
You must be signed in to change notification settings - Fork 270
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
RFC: Developing package configuration system (package options) outside Base and Pkg? #1378
Comments
I think the main limitation (as you mention later) is that it stores project state outside the It is very good that you have managed to implement this outside of Pkg so that things can be iterated and usecase identified etc. |
Thanks for the comments. Yes, reproducibility is the main issue. I have two ideas: Relative option directoryOption file can be placed at (say)
where
Advantage:
Disadvantage:
Reflecting data to Project.tomlAnother idea is to save the option data both in |
Closing since we have JuliaLang/julia#37595 and https://github.com/JuliaPackaging/Preferences.jl |
I realized that package options can be implemented outside Base and Pkg so here is my proof of concept implementation: https://github.com/tkf/PkgOptions.jl. Combined with conditional dependencies #1285, I think the examples in JuliaLang/Juleps#38 and #977 (cc @Roger-luo) can be covered (feature flags are just boolean package options). Quoting the README:
See more in the documentation: https://tkf.github.io/PkgOptions.jl/dev
What do you think about the approach? Does it have some limitations? What are the alternatives?
A possible improvement would be to increase reproducibility. I think there are several ways to do it (e.g., reflecting options in Project.toml, maybe using format like #458 (comment)).
I think actually the main observation that this can be developed outside Base and Pkg. It's good because the implementation and protocol can be iterated faster in the wild.
The text was updated successfully, but these errors were encountered: