Versions Compared

Key

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

work in progress

...

Apache NetBeans maven utilities

A set of tools and plugin were made at codehaus by Milos Kleint to allow usage of Apache Maven for building Apache NetBeans mavenized platform.

The nb-repository-plugin is needed a plugin 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

Page for ip-clearance

http://incubator.apache.org/ip-clearance/netbeans-mojohaus-utilities.html

Verify distribution rights

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.

on a maven repository to make Apache NetBeans artifacts reachable using Apache Maven.

The nbm-maven-plugin allows to create Apache Netbeans nbm or Apache NetBeans application / platform using Apache NetBeans


List of artefacts you may want to release: (see diagram to have the full picture)

Apache NetBeans

org.apache.netbeans:netbeans-parent: common ancestor to all maven artefacts (mavenutilities,Apache NetBeans maven artefacts, Apache NetBeans html4j) contains mailing list and license. Need dev ml discussion prior to release as it impacts all artefacts.

Apache Netbeans Utilities

org.apache.netbeans.utilities:utilities-parent: common ancestor to mavenutilities.

org.apache.netbeans.utilities:nb-shared shared lib used by nbm-maven-plugin and nb-repository-plugin

org.apache.netbeans.utilities:nbm-maven-harness contains harness that maybe used by nbm-maven-plugin

org.apache.netbeans.utilities:nbm-maven-plugin plugin that allow usage of Apache Maven to run Apache NetBeans

org.apache.netbeans.utilities:nb-repository-plugin plugin that populate maven repository with Apache NetBeans artefacts

Apache NetBeans Archetype

Archetype referenced in Apache Netbeans.

org.apache.netbeans.archetypes:nbm-archetype archetype

org.apache.netbeans.archetypes:netbeans-platform-app-archetype

org.apache.netbeans.archetypes:nbm-suite-root

Exception not intended for release:

org.apache.netbeans.utilities:maven-netbeans-skin maven site skin to give plugin site generation a look a feel like main Apache NetBeans website. (  we use snapshot version in site generation, not intended to be released)nb-javac is missing

Releasing Apache NetBeans Maven utilities

...

Test your artefact and settings by creating a snapshot and be sure the snapshot is deployed to Maven Snapshot repository


Code Block
languagebash
themeMidnight
mvn clean install -Papache-release

...



mvn deploy


Preparing the release

This phase will tag git with your release. Don't forget to set username if your github account is different from your apache id.


Code Block
languagebash
themeMidnight
mvn release:clean

...



mvn release:prepare -

...

Dusername=<apacheid>


Staging the release

Code Block
languagebash
themeMidnight
mvn release:perform -

...

Dusername=<apacheid>


After this phase you will have staged items on apache stage nexus and in target folder you have artefacts *.sources-release.(zip | zip.asc | zip.sha512)  that you need to copy to the folder https://dist.apache.org/repos/dist/dev/netbeans.

...

You can announce new version.

Order of release

In order to populate repository with Apache NetBeans we need tooling plugin to be set.

1)org.netbeans.maven:utilities-parent depends on org.apache:apache and has to be released first as it the topmost artefacts. (it's not mandatory to release this artefact each time the childs plugins/libraries need to be released)

2)org.netbeans.maven:nb-shared depends on org.netbeans.maven:utilities-parent an is an important libraries for the final plugins. (it's not mandatory to release this artefact each time the plugins using this artefacts need to be released)

3) org.netbeans.maven:parent should be release prior to populating central repository to allow inheritence. (it's not mandatory to release this artefact each time the childs plugins/libraries need to be released)

4)org.netbeans.maven:nb-repository-plugin is to be released to propose to Apache NetBeans Users to populate their own repository

5)org.netbeans.maven:nbm-maven-harness has to be released for each released version of artefacts in central repository

6)org.netbeans.maven:nbm-maven-plugin has to be released foreach harness version

JIRA

Diagram


Gliffy Diagram
displayNameworkflow mavenutils
nameworkflow mavenutils
pagePin1

Publishing

Release

(need improvement list findings.)

get zip


History

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.

from jenkins build and extract localy (ie https://buildsgroups.apachegoogle.org/job/incubator-netbeans-r100-maven/ ) repository is generated according to a git tag to match a released version

do sign

Code Block
languagebash
themeMidnight
find . -name '*.nbm' -exec gpg --armor --output {}.asc --detach-sig {} \;
find . -name '*.xml' -exec gpg --armor --output {}.asc --detach-sig {} \;
find . -name '*.pom' -exec gpg --armor --output {}.asc --detach-sig {} \;
find . -name '*.sha1' -exec gpg --armor --output {}.asc --detach-sig {} \;
find . -name '*.md5' -exec gpg --armor --output {}.asc --detach-sig {} \;
find . -name '*.jar' -exec gpg --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.7:rc-list-profiles -DserverId=apache.snapshots.https -DnexusUrl=https://repository.apache.org | grep 'netbeans'

give the id stagingprofile 20604114d0070e is id for Apache NetBeans

populate the staging repository
Code Block
languagebash
themeMidnight
mvn org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7:deploy-staged-repository -DserverId=apache.snapshots.https -DnexusUrl=https://repository.apache.org -DstagingProfileId=20604114d0070e -DrepositoryDirectory=pathofsignedartefacts

close using web UI

com/forum/#!topic/mojohaus-dev/uw6lhFBoiqU

Code Donation

Page for ip-clearance

http://incubator.apache.org/ip-clearance/netbeans-mojohaus-utilities.html

Verify distribution rights

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.

...