diff --git a/.util/RELEASING.adoc b/.util/RELEASING.adoc new file mode 100644 index 000000000..42838c516 --- /dev/null +++ b/.util/RELEASING.adoc @@ -0,0 +1,133 @@ += Releasing a new Version + +Releasing a new version of NeoEMF requires several steps. +Some of them require manual changes. + +. Update Maven modules to a _Release_ version. +For instance, from `1.2.3-SNAPSHOT` to `1.2.3`. + +. Update Eclipse plugins to a _Release_ version. +For instance, from `1.2.3.qualifier` to `1.2.3`. + +. Upload artifacts to Sonatype + +. Release artifacts on oss.sonatype.org + +. Update Maven modules to the next _Snapshot_ version. +For instance, from `1.2.3` to `1.2.4-SNAPSHOT`. + +. Update Eclipse plugins to a _Snapshot_ version. +For instance, from `1.2.3.qualifier` to `1.2.3`. + +== Update Maven Modules + +Maven artifacts can be automatically update through the command line. + +WARNING: Your new version is not 'X.Y.Z'. + +[source,shell] +---- +mvn clean install -DskipTests <1> +mvn versions:set -DnewVersion='X.Y.Z' <2> +mvn clean install -DskipTests <3> +---- + +<1> Before change the version, ensure that you have installed the current version in your local repository : otherwise, you will have some issues in releasing Eclipse and Benchmarks. + +<2> Define the new version. Replace 'X.Y.Z' by the new Release version. + +<3> Install the new version in your local repository. +This will be needed to build the Eclipse plugins. + +=== Update the Eclipse Plugins Version + +[source,shell] +---- +mvn clean install -DskipTests -f plugins/eclipse <1> +---- + +<1> As for the main project, ensure that you have installed the current version in your local repository. + +Edit the `./plugins/eclipse/releng/configuration/pom.xml` file and update the `parent.version`, according to the new version. +Do not modify other vers + +.File ./plugins/eclipse/releng/configuration/pom.xml +[source,xml] +---- + + org.atlanmod.neoemf + neoemf + SET-NEW-VERSION-HERE + ../../../../ + +---- + + +[source,shell] +---- +mvn versions:set -DnewVersion='X.Y.Z' -f plugins/eclipse <1> +mvn tycho-versions:set-version -DnewVersion='X.Y.Z' -f plugins/eclipse <2> +---- + + + +* Define the new version. + +*NOTE:* If it's a SNAPSHOT, add `.qualifier` instead of `-SNAPSHOT`. + +*NOTE2:* It will remove the `parent.version` in the root `pom.xml` because it's the same of the parent. Re-set it to the current version. + +---- +mvn tycho-versions:set-version -DnewVersion='X.Y.Z' +---- + +* Update `feature.xml` in features and `category.xml` in the update-site: remove `.qualifier` for NeoEMF dependencies. + +* Install the new version in your local repository. + +=== In benchmarks project + +The procedure is the same as in the main project. + +== Publish the release in Github + +* Commit *(without push)* the modifications +* Tag the commit with name `vX.Y.Z` + += Deploy a release + +*NOTE:* Only the main project have to be deployed in Maven central ! + +OSS-RH has some http://central.sonatype.org/pages/ossrh-guide.html[requirements] to accept the release. +One of them is the signature of the artifacts: A full description is available http://central.sonatype.org/pages/working-with-pgp-signatures.html[here], describing how to create his key. + +Maven must be configured to handle signature and deployment. +The following `settings.xml` file must be filled and placed at the root of your `.m2` directory: + +[source,xml] +---- + + + + ossrh + {OSS-USERNAME} + {OSS-PASSWORD} + + + +---- + +Once is done, you can deploy your artifacts on Maven Central with the following: + +---- +mvn clean deploy -DskipTests -P deploy-artifacts +---- + +Artifacts are now staged and wait for validation and deployment on the https://oss.sonatype.org[Nexus Repo Manager] (Note that staged artifacts, are not definitive, they can be removed/cancelled): A full description of different steps is available http://central.sonatype.org/pages/releasing-the-deployment.html[here]. + +== Upgrade to a SNAPSHOT version + +Once you have deployed yor artifacts, to avoid overwritten your release, you must upgrade your project in a SNAPSHOT state. +Repeat the several steps described in the <> section by adding `-SNAPSHOT` or `.qualifier`. + +Once is done, you can now commit and push the changes in GitHub. \ No newline at end of file diff --git a/.util/RELEASING.md b/.util/RELEASING.md deleted file mode 100644 index 80bff6a11..000000000 --- a/.util/RELEASING.md +++ /dev/null @@ -1,97 +0,0 @@ -# Make a release to `X.Y.Z` - -## Upgrade to a RELEASE version - -### In the main project -- Before change the version, ensure that you have installed the current version in your local repository : otherwise, you will have some issues in releasing Eclipse and Benchmarks. -``` -mvn clean install -DskipTests -``` - -- Define the new version. -``` -mvn versions:set -DnewVersion='X.Y.Z' -``` - -- (Un)Comment the timestamp in `maven-bundle-plugin` at `Bundle-Version`, configured with `.${maven.build.timestamp}`. - -- Install the new version in your local repository. -``` -mvn clean install -DskipTests -``` - -### In Eclipse project - -- As previously, ensure that you have installed the current version in your local repository. -``` -mvn clean install -DskipTests -``` - -- Update the `parent.version` in the root `pom.xml` according to the new version, as previously set, but not others. - -- Define the new version. - - __NOTE:__ If it's a SNAPSHOT, add `.qualifier` instead of `-SNAPSHOT`. - - __NOTE2:__ It will remove the `parent.version` in the root `pom.xml` because it's the same of the parent. Re-set it to the current version. - -``` -mvn tycho-versions:set-version -DnewVersion='X.Y.Z' -``` - -- Update `feature.xml` in features and `category.xml` in the update-site: remove `.qualifier` for NeoEMF dependencies. - -- Install the new version in your local repository. -``` -mvn clean install -DskipTests -``` - -### In benchmarks project - -The procedure is the same as in the main project. - -## Publish the release in Github - -- Commit __(without push)__ the modifications -- Tag the commit with name `vX.Y.Z` - -# Deploy a release - -__NOTE:__ Only the main project have to be deployed in Maven central ! - -OSS-RH has some [requirements][ossrh-guide] to accept the release. -One of them is the signature of the artifacts: A full description is available [here][oss-signing], describing how to create his key. - -Maven must be configured to handle signature and deployment. -The following `settings.xml` file must be filled and placed at the root of your `.m2` directory: - -```xml - - - - ossrh - {OSS-USERNAME} - {OSS-PASSWORD} - - - -``` - -Once is done, you can deploy your artifacts on Maven Central with the following: -``` -mvn clean deploy -DskipTests -P deploy-artifacts -``` - -Artifacts are now staged and wait for validation and deployment on the [Nexus Repo Manager][oss-sonartype] (Note that staged artifacts, are not definitive, they can be removed/cancelled): A full description of different steps is available [here][oss-sonartype-release]. - -# Upgrade to a SNAPSHOT version - -Once you have deployed yor artifacts, to avoid overwritten your release, you must upgrade your project in a SNAPSHOT state. -Repeat the several steps described in the [Upgrade to a RELEASE version](#upgrade-to-a-release-version) section by adding `-SNAPSHOT` or `.qualifier`. - -Once is done, you can now commit and push the changes in GitHub. - -[ossrh-guide]: http://central.sonatype.org/pages/ossrh-guide.html -[oss-sonartype]: https://oss.sonatype.org -[oss-signing]: http://central.sonatype.org/pages/working-with-pgp-signatures.html -[oss-sonartype-release]: http://central.sonatype.org/pages/releasing-the-deployment.html diff --git a/neoemf-core/pom.xml b/neoemf-core/pom.xml index 34fea3c71..4cc2d6635 100644 --- a/neoemf-core/pom.xml +++ b/neoemf-core/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf - 2.1.0-SNAPSHOT + 2.1.0 neoemf-core diff --git a/neoemf-data/berkeleydb/pom.xml b/neoemf-data/berkeleydb/pom.xml index b748ae7a2..25fa6bf02 100644 --- a/neoemf-data/berkeleydb/pom.xml +++ b/neoemf-data/berkeleydb/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf-data - 2.1.0-SNAPSHOT + 2.1.0 neoemf-data-berkeleydb diff --git a/neoemf-data/blueprints/core/pom.xml b/neoemf-data/blueprints/core/pom.xml index 0aaecb6bf..e6e883923 100644 --- a/neoemf-data/blueprints/core/pom.xml +++ b/neoemf-data/blueprints/core/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf-data-blueprints - 2.1.0-SNAPSHOT + 2.1.0 neoemf-data-blueprints-core diff --git a/neoemf-data/blueprints/neo4j/pom.xml b/neoemf-data/blueprints/neo4j/pom.xml index ba214588c..8d271d3d1 100644 --- a/neoemf-data/blueprints/neo4j/pom.xml +++ b/neoemf-data/blueprints/neo4j/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf-data-blueprints - 2.1.0-SNAPSHOT + 2.1.0 neoemf-data-blueprints-neo4j diff --git a/neoemf-data/blueprints/pom.xml b/neoemf-data/blueprints/pom.xml index 02507fae7..d88a03b99 100644 --- a/neoemf-data/blueprints/pom.xml +++ b/neoemf-data/blueprints/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf-data - 2.1.0-SNAPSHOT + 2.1.0 neoemf-data-blueprints diff --git a/neoemf-data/hbase/pom.xml b/neoemf-data/hbase/pom.xml index c1f7e9ee9..623bd2d2c 100644 --- a/neoemf-data/hbase/pom.xml +++ b/neoemf-data/hbase/pom.xml @@ -6,7 +6,7 @@ org.atlanmod.neoemf neoemf-data - 2.1.0-SNAPSHOT + 2.1.0 neoemf-data-hbase diff --git a/neoemf-data/mapdb/pom.xml b/neoemf-data/mapdb/pom.xml index 3d15e0e12..704503145 100644 --- a/neoemf-data/mapdb/pom.xml +++ b/neoemf-data/mapdb/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf-data - 2.1.0-SNAPSHOT + 2.1.0 neoemf-data-mapdb diff --git a/neoemf-data/mongodb/pom.xml b/neoemf-data/mongodb/pom.xml index e77efc173..4b33cb60e 100644 --- a/neoemf-data/mongodb/pom.xml +++ b/neoemf-data/mongodb/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf-data - 2.1.0-SNAPSHOT + 2.1.0 neoemf-data-mongodb diff --git a/neoemf-data/pom.xml b/neoemf-data/pom.xml index d6b01fec7..1384ec887 100644 --- a/neoemf-data/pom.xml +++ b/neoemf-data/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf - 2.1.0-SNAPSHOT + 2.1.0 neoemf-data diff --git a/neoemf-io/pom.xml b/neoemf-io/pom.xml index a2a7dd41a..2b55f6cde 100644 --- a/neoemf-io/pom.xml +++ b/neoemf-io/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf - 2.1.0-SNAPSHOT + 2.1.0 neoemf-io diff --git a/neoemf-tests/pom.xml b/neoemf-tests/pom.xml index 55f797a01..4085fccdc 100644 --- a/neoemf-tests/pom.xml +++ b/neoemf-tests/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf - 2.1.0-SNAPSHOT + 2.1.0 neoemf-tests diff --git a/neoemf-utils/p2/pom.xml b/neoemf-utils/p2/pom.xml index 3f77f5692..9a1fe0f68 100644 --- a/neoemf-utils/p2/pom.xml +++ b/neoemf-utils/p2/pom.xml @@ -6,7 +6,7 @@ org.atlanmod.neoemf neoemf - 2.1.0-SNAPSHOT + 2.1.0 ../../pom.xml diff --git a/neoemf-utils/pom.xml b/neoemf-utils/pom.xml index 3e1424947..2756a7bc4 100644 --- a/neoemf-utils/pom.xml +++ b/neoemf-utils/pom.xml @@ -5,7 +5,7 @@ org.atlanmod.neoemf neoemf - 2.1.0-SNAPSHOT + 2.1.0 neoemf-utils diff --git a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.core.feature/feature.xml b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.core.feature/feature.xml index 0514f258b..02934ef78 100644 --- a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.core.feature/feature.xml +++ b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.core.feature/feature.xml @@ -2,7 +2,7 @@ + version="2.1.0"> The Core component (store logic and utils, no implementation provided) @@ -12,7 +12,7 @@ id="org.atlanmod.neoemf.core" download-size="0" install-size="0" - version="2.1.0.qualifier" + version="2.1.0" unpack="false" /> diff --git a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.berkeleydb.feature/feature.xml b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.berkeleydb.feature/feature.xml index d8fcc2ed5..a421a4c57 100644 --- a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.berkeleydb.feature/feature.xml +++ b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.berkeleydb.feature/feature.xml @@ -2,7 +2,7 @@ + version="2.1.0"> BerkeleyDB implementation of the Core component. @@ -10,13 +10,13 @@ + version="2.1.0" /> diff --git a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.blueprints.core.feature/feature.xml b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.blueprints.core.feature/feature.xml index 10a83280b..fab77e763 100644 --- a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.blueprints.core.feature/feature.xml +++ b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.blueprints.core.feature/feature.xml @@ -2,7 +2,7 @@ + version="2.1.0"> Blueprints implementation of the Core component. @@ -10,13 +10,13 @@ + version="2.1.0" /> diff --git a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.blueprints.neo4j.feature/feature.xml b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.blueprints.neo4j.feature/feature.xml index cdfba836c..d6da95f9c 100644 --- a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.blueprints.neo4j.feature/feature.xml +++ b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.blueprints.neo4j.feature/feature.xml @@ -2,7 +2,7 @@ + version="2.1.0"> Blueprints extension using Neo4j. Requires a Neo4j implementation : because we care about you, we have packaged a compatible version of Neo4j in the optional bundle "Neo4j Convenience Wrapper", made with love. @@ -10,13 +10,13 @@ + version="2.1.0" /> diff --git a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.hbase.feature/feature.xml b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.hbase.feature/feature.xml index 576bdc3f9..fcafdc993 100644 --- a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.hbase.feature/feature.xml +++ b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.hbase.feature/feature.xml @@ -2,7 +2,7 @@ + version="2.1.0"> HBase implementation of the Core component. @@ -10,13 +10,13 @@ + version="2.1.0" /> diff --git a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.mapdb.feature/feature.xml b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.mapdb.feature/feature.xml index b4df472fb..1b9d96140 100644 --- a/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.mapdb.feature/feature.xml +++ b/plugins/eclipse/features/fr.inria.atlanmod.neoemf.data.mapdb.feature/feature.xml @@ -2,7 +2,7 @@ + version="2.1.0"> MapDB implementation of the Core component. @@ -10,13 +10,13 @@ + version="2.1.0" /> diff --git a/plugins/eclipse/pom.xml b/plugins/eclipse/pom.xml index 7a351d7f9..f0a6fed3c 100644 --- a/plugins/eclipse/pom.xml +++ b/plugins/eclipse/pom.xml @@ -6,7 +6,7 @@ org.atlanmod.neoemf.eclipse org.atlanmod.neoemf.eclipse.configuration - 2.1.0-SNAPSHOT + 2.1.0 releng/configuration diff --git a/plugins/eclipse/releng/configuration/pom.xml b/plugins/eclipse/releng/configuration/pom.xml index d7949b8d9..1737dec66 100644 --- a/plugins/eclipse/releng/configuration/pom.xml +++ b/plugins/eclipse/releng/configuration/pom.xml @@ -6,7 +6,7 @@ org.atlanmod.neoemf neoemf - 2.1.0-SNAPSHOT + 2.1.0 ../../../../ diff --git a/plugins/eclipse/releng/update/category.xml b/plugins/eclipse/releng/update/category.xml index 2ec845cb4..654dcc5da 100644 --- a/plugins/eclipse/releng/update/category.xml +++ b/plugins/eclipse/releng/update/category.xml @@ -1,21 +1,21 @@ - + - + - + - + - + - + diff --git a/pom.xml b/pom.xml index d58948958..79554174b 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.atlanmod.neoemf neoemf - 2.1.0-SNAPSHOT + 2.1.0 pom NeoEMF A Persistence Layer for the Eclipse Modeling Framework (EMF)