Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

work in progress

...

Prerequisites to publish

The org.apache.netbeans:nb-repository-plugin is needed to prepare and publish artefacts. Milos Kleint would like to donate the toolings artefact from mojohaus to Apache NetBeans (nb-repository-plugin would be part of the donation)

Discussion on mojohaus dev list.

https://groups.google.com/forum/#!topic/mojohaus-dev/uw6lhFBoiqU

Code Donation

http://incubator.apache.org/ip-clearance/ip-clearance-template.html

Steps to follow (taken from link above)

  1. IP Clearance processing must be executed either by an Officer or a Member of the ASF. If you are not an Officer or a Member, please contact your project chair who will find an appropriate volunteer. Incubator karma is also required. Please request karma from the incubator pmc if you do not have it.
  2. (Optional) Commit an outline form, filling those parts which can be (at this stage).
  3. A software grant must be provided to the ASF. This grant can either be done by the ASF Corporate CLA (via Schedule B) or the Software Grant Agreement. The completed and signed grant must be emailed to secretary@apache.org
  4. Receipt of the software grant form must be acknowledged by an Officer of the ASF by recording in the correct file (grants.txt for a License Grant or cclas.txt for a Corporate CLA). In most normal circumstances, the officer should be the ASF Secretary, who must be provided a copy of the grant or CCLA in any case (if not originally sent or Emailed to him).
  5. Note: the grant form must be acknowledged before continuing. If the source is referenced by checksum in the grant, commit the canonical tarball for the donated code into the incubator drop area (/repos/asf/incubator/donations) together with a checksum and a detached signature. This will ensure that apache has a legal record of the grant.
  6. Complete and commit the completed form.
  7. Post a message to general@incubator prefixed [IP CLEARANCE] asking for clearance to be checked. Sign off is by lazy consensus so wait at least 72 hours for a -1.
  8. Post a [RESULT] to close the thread and let the project know that the code has been cleared for import.

Modify nb-repository-plugin to hande licence and minimal pom.xml section for central

At the time writing pom is missing licence section, sources version control.

Publishing

Release

the key tool for artifacts preparation.

https://builds.apache.org/job/Netbeans/job/netbeans-TLP/job/netbeans/ should contains the release version to be published. Navigate to lastSuccessfulBuild/artifact/mavenrepository/ in the target release to check that this repository is populated.

If something went wrong, prepare patch nb-repository-plugin  and update build process https://github.com/apache/netbeans-jenkins-lib/blob/master/vars/asfMainNetBeansBuild.groovy to the version you want to use  "def repopluginversion="1.7-SNAPSHOT".

Publishing

Release

(need improvement list findings.)

You shall have a PGP Key,.

Verify your access to repository https://repository.apache.org/ (as commiter it should be automatic)

The release process is using Apache Maven. You need to have a settings.xml configured as follow https://www.apache.org/dev/publishing-maven-artifacts.html

get zip

from jenkins build and extract localy (ie https://builds.apache.org/job/Netbeans/job/netbeans-TLP/job/netbeans/job/release123/lastSuccessfulBuild/artifact/ ) repository is generated according to a git tag to match a released version

do sign (it may takes some time as we have an important amount of artefacts)

Code Block
languagebash
themeMidnight
export GPG_EMAIL="YOU@apache.org"
find . -name '*.nbm' -exec gpg -u $GPG_EMAIL --armor --output {}.asc --detach-sig {} \;
find . -name '*.xml' -exec gpg -u $GPG_EMAIL --armor --output {}.asc --detach-sig {} \;
find . -name '*.pom' -exec gpg -u $GPG_EMAIL --armor --output {}.asc --detach-sig {} \;
find . -name '*.sha1' -exec gpg -u $GPG_EMAIL --armor --output {}.asc --detach-sig {} \;
find . -name '*.md5' -exec gpg -u $GPG_EMAIL --armor --output {}.asc --detach-sig {} \;
find . -name '*.jar' -exec gpg -u $GPG_EMAIL --armor --output {}.asc --detach-sig {} \;

# one liner test
find . \( -name '*.nbm' -o -name '*.xml' -o -name '*.pom' -o -name '*.sha1' -o -name "*.md5" -o -name "*.jar" \) -exec gpg -u $GPG_EMAIL --armor --output {}.asc --detach-sig {} \;
 test signing
Code Block
languagebash
themeMidnight
find . -name '*.asc' -exec gpg --verify {} \;

The release process is using Apache Maven. You need to have a settings.xml configured as follow https://www.apache.org/dev/publishing-maven-artifacts.html

Optional: get the stagingprofileid
Code Block
languagebash
themeMidnight
mvn org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13:rc-list-profiles -DserverId=apache.releases.https -DnexusUrl=https://repository.apache.org | grep 'netbeans'

give the stagingprofile id: 20604114d0070e for Apache NetBeans

populate the staging repository
Code Block
languagebash
themeMidnight
mvn org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13:deploy-staged-repository -DserverId=apache.releases.https -DnexusUrl=https://repository.apache.org -DstagingProfileId=20604114d0070e -DskipStagingRepositoryClose=true -DrepositoryDirectory=<pathofsignedartefacts>


close the repository using web UI at https://repository.apache.org/

Artifacts are now in staged state, waiting to be released. To press the button you must wait a vote.

Release option

You can propose the staging repository in the main voting thread.

You can propose a standalone vote.


If the vote is ok you can press the release button and the artifacts will move to maven central.

If the vote is cancel you can delete the artifacts to save some space.

Snapshots

Apache NetBeans snapshot maven artefacts are automaticaly populated on Apache Snapshot repository after master build.

...