open-feature / open-feature/java-sdk-contrib

Parent version range [1.0,2.0) is not resolvable by Coursier

Open
#1,845 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
49
Forks
81
Avg merge
20h 3m
Merged PRs (30d)
6

Description

Note: I faced the issue, but the report below was investigated and written partially by LLM.

The published POMs for flagd and flagd-core declare their parent with a version range rather than a fixed version. Coursier, which is the resolver mill and sbt use, cannot resolve a range in a <parent> element. It treats the range as a literal path and fails to download the parent POM, so the artifacts cannot be resolved from those build tools at all.

flagd 0.14.1 and flagd-core 2.0.0 both declare the parent this way:

<parent>
  <groupId>dev.openfeature.contrib</groupId>
  <artifactId>parent</artifactId>
  <version>[1.0,2.0)</version>
</parent>

Coursier requests the literal path and fails:

Resolution error: Error downloading dev.openfeature.contrib:parent:[1.0,2.0)
  not found: https://repo1.maven.org/maven2/dev/openfeature/contrib/parent/[1.0,2.0)/parent-[1.0,2.0).pom

Reproduce with the coursier CLI:

cs fetch dev.openfeature.contrib.providers:flagd:0.14.1

Currently, coursier cannot resolve flagd 0.11.9 and later, all of 0.14.x, and flagd-core 2.x. The last resolvable release is flagd 0.11.8, which still has a concrete parent (0.1.0).

Is it possible to publish the POMs with a concrete parent version instead of a range, so the artifacts resolve for any Maven-repo client and not only Maven and Gradle? Otherwise, most Scala clients will need to give up using this sdk.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the reported cs fetch dev.openfeature.contrib.providers:flagd:0.14.1 command and inspect the published POMs for flagd and flagd-core. Trace how their parent version is selected during publication; done means the affected artifacts publish a resolvable parent and Coursier can fetch the listed releases.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.