Skip to content

Conversation

@armanbilge
Copy link
Contributor

Closes #2018

Copy link
Member

@tgodzik tgodzik left a 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

@bishabosha
Copy link
Contributor

bishabosha commented Apr 13, 2023

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 latest.release or latest.stable as the version, but I don't know if that handles conflicts at all

@tgodzik
Copy link
Member

tgodzik commented Apr 13, 2023

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 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 know dependencies can be declared with latest.release or latest.stable as the version, but I don't know if that handles conflicts at all

I think it should handle the conflicts just as normal.

@TonioGela
Copy link

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?

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.

@lefou
Copy link

lefou commented Apr 13, 2023

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?)

@bishabosha
Copy link
Contributor

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 <organisation>::toolkit::<version>

@TonioGela
Copy link

TonioGela commented Apr 13, 2023

Yeah the current implementation is syntax sugar for adding a dependency to <organisation>::toolkit::<version>

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.

@SethTisue
Copy link
Contributor

Anyone else feels this might become problematic?

in short, no. and even if somebody did overdo it, 🤷, hard to see any real harm in it

Copy link
Member

@tgodzik tgodzik left a 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 !

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

Archived in project

Development

Successfully merging this pull request may close these issues.

First-class support for "alternative" toolkits

7 participants