Need assistance with finalizing a release

14 views
Skip to first unread message

Kevin Sutter

unread,
Aug 27, 2017, 7:56:40 PM8/27/17
to Eclipse MicroProfile, Ondrej Mihályi
Ondro (or anybody else that can help me),
I've been running the release scripts for Emily for both Config and Fault Tolerance until she gets a Mac...  :-)

I've been trying to use the same mechanisms to finish up the MP 1.1.0 release, but I've been hitting some hiccups.  I'm trying to follow similar steps as documented here...
https://wiki.eclipse.org/MicroProfile/Config/ConfigRelease

I've done Step 1 with preparing the release.  RELEASE_VERSION set to 1.1.0 and DEV_VERSION set to 1.2.0-SNAPSHOT.  This worked just fine.  And, I have the 1.1.0 Tag (and Release) created.

The next step mentions some Jenkins steps.  I have not used Jenkins with Eclipse yet.  I can view the other Jenkins jobs, but I can't seem to create any.  I haven't figured out a way to get a Jenkins id, so I can't login.  I've tried my Eclipse id, but no luck.  I tried to go to the Jenkins main site and request an id, but I never got an email.  So, any pointers on this first step?

I'm trying to figure out how much of the Release creation is automated and how much is manual.  Does the Jenkins job do the Eclipse Release process?  Or, is all of that a manual process?  You'll see that I have a Draft of the 1.1.0 Release created just to house the spec pdf.  But, I don't have the source and binary zip files like the other releases.

I have not tried the deploy_to_maven.sh yet since I wanted to complete the previous steps first.

And, I'm a little confused by the branch_1.1.0 branch that was created for me.  I can see the steps documented for merging this into master so that it will be prepped for the 1.2.0-SNAPSHOT efforts.  But, I would have expected branch_1.1.0 to match up with the 1.1.0 tag.  Other than the pom.xml updates for the 1.2.0-SNAPSHOT updates, it does seem to match the 1.1.0 Tag.  After the merge process, should this branch be left as-is to match up with the 1.1.0 Tag?

I think that covers my questions at this point.  I will update the generic process that Emily primed at , to make it easier for the next component to accomplish these steps.

Thanks, Ondro, for all of these scripts and write-ups!  I just need a little help to get me over these hurdles.

(BTW, I know that we need to do the RC-type releases first.  All of the other components are doing this as move towards MP 1.2.  I also plan to do that for MP 1.2.  But, since we have announced 1.1, I just need to get this cleaned up and primed to maven.  Thanks for your help!)

--  Kevin

John D. Ament

unread,
Aug 28, 2017, 2:54:57 AM8/28/17
to Eclipse MicroProfile, ondrej....@gmail.com
Kevin,

To login to https://ci.eclipse.org/microprofile/ its the email address associated to your committer account, and your eclipse password.

I've just now setup two jobs for the BOM, snapshots and the staging release.  I would recommend we create an RC first, to test things out.

To cut a release of the bom, I think we're going to want to duplicate https://github.com/eclipse/microprofile-config/blob/master/perform_release/deploy_to_maven_central.sh in this repo, changing line 56 to something like 
mvn --batch-mode -DaltDeploymentRepository="$TARGET_MAVEN_REPO" --projects . -Pgpg-sign clean deploy


John

Ondrej Mihályi

unread,
Aug 28, 2017, 4:13:02 AM8/28/17
to John D. Ament, Eclipse MicroProfile
Kevin,

John is right, the Eclipse credentials should work with our Jenkins CI. For everything provided by Eclipse I use a single login. 

Thanks, John, for creating the new Jenkins jobs. They look fine to me. The Jenkins jobs are not necessary for releasing a final version, because we only use them to deploy snapshot and non-final artifacts to Eclipse Maven. But it's still good to have them to avoid deploying temporary (non-final) artifacts to Central and also because there's no way yet to automated deployment to Central.

To answer the other questions, see comments in the text:

I'm trying to figure out how much of the Release creation is automated and how much is manual.  Does the Jenkins job do the Eclipse Release process?  

The following steps are part of our release process:
 - creating a tag in the source repository
       - manual, but scripted (if you can run the script locally :( )
- deploying artifacts (for non-final versions) to Eclipse Maven repository
       - automated by a Jenkins job
- publishing release info in github (like this)
       - new release is usually created automatically by github when a new tag is pushed
       - manually add more info, like upload the spec document, provide a link to javadoc (if available), info about maven coordinates
- deploying final artifact to Maven Central
       - manual, but scripted (requires Sonatype account and a personal GPG key)
       - other manual steps required by Sonatype Maven repository to review and approve deployed artifacts

So there are still many manual steps, therefore it's necessary to document them in the wiki. Some steps are semi-automated (a script is provided in the source repo to run locally), some are completely manual (require actions via browser, like upload files or write some text for a release in github).


And, I'm a little confused by the branch_1.1.0 branch that was created for me.  

In short, only the TAG is important and should be pushed. The branch is temporary to do the changes outside of the master branch and merge them at the end. I personally don't push the branch to github, only push the tag. I wrote the script to be reentrant - you can run it several times if you don't push to github, so you can fix any problems and restart the script. And even if you do push, you should be fine to delete the tag (and branch) in github and restart the script.

The branch isn't in sync with the tag by design. It's always one commit forward to the next snapshot version and prepared to be merged to the master branch, which should always have a snapshot version. The branch is designed to be temporary and should be deleted after a successful release. 

That's it. Thanks for doing this, Kevin.

--Ondro

John D. Ament

unread,
Aug 28, 2017, 9:13:25 AM8/28/17
to Eclipse MicroProfile
TBH, I'm kind of surprised that Eclipse doesn't have syncing to maven central.  I'm assuming we checked with them?

Kevin Sutter

unread,
Aug 28, 2017, 9:26:37 AM8/28/17
to Eclipse MicroProfile, john.d...@gmail.com, Ondrej Mihályi
John and Ondro,
Thanks for the replies.  Not sure what happened last night, but this morning, my Eclipse id is working just fine.  I did just change my passwords yesterday evening before starting this activity, so maybe it just wasn't sync'd up yet.  In any case, today I can log in with my Eclipse credentials and things are looking good.

John, thanks for creating the initial Jenkins jobs for me.  Newbie question here, but I don't see a "copy" of an existing job.  But, it does look like you did copy an existing job since the description for BOM still references the Config project...  Did you create these from scratch or did you copy them?

I'll follow through on the rest of the steps and guidance that Ondro provided and see if I run into additional questions.

Thanks again,
Kevin

John D. Ament

unread,
Aug 28, 2017, 9:34:38 AM8/28/17
to Eclipse MicroProfile
Kevin,

You can create a job by copying https://ci.eclipse.org/microprofile/view/all/newJob - at the bottom you'll see a copy from option.  I copied these from the config jobs.

John

Kevin Sutter

unread,
Aug 28, 2017, 9:44:33 AM8/28/17
to Eclipse MicroProfile
Thanks, John.  Got it.
Reply all
Reply to author
Forward
0 new messages