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

Idea: Factor out SBT-independent core module #120

Open
nafg opened this issue Jan 6, 2022 · 0 comments
Open

Idea: Factor out SBT-independent core module #120

nafg opened this issue Jan 6, 2022 · 0 comments

Comments

@nafg
Copy link

nafg commented Jan 6, 2022

See discussion in #119

Perhaps the API could use Coursier data types, since SBT, Mill, and a lot of other Scala tooling understand them.

Perhaps this module would be purely focused on determining breaking-ness of a change in dependencies, since I assume MiMa already has an SBT-independent API.

Since SBT doesn't use Coursier data types directly, it might be interesting to consider further decoupling the plugin, so that the settings and tasks are just a thin layer on top of an API that implements all the logic in plain Scala, but with SBT data types as applicable. This could make developing other SBT plugins on top easier.

I think this is general good advice for all SBT plugin authors. If others agree maybe it should be written somewhere prominent. Have a core, build-tool-agnostic layer on bottom, on top of that a build-tool-specific plain-scala "business logic" layer, and make the plugin with its settings and tasks a very thin layer on top of that. I don't know how many plugins are written like that though, if any...

@nafg nafg changed the title Factor out SBT-independent core module Idea: Factor out SBT-independent core module Jan 6, 2022
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

No branches or pull requests

1 participant