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

A way to generate/rewrite directives to pin all the things for a stable, reproducible build #2145

Open
armanbilge opened this issue May 24, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@armanbilge
Copy link
Contributor

Is your feature request related to a problem? Please describe.

Scala CLI sets many values implicitly, such as Scala Version, Scala.js / Native Version, etc. Additionally, dependencies may be added with the latest.release version. While this is excellent for development and rapid prototyping, eventually you may want a stable, reproducible build when you deploy into production.

Describe the solution you'd like

A way for Scala CLI to provide or rewrite all the relevant directives to get a stable, reproducible build.

Describe alternatives you've considered

You can attempt to do this manually, but it's not always obvious all the things that are necessary to pin, and it takes some effort to track down the versions.

For example there is a --js-cli-version option that must also be pinned if you want stability/reproducibility, but this is marked as an "internal" option.

Additional context

See also scala/toolkit#20 (comment).

@tgodzik
Copy link
Member

tgodzik commented Jun 21, 2023

Thanks for reporting! I think this would be nice to have, but we don't have currently the capacity to work on it.

I think this should be an additional command that we could group all the potential fixes maybe together with scalafix (could it even be a scalafix rule)?

Something like:
scala fix [rules]

Rules could be the scalafix ones or ones provided by default.

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

No branches or pull requests

2 participants