warcbase icon indicating copy to clipboard operation
warcbase copied to clipboard

Should we periodically release pre-built binaries/jars?

Open ibnesayeed opened this issue 9 years ago • 12 comments

Currently, in order to use warcbase, users need to clone the repo and build using maven. This requires users to have JDK and Maven installed on their machines. Should we consider tagged pre-built releases after remarkable changes?

ibnesayeed avatar Jul 22 '16 21:07 ibnesayeed

And publish it to Maven Central: http://www.sonatype.org/nexus/2015/01/08/deploy-to-maven-central-repository/

can I help you on this?

dportabella avatar Sep 20 '16 07:09 dportabella

Is it ok if I fork the project on github, I change version from 0.1.0-SNAPSHOT to 0.1.0a, I change the group name from org.warcbase to com.github.dportabella, and then I publish it to maven central? Or could you please release it yourselves?

dportabella avatar Oct 19 '16 08:10 dportabella

No, please don't do that. I'll look into pushing artifacts onto Maven central. In the meantime, you can always publish Maven artifacts locally with mvn install.

lintool avatar Oct 19 '16 10:10 lintool

I already use mvn install locally, but it's a problem for the other members of the team which are not experts in Java/maven, and to setup our continuous integration tool. Ok, I'll wait.

dportabella avatar Oct 19 '16 10:10 dportabella

I see - well, if it's a blocker then by all means publish your own version to Maven central. I'm a bit swamped these days (as well as @ianmilligan1) and don't want to hold up progress, if others are starting to adopt Warcbase... :)

Thanks for all your feedback, and we'll try to get to it as soon as we can...

lintool avatar Oct 19 '16 10:10 lintool

I see that you use these two other repositories: https://repository.cloudera.com/artifactory/cloudera-repos/ http://builds.archive.org:8080/maven2

for instance, warcbase-core depends on openwayback-core:2.0.0.BETA.2, which depends on com.sleepycat:je:4.1.6. this last artifact is only available on the uncommon repository: http://builds.archive.org:8080/maven2.

Is there a reason to use this specific 2.0.0.BETA.2 version of openwayback-core?. There 2.0.0 version already exists (and also 2.3.1): http://mvnrepository.com/artifact/org.netpreserve.openwayback/openwayback-core

dportabella avatar Oct 19 '16 15:10 dportabella

ok, so instead of publishing your artifact and (unpublished dependencies) to maven central, I created a maven repository on my github account: https://github.com/dportabella/3rd-party-mvn-repo

for anyone who wants to use the warcbase library without building it locally, he needs to add the following to his pom.xml:

<repositories>
  <repository>
    <id>dportabella-3rd-party-mvn-repo-releases</id>
    <url>https://github.com/dportabella/3rd-party-mvn-repo/raw/master/releases/</url>
  </repository>
  <repository>
    <id>dportabella-3rd-party-mvn-repo-snapshots</id>
    <url>https://github.com/dportabella/3rd-party-mvn-repo/raw/master/snapshots/</url>
  </repository>
</repositories>

or in scala build.sbt:

resolvers += "dportabella-3rd-party-mvn-repo-releases" at "https://github.com/dportabella/3rd-party-mvn-repo/raw/master/releases/"
resolvers += "dportabella-3rd-party-mvn-repo-snapshots" at "https://github.com/dportabella/3rd-party-mvn-repo/raw/master/snapshots/"

In case you are interested, I created this repo as follows:

# info on creating a maven repository on github:  https://cemerick.com/2010/08/24/hosting-maven-repos-on-github/
# info on big files in git: https://git-lfs.github.com/

# do create a new repository on github: https://github.com/dportabella/3rd-party-mvn-repo
# with name: dportabella/3rd-party-mvn-repo
# with description: maven repository for third-party unpublished artifacts

brew install git-lfs
git lfs install

mkdir /Users/david/3rd-party-mvn-repo
mkdir /Users/david/3rd-party-mvn-repo/snapshots
mkdir /Users/david/3rd-party-mvn-repo/releases

# org.warcbase:warcbase:0.1.0-SNAPSHOT
cd /tmp/
git clone http://github.com/lintool/warcbase.git
cd warcbase
mvn -DaltDeploymentRepository=snapshot-repo::default::file:/Users/david/3rd-party-mvn-repo/snapshots deploy -DskipTests

# com.sleepycat:je:4.1.6
mkdir /tmp/sleepycat
cd /tmp/sleepycat
wget -r -np "http://builds.archive.org/maven2/com/sleepycat/"
find . -iname index.html -delete
mkdir /Users/david/3rd-party-mvn-repo/releases/com/
mv builds.archive.org/maven2/com/sleepycat /Users/david/3rd-party-mvn-repo/releases/com/

# alternative to previous com.sleepycat:je:4.1.6
cd /tmp/
wget http://builds.archive.org/maven2/com/sleepycat/je/4.1.6/je-4.1.6.jar
wget http://builds.archive.org/maven2/com/sleepycat/je/4.1.6/je-4.1.6.pom
mvn -Dmaven.repo.local=/Users/david/3rd-party-mvn-repo/releases/ install:install-file -Dfile=je-4.1.6.jar -DpomFile=je-4.1.6.pom

cd /Users/david/3rd-party-mvn-repo
git init
git remote add origin [email protected]:dportabella/3rd-party-mvn-repo.git
git lfs track "*.jar"  # it creates .gitattributes and lfs/
git add .gitattributes releases/ snapshots/
git commit -m "added unpublished org.warcbase:warcbase:0.1.0-SNAPSHOT and its unpublished dependency com.sleepycat:je:4.1.6"

git push origin master:master

# test it
cd /tmp
wget "https://github.com/dportabella/3rd-party-mvn-repo/raw/master/releases/com/sleepycat/je/4.1.6/je-4.1.6.jar"
wget "https://github.com/dportabella/3rd-party-mvn-repo/raw/master/snapshots/org/warcbase/warcbase-core/0.1.0-SNAPSHOT/warcbase-core-0.1.0-20161019.161953-1.jar"

dportabella avatar Oct 19 '16 19:10 dportabella

Just find out: another option not to load github with big files, it is to copy the maven repo on a Dropbox account. so, I moved /Users/david/3rd-party-mvn-repo to /Users/david/Dropbox/Public/3rd-party-mvn-repo (notice that it needs to be inside the Public folder).

then, I ask Dropbox to share a link for any of the files, such as /Users/david/Dropbox/Public/3rd-party-mvn-repo/releases/com/sleepycat/je/4.1.6/je-4.1.6.jar, and I get the link: https://dl.dropboxusercontent.com/u/3796323/3rd-party-mvn-repo/releases/com/sleepycat/je/4.1.6/je-4.1.6.jar

So, we can replace my two github repositories: https://github.com/dportabella/3rd-party-mvn-repo/raw/master/releases/ https://github.com/dportabella/3rd-party-mvn-repo/raw/master/snapshots/ by my dropbox ones: https://dl.dropboxusercontent.com/u/3796323/3rd-party-mvn-repo/releases/ https://dl.dropboxusercontent.com/u/3796323/3rd-party-mvn-repo/snapshots/

dportabella avatar Oct 19 '16 20:10 dportabella

Any news on publishing to maven central?

dportabella avatar May 17 '17 09:05 dportabella

My team is asking me to switch to https://github.com/helgeho/ArchiveSpark because the dependency versions of Warcbase are not yet updated (such as openwayback-core:2.0.0.BETA.2), and warcbase has no published a release to maven yet.

I would prefer to stick to warcbase.

Any news on releasing to maven and updating the dependencies?

dportabella avatar Jun 19 '17 12:06 dportabella

Hi @dportabella can you please reach out to @ianmilligan1 and myself over email? Let's move this discussion on a separate channel...

lintool avatar Jun 19 '17 12:06 lintool

Sure.

dportabella avatar Jun 19 '17 12:06 dportabella