typelevel / typelevel/sbt-typelevel
Setting tlVersionIntroduced on a project
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 185
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
Is there a way to set tlVersionIntroduced for a subproject in a multi-project build? My use case is that I'm adding a new subproject to a multi-project, which causes versionPolicyFindDependencyIssues / mimaPreviousClassfiles to fail, since this subproject was never published before (no previous classfiles / artifacts exist). tlVersionIntroduced seems to be what I want, but that's set on the build - not project - level.
Skimming through old issues here, I found https://github.com/typelevel/sbt-typelevel/issues/57, which suggests it used to be configurable per project, but was changed to be a build setting.
I'm currently doing
mimaPreviousArtifacts := (
if (tlBaseVersion.value == subprojectIntroducedVersion) Set.empty else mimaPreviousArtifacts.value
)
to achieve what I want, but I wanted to double check if there's some other mechanism I should be using for this?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how tlVersionIntroduced, versionPolicyFindDependencyIssues, and mimaPreviousClassfiles are defined and scoped in the sbt-typelevel build. Compare the current build-level setting with the per-project behavior discussed in issue 57. Done means establishing whether a subproject-specific introduction version can be supported without breaking existing multi-project version-policy checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100