Re: [DISCUSS] Moving toward an initial release


"P. Taylor Goetz" <ptg...@...>
 

I created the following issue to get Sonatype Nexus setup so we can publish artifacts to maven central.


Any committers interested in having the ability to perform a release should follow those instructions. Once we get a list of usernames, I can go ahead and setup the Nexus account for the “org.janusgraph” group ID.

Thanks,

-Taylor*


On Jan 27, 2017, at 6:21 PM, Misha Brukman <mbru...@...> wrote:

Hi Taylor,

On Fri, Jan 27, 2017 at 4:38 PM, P. Taylor Goetz <ptg...@...> wrote:
I’d like to start a discussion to flesh out a list of tasks necessary to make an initial release. Having a downloadable binary release and associated maven artifacts, IMO would help in terms of expanding the community by allowing potential users “kick the tires” of JanusGraph and get and idea of what’s required to migrate off of TitanDB.

Definitely agree on this! And we've had a number of users ask for this explicitly as well.
 
From a process perspective, we should figure out how releases are planned and executed. In Apache projects, that typically falls to the Release Manager. That role typically rotates among commiters, and any committer is free to propose a release at any time. The process typically starts with a DISCUSS thread where the community discusses what features, bug fixes, etc. should to into the release, and deciding who will act as release manager for that release. Once the release is ready to be cut, the release manager builds the source release, binary release, and stages the Maven artifacts in Nexus. The next step is to start a VOTE thread to approve the release (the VOTE message contains links to all release artifacts: source/binary archives, associated checksums and signatures, and links to the Nexus staging repository. For the vote to pass, it requires a minimum of 3 positive votes, and more positive than negative votes. If the vote passes, the release artifacts are made available for download, and the Maven artifacts released from Nexus.

The Apache release policy can be found here: http://www.apache.org/legal/release-policy.html

I that a process we would like to adopt?

No strong feelings on this matter, the Apache release process sounds good to me.
 
From an operational perspective, I can think of a few things:

Any potential release managers would need a Nexus account. I already have one, so I can help facilitate the creation of the JanusGraph organization in Nexus (presumably using the “org.janusgraph” maven group ID). I would just need JIRA usernames for everyone. (You can create a JIRA account here: https://issues.sonatype.org/secure/Dashboard.jspa) I would want to do this in one fell swoop because the process requires human review and can take up to 48 hours.

We can start a GitHub issue and request that everyone posts their desired usernames there, collect them all after some period of time, and submit a single request. Do you want to own this?

Where would we host the downloads? The janusgraph.org website is in git, but I’m not sure we would want to store potentially big binaries there.

We don't need to host binaries in version control, GitHub provides binary hosting outside of version control, so it won't affect the source repo: https://github.com/blog/1547-release-your-software
 
In terms of technical issues that should be resolved for the first release, do we want to list them out in this thread, use a GitHub issue label, or something else?

I'm fine with either, but for discussion purposes, email might be easier (?).

Misha

Join {janusgraph-dev@lists.lfaidata.foundation to automatically receive all group messages.