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
Add first-class support for Typelevel and other toolkits #2025
Conversation
modules/directives/src/main/scala/scala/build/preprocessing/directives/Toolkit.scala
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! I will wait a bit to gather some more opinions since toolkit is not officially out yet. You're too fast! :D
modules/directives/src/main/scala/scala/build/preprocessing/directives/Toolkit.scala
Show resolved
Hide resolved
I wonder if leaving this feature "open" might lead to a rush to make many "toolkits" just to have an easier import for a project, when perhaps the more general solution would be a flexible way to declare dependencies without versions (and possibly organisations?) and let Scala CLI figure out the conflicts. I know dependencies can be declared with |
I don't think there would be a lot of people willing to invest here, but I understand the concern. Anyone else feels this might become problematic?
I think it should handle the conflicts just as normal. |
Also, after the development of the toolkit itself, the investment to make it automatically supported consists of just adding a new case in a pattern match. I don't think that's a lot to pay. |
I wonder whether support for "toolkit" is a special thing in general. Couldn't it be a simple pom dependency, which transitively depends on all the artifacts that make up a "toolkit"? (If this was discussed before, can you please provide a link to it?) |
Yeah the current implementation is syntax sugar for adding a dependency to |
Plus, the implementation of the TL toolkit is exactly what you described: a metalib that depends on the libraries you want to include in it. See https://github.com/typelevel/toolkit/blob/main/build.sbt#L16. |
in short, no. and even if somebody did overdo it, 🤷, hard to see any real harm in it |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see any objections to merging this, thanks @armanbilge !
Closes #2018