Skip to content
This repository has been archived by the owner on Apr 27, 2018. It is now read-only.

Should we periodically release pre-built binaries/jars? #240

Open
ibnesayeed opened this issue Jul 22, 2016 · 12 comments
Open

Should we periodically release pre-built binaries/jars? #240

ibnesayeed opened this issue Jul 22, 2016 · 12 comments

Comments

@ibnesayeed
Copy link

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?

@dportabella
Copy link

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
Copy link

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?

@lintool
Copy link
Owner

lintool commented Oct 19, 2016

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.

@dportabella
Copy link

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.

@lintool
Copy link
Owner

lintool commented Oct 19, 2016

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...

@dportabella
Copy link

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
Copy link

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
Copy link

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
Copy link

Any news on publishing to maven central?

@dportabella
Copy link

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?

@lintool
Copy link
Owner

lintool commented Jun 19, 2017

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

@dportabella
Copy link

Sure.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants