question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Broken releases due(?) to broken maven setup (RoaringBitmapParent artifact)

See original GitHub issue

I used to issue releases by going to the main RoaringBitmap repository and typing mvn release:clean && mvn release:prepare && mvn release:perform. Since PR https://github.com/RoaringBitmap/RoaringBitmap/pull/181 this no longer works. Sadly, CI does not check that releases are possible, so I did not catch the issue.

As I recall the point of the release was to move to a “classic maven project” described as follow:

Cannot we do a classic maven project by moving RoaringBitmap actual source to a specific submodule, and leaving all other submodules where they are?

Technically, I can issue the commands, but it does not generate an actual release and the result is a broken repository. I left the broken commits on purpose, so you can see the result…

https://github.com/RoaringBitmap/RoaringBitmap/commits/master

Note that to be able to do this in a sane way, I had to make a small change to the pom file so that jmh is excluded as a submodule by default, because otherwise, we run the full jmh unit test which takes 3 hours on my machine, and fails for an unclear reason (it looks like -DBITMAP_TYPES=ROARING_ONLY has no effect when doing mvn perform), with The forked VM terminated without saying properly goodbye.

Anyhow, the broken aspect of the release with mvn release:clean && mvn release:prepare && mvn release:perform has to do with the fact that this attempts to release an artifact RoaringBitmapParent. I am not sure what that is, and I am not sure that it is correct. Yet this seems to have been deliberate, see the pom file: https://github.com/RoaringBitmap/RoaringBitmap/blob/master/pom.xml#L5

To still be able to issue releases, I did a deploy instead from within the roaringbitmap subdirectory, hoping it would save us from RoaringBitmapParent artifact nonesense…

  cd roaringbitmap
  mvn versions:set -DnewVersion=0.6.53
  mvn clean deploy
  git commit -a
  git tag -a v0.6.53 -m "version 0.6.53"
  git push --tags
  # go to https://oss.sonatype.org/#nexus-search;quick~roaringbitmap and initial the release manually

Sadly, this result in something that is broken as well as you can see from a report on the mailing list:

I’m having some problems pulling the latest release from maven central via Leiningen:

[~/repos/streaming-lda] $ lein deps

Retrieving org/roaringbitmap/RoaringBitmap/0.6.53/RoaringBitmap-0.6.53.pom from central

Could not find artifact org.roaringbitmap:RoaringBitmapParent:pom:0.6.53 in central > (https://repo1.maven.org/maven2/)

This could be due to a typo in :dependencies or network issues.

You can see it’s looking for a artifact with “RoaringBitmapParent” in the name. Leiningen doesn’t do this when I try to pull down any other version, it just grabs the pom and jar having the usual names, like this: [~/repos/streaming-lda] $ lein deps Retrieving org/roaringbitmap/RoaringBitmap/0.6.49/RoaringBitmap-0.6.49.pom from central Retrieving org/roaringbitmap/RoaringBitmap/0.6.49/RoaringBitmap-0.6.49.jar from central
I can see from the history your pom file that this is some sort of intentional change. My maven knowledge is fairly low, but I’m suspicious that this is something Leiningen either doesn’t support requires some workaround for. Do you know anything more about this than I do?

Anyhow, it seems clear that either the maven project is broken or else, I am lacking the right release instructions.

I think that this is an urgent problem.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:33 (33 by maintainers)

github_iconTop GitHub Comments

1reaction
lemirecommented, Dec 19, 2017

@Kineolyan

I don’t think he was serious. I am not considering Gradle. Someone would have to build a case for it and do the legwork.

I’ll add that tools like Maven is what turn people off to command line tools. You really, really want to go back and hide in an IDE. I’m a command-like guy and I cringe when I have to issue maven commands… because it is going to be slow and fragile… I mean… like us get serious… what is this -Darguments="-DskipTests" shit? And how does it differ from -Darguments="-Dmaven.test.skip"? It is just insane.

Fortunately, we don’t have to program using maven… most of the time.

1reaction
Kineolyancommented, Dec 19, 2017

Hello @lemire,

As pointed in my comment, I think I can easily tune something not to run tests during the deploy phase of the release process. It only add more elements to the poms. Regarding the release of RoaringBitmapParent, I am pretty sure but not certain that it must be released, because our dear RoaringBitmapParent marks it as its parent. If not present, all builds will fail for this pom cannot be downloaded. But again, as I did not deploy on a real Maven repository, I cannot be sure.

About @richardstartin proposal of migrating to Gradle, it is an option I consider for various projects. In our case, I am not sure it would change much. It is just the trendy tool wrt Maven.

Cheers

Read more comments on GitHub >

github_iconTop Results From Across the Web

My Maven build is broken, what should I do? | iText PDF
This means that they allow Maven to automatically update their dependencies. The meaning of the brackets such as [ and ) is explained...
Read more >
Maven Central Repository Search
Official search by the maintainers of Maven Central Repository.
Read more >
[SOLVED] Maven broken? - IDE & Build - openHAB Community
Hello together, does anyone has experienced the same issue that compiling a binding leads to a corrupted jar file, i.e. empty files beyond ......
Read more >
pom.xml · 80565ce253c6efc0d5b5966122d3e81262e5c82f ... - GitLab
during a build. It is useful when testing against nightly or RC releases of dependencies. 2759. It MUST NOT be used when building...
Read more >
Changelog - HERE Data SDK for C++ - HERE Developer
Fixed an issue with versions incompatibility between scala-maven-plugin 4.1.1 and Maven 3.8.* . ... Fixed broken highlighting and selection of features.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found