Version 2.5.1 Not Available in Maven Central #31

Closed
Ardesco opened this Issue Jan 15, 2014 · 51 comments

Comments

Projects
None yet
9 participants

Ardesco commented Jan 15, 2014

It would be good to see the latest version up in maven central.

Version 2.11 of JMeter is using version 2.5.1 of RSyntaxArea and the dependency tree of the maven release is currently broken which is currently a blocker for version 1.10.0 of the JMeter Maven Plugin.

Any ETA for an upload?

Ardesco referenced this issue in jmeter-maven-plugin/jmeter-maven-plugin Jan 15, 2014

Closed

JMeter 2.11 support #90

oakes commented Jan 26, 2014

Agreed; a maven upload of 2.5.1 would be great!

Owner

bobbylight commented Feb 10, 2014

As usual, we're behind with Maven, sorry. Looking into it now!

Ardesco commented Feb 12, 2014

Any update on this? There's still nothing in maven central.

Yeah it will be really good if you upload v 2.5.1 to a maven repository.

Ardesco commented Mar 7, 2014

This defect has now been open for 2 months and there is still nothing in maven central. Could we at least get an update?

Owner

bobbylight commented Mar 9, 2014

I personally don't maintain the Maven artifacts (and have never used Maven at all), and the person who has been maintaining the RSTA Maven artifacts has been too busy to update them.

Also unfortunately, we're now two releases behind. RSTA 2.5.2 was just released today.

I don't have any interest in doing this myself, but if anyone would like to donate their time and energy to add RSTA 2.5.1 and 2.5.2 into Maven, I can put you into touch with the original maintainer, and perhaps we can make this happen.

Ardesco commented Mar 9, 2014

I'm happy to help out if it will get things moving, I'm also quite open to adding a job to our build server to automate the process.

Ardesco commented Mar 11, 2014

Still waiting for some contact details.

Ardesco commented Mar 11, 2014

Still waiting for some contact details.

Owner

bobbylight commented Mar 12, 2014

You can contact Rob Manning (manningr) who owns the SourceForge project here:

https://sourceforge.net/projects/rtext4maven/

My understanding is that this project is simply some shell scripts that Mavenize RSTA, its sister projects, and RText (an editor application built on top of RSTA), and publishes the artifacts (or at least does most of the work). What is committed may be slightly out of date though.

I don't want to drop email addresses here, but you can contact him via his SourceForge page.

You can also contact me directly via email at robert at fifesoft.

It's too bad this still hasn't been fixed. Really this is entirely JMeter's fault for not using an existing maven repo in the first place, but que sera sera. I don't know if this helps anyone, but I wrote a really hacky work around to add 2.5.1 to your local maven repository. It works on my machine™, but you might have to change the url that it wget's by actually browsing to the page on sourceforge.

https://github.com/SonOfLysander/jmeter-csv-parser/blob/master/lazy-download-rsyntax-2.5.1.sh

Owner

bobbylight commented Mar 27, 2014

I don't think we've heard anything from Ardesco. If anybody else is willing to take charge of getting RSTA into Maven, please contact me at the email address in the post above!

I'll totally do it. email-sent

Ardesco commented Mar 29, 2014

I've emailed Rob manning but heard nothing back. I'm still quite happy to do this as it will unblock the next release of the JMeter Maven Plugin.

Owner

bobbylight commented Apr 1, 2014

Just a note that we're hashing out the details to get 2.5.1 and 2.5.2 into Maven via email.

bobbylight closed this Apr 1, 2014

bobbylight reopened this Apr 1, 2014

bobbylight closed this Apr 1, 2014

bobbylight reopened this Apr 1, 2014

Ardesco commented Apr 17, 2014

Any update on how this is going?

Owner

bobbylight commented Apr 24, 2014

And now I've stopped hearing from SonOfLysander :( It appears that this effort is still stalled.

Ardesco commented Apr 24, 2014

I'm still happy to help.

what is going on with the latest on maven repository is it really a big deal?

Ardesco commented Apr 24, 2014

I've emailed you at robert at fifesoft, let me know if it didn't get through.

didn't get any, roman.mandeleil at gmail

Ardesco commented Apr 25, 2014

Sorry previous comment by me was aimed at @bobbylight :)

I think your email got sent to my spam folder or something because I can't see the reply back in my email's inbox at that timeframe. I'm not sure, but it seems we're all having some kind of email issue going on. Is there maybe another email people can contact you at?

pmouawad commented Jul 5, 2014

Hello,
What is the progress on this issue ?
We have this issue and would like to upgrade to last version of library:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56367

It would be sad to have to downgrade.
Thanks

Ardesco commented Jul 7, 2014

I've forked rtext4maven and started tweaking it to get it working on my CI server, but I've not finished yet due to time constraints (I just don't have enough free time these days), You can see where I have got so far at:

https://github.com/Ardesco/rtext4maven

dscho commented Jul 8, 2014

So... I had a look at rtext4maven and could not really make heads nor tails of it, it looked quite the bit over-engineered to me.

So I went ahead and wrote a very simple script to download official RSyntaxTextArea releases from SourceForge and deploy Maven artifacts to a public Maven repository. I used that script to deploy versions 2.5.1, 2.5.2 and 2.5.3.

The Maven repository is here: http://maven.imagej.net/content/repositories/thirdparty/

The repository containing the script is here: https://github.com/dscho/deploy-rsyntaxtextarea

I just sent a SourceForge message to Rob and hope he will be responding soon so that I can deploy to OSS Sonatype instead, to make even current versions of RSyntaxTextArea available via Maven Central.

dscho commented Jul 9, 2014

Update: I got permission to deploy: https://issues.sonatype.org/browse/OSSRH-10595. Will keep y'all posted.

@dscho dscho added a commit to dscho/deploy-rsyntaxtextarea that referenced this issue Jul 9, 2014

@dscho dscho Switch to OSS Sonatype
Deploying to OSS Sonatype has one major advantage over the (temporary)
solution to deploy to the ImageJ Maven repository: OSS Sonatype is
mirrored to Maven Central, and therefore does not require any extra
setup in the pom.xml to be able to use the referenced artifacts.

This reverts commit 593949b("Deploy to the ImageJ Maven repository")
and fixes bobbylight/RSyntaxTextArea#31.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
93b6e23

dscho commented Jul 9, 2014

Versions 2.5.1-2.5.3 deployed to OSS Sonatype: https://oss.sonatype.org/#nexus-search;gav~com.fifesoft~rsyntaxtextarea~~~

It is now only a matter of time until it trickles over to Maven Central.

dscho commented Jul 9, 2014

Aaaaand version 2.5.1 just hit Maven Central: http://repo1.maven.org/maven2/com/fifesoft/rsyntaxtextarea/2.5.1/

Therefore this bug can be closed (2.5.2 and 2.5.3 should be there shortly).

@bobbylight for the future, would you mind pinging me when you release a new version? I will then simply run the script (assuming that no adjustment is necessary, i.e. assuming that the same directory structure and file name convention is used on SourceForge) to deploy the new versions in a timely fashion.

Thank you all for your attention.

Ardesco commented Jul 9, 2014

Bleh, I should have checked this earlier.

I've got the fork I made of rtext4maven working correctly on my local and it's currently creating the bundles for the rsyntaxarea modules:

*autocomplete
*languagesupport
*rstaui
*rsyntaxtextarea
*spellchecker

and the rtext modules:

*common
*icon groups
*rtext

I've removed a lot, there is also a fair bit of scope to remove even more and condense it quite significantly but I figured that getting it working would be the best thing to do before going mad :)

I haven't checked it on a linux box yet, but I've tried to remove any OSX/*nix specific commands from the shell script and removed anything that referred to external dependencies (I didn't have any of them).

It's designed to be plugged into a CI server so unfortunately it needs quite a bit of input on the command line, it will tell you what you need when you first run it (The idea is that these parameters can be passed in to define the versions it builds rather than having them hard coded in the script).

Right now there doesn't seem much point in me plugging it into my CI server and cleaning up the rough edges unless somebody wants to use it, it's available at https://github.com/Ardesco/rtext4maven so have a look at it and let me know if you want me to do anything else to it.

dscho commented Jul 10, 2014

Well, my idea was to avoid shipping artifacts different from the ones released on SourceForge...

Owner

bobbylight commented Jul 10, 2014

I'd like to thank everyone who worked to make this happen. While it may not seem like it from my lack of responses, I do appreciate the work you folks did to get RSTA into Maven.

@dscho what's the best way to ping you moving forward? I don't see an email address associated with your Github account.

Ardesco commented Jul 11, 2014

@dscho I'm not suggesting there is anything wrong with what you have done. 2.5.1 is in Maven central so I'm happy.

What I have done is there if anybody wants it/bits of it.

dscho commented Jul 11, 2014

@bobbylight My email address should be public: johannes.schindelin@gmx.de. You could also just open a GitHub issue and mention me... Whatever works best for you!

dscho commented Jul 11, 2014

@Ardesco I appreciate the work that you put into the task, it's just that I thought another approach might be better. As for the other artifacts, such as autocompletion, how about enhancing my shell script to download and deploy those in addition to rsyntaxtextarea, too?

Owner

bobbylight commented Jul 19, 2014

In my local copy, I'm working on a branch that uses Gradle for builds. My understanding is that this would also facilitate publishing artifacts to Maven. When I commit this branch, if anybody more familiar with these tools would like to double-check my work, that would be wonderful. If all goes well it can be ultimately merged into master.

schlm3 commented Aug 12, 2014

Is there any chance, that autocomplete 2.5.3 can be put on maven soon? I just realized that for my project, rsyntaxarea did update to 2.5.3 while autocomplete is still on 2.5.0 due to the missing release in maven.

oakes commented Aug 24, 2014

I would love to see AutoComplete on maven as well.

oakes commented Sep 4, 2014

Are there any issues with using different versions of RSyntaxTextArea and AutoComplete? I'm using 2.5.3 and 2.5.0 respectively, since they are what is available on maven...

Owner

bobbylight commented Sep 4, 2014

The official line is that you should use the latest version of each library together, though that doesn't mean using older versions of a particular one won't work. I guess I'm saying "if it works, it's fine."

The RSTA api hasn't been changing much recently, so that's probably why it works for you. I try to do the right thing but there may be times when I introduce api changes in minor releases. In those cases though, sister libraries like AutoComplete will get new releases as well.

Note that moving forward, I hope to get all new releases into Maven Central, so this will be a non-issue.

oakes commented Sep 4, 2014

Thanks! Looking forward to the next release.

Owner

bobbylight commented Nov 13, 2014

@dscho @Ardesco, could one of you check out the latest from master and verify whether the artifacts generated via "gradlew uploadArchives" are what we'd expect to upload to Maven Central? This task will create a "localRepo" subdirectory at the root of your workspace for the archives; it won't try to upload them anywhere currently.

Or, for your convenience, I've zipped up the output here:

http://fifesoft.com/temp/RSyntaxTextArea_uploadArchives_output.zip

Sorry about being so paranoid about the artifact state; I just have no experience with Maven (still none), and hacked these Gradle scripts together in an attempt to get something working, and just want to avoid accidentally uploading bad artifacts just due to my own stupidity.

I'm getting .jar, .asc, .md5, .sha1 and .pom files for source, javadoc and sources artifacts. If these all look good, I'll tweak the gradle builds for the miscellaneous RSTA projects to upload to Maven Central, and hopefully we'll finally have this done in a timely manner!

dscho commented Nov 13, 2014

Thanks for zipping it up, I do not use Gradle (if you want to know why, I can clarify).

It looks pretty good, with the exception of the .pom file:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach
e.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.fifesoft</groupId>
  <artifactId>RSyntaxTextArea</artifactId>
  <version>2.5.4</version>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.+</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

If you compare with https://repo1.maven.org/maven2/com/fifesoft/rsyntaxtextarea/2.5.3/rsyntaxtextarea-2.5.3.pom, you will see that quite a few metadata are missing (some of which are mandated by OSS Sonatype, i.e. you won't be able to finalize the deployment without having those sections because Sonatype will simply reject the staged .pom file):

  • <parent> – this is not strictly necessary, but it inherits settings suggested by Sonatype.
  • <name> and <description> – both are optional, but why remove them when we already have them?
  • <inceptionYear>, <url>, <licenses>, <scm> and <developers> are required as far as I remember
  • the version number of the junit dependency is invalid. Gradle might not care, but the way to do it is really to specify a specific version (for continuity reasons, I would suggest 4.8.1). If you must specify a version range – which results in irreproducible builds – the correct Maven syntax is: [4.3,) (4.3 is the earliest JUnit version available via Maven Central and an empty upper bound implies no boundary).
  • <build> is there really only to enforce the Java 1.5 compatibility even when compiling with a JDK >=6; putting this information into the .pom file is more than just a build setting: it is a statement that you aim for compatibility with Java 1.5 and every contributor needs to make sure that their contributions avoid relying on features introduced only in later Java versions (including Java classpath versions).

Also, in the interest of continuity, I would strongly suggest to use the exact (i.e. all lower-case) name of the previously deployed artifacts; that is what I did so that users could simply update the version number and be done.

Owner

bobbylight commented Nov 13, 2014

Thanks for the feedback, just what I was looking for! I'll try to address these issues before the next release.

dscho commented Nov 13, 2014

👍

Owner

bobbylight commented Nov 16, 2014

A second attempt, if you have time. I think I addressed all the points you raised:

http://fifesoft.com/temp/localMavenRepo.zip

This zip contains RSyntaxTextArea and all of its sister projects.

The only questions I think I have left are:

  • I think I should remove any children I find of tags. They seem to imply a tag to pull from; not sure if i should specify the latest version each time (since I do tag it), or not specify at all to default to HEAD.
  • When I upload to Sonatype, I'm assuming that maven-metadata.xml for each project will be automatically updated to include the latest version being uploaded. Is that correct?
  • Can you help get me deployment access to com.fifesoft on Sonatype? My user id there is bobby_light. Also not sure if there's any other information I need to actually do the upload.

dscho commented Nov 16, 2014

I think I should remove any children I find of tags. They seem to imply a tag to pull from; not sure if i should specify the latest version each time (since I do tag it), or not specify at all to default to HEAD.

The idea is for the maven-release-plugin to switch the <tag> from HEAD to the appropriate tag automatically.

I have no idea whether Gradle does this or not.

When I upload to Sonatype, I'm assuming that maven-metadata.xml for each project will be automatically updated to include the latest version being uploaded. Is that correct?

I think so. It could be Maven, though, which does it, I never really dived into those details.

Can you help get me deployment access to com.fifesoft on Sonatype? My user id there is bobby_light. Also not sure if there's any other information I need to actually do the upload.

See https://issues.sonatype.org/browse/OSSRH-12408

dscho commented Nov 16, 2014

I had a brief look at the pom of autocomplete and I think that you meant to switch the <tag> to 2.5.4 (not 2.5.1). Otherwise it looks perfect to me!

dscho commented Nov 17, 2014

Can you help get me deployment access to com.fifesoft on Sonatype? My user id there is bobby_light. Also not sure if there's any other information I need to actually do the upload.

See https://issues.sonatype.org/browse/OSSRH-12408

The permission was granted!

Owner

bobbylight commented Nov 30, 2014

I'm closing this as 2.5.4 is now available in Maven, and all future versions should be put there as well, as soon as they are released. I'd like to personally thank @dscho and everyone else who helped out and put up with me half-assing things for so long. :)

bobbylight closed this Nov 30, 2014

dscho commented Nov 30, 2014

@bobbylight thank you so much for your efforts! And thank you for this lovely library which is put to excellent use in ImageJ, it is an invaluable help, and I am glad if I was able to contribute a little bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment