This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/sis-site.git
The following commit(s) were added to refs/heads/main by this push: new 81a6e086 Partial upgrade of release instruction to the new gradle build system. 81a6e086 is described below commit 81a6e0864ef5f318db99ec905523d46c861259d0 Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Tue Oct 3 18:22:46 2023 +0200 Partial upgrade of release instruction to the new gradle build system. --- content/_index.md | 2 +- content/downloads.md | 4 ++- content/release-management.md | 72 +++++++++++++++++++++++++++---------------- content/source.md | 8 ++--- 4 files changed, 54 insertions(+), 32 deletions(-) diff --git a/content/_index.md b/content/_index.md index 0fe3a1b5..08d5a30e 100644 --- a/content/_index.md +++ b/content/_index.md @@ -29,7 +29,7 @@ The API and the data encodings follow [international standards](standards.html) * Feature formats: * Read [Moving Feature Comma Separated Values (CSV) encoding][MF_CSV]. * Read [Moving Feature netCDF encoding][netCDF_MF]. - * Read {{% GPX %}} (a {{% XML %}} schema for {{% GPS %}} data). + * Read/Write {{% GPX %}} (a {{% XML %}} schema for {{% GPS %}} data). * Read [features from {{% SQL %}} spatial databases][SF_SQL] by analysing the database schema. * Geographic metadata (ISO 19115): * Read ISO 19115 metadata from all above-listed raster and feature formats. diff --git a/content/downloads.md b/content/downloads.md index 1b3aee8e..d517cdf7 100644 --- a/content/downloads.md +++ b/content/downloads.md @@ -62,11 +62,13 @@ from the SIS project root: {{< highlight bash >}} cd apache-sis-{{% version %}} -gradle test # Theoretically optional, seems sometime necessary. gradle assemble gradle publishToMavenLocal # If use with Maven projects is desired. {{< / highlight >}} +JAR files will be in the `endorsed/build/libs/` sub-directory. +An Open/LibreOffice add-in will be in `endorsed/build/bundle/`. + The JavaFX application is excluded by default because it depends on the [JavaFX platform][JavaFX] which is distributed under GPL license (note that the SIS module stay under Apache 2 licence). diff --git a/content/release-management.md b/content/release-management.md index 76d1d8b6..fefc147a 100644 --- a/content/release-management.md +++ b/content/release-management.md @@ -188,15 +188,15 @@ Replace the `$OLD_VERSION` number by `$NEW_VERSION` in the values of following p * Review the `README.md` and `NOTICE` files in root directory. * Review the `README` file in `optional/src/org.apache.sis.gui/bundle/`. -Commit and merge with other branches up to master. +Commit and merge with other branches up to main branch. {{< highlight bash >}} git add --update git commit --message="Set version number and the EPSG geodetic dataset URL to expected values after release." -# merge with master +# merge with main {{< / highlight >}} -Before to start the release process, we need to test more extensively the master. +Before to start the release process, we need to test more extensively the main branch. The tests described below often reveal errors that were unnoticed in daily builds. It is better to detect and fix them before to create the release branch. First, ensure that a PostgreSQL server is running and listening to the default port on local host @@ -206,8 +206,7 @@ Then execute the following commands and fix as much warnings as practical: {{< highlight bash >}} systemctl start postgresql.service # Optional — exact command depends on Linux distribution. -mvn clean install --define org.apache.sis.test.extensive=true -mvn javadoc:aggregate --activate-profiles javafx +gradle test --system-prop org.apache.sis.test.extensive=true {{< / highlight >}} If the `SIS_DATA` environment variable was set during above build, unset it a try again. @@ -218,9 +217,10 @@ the variable value in the shell performing the release. {{< highlight bash >}} unset SIS_DATA echo $SIS_DATA -mvn test +gradle cleanTest test {{< / highlight >}} + ## Update the list of supported CRS {#update-crs-list} The following steps regenerate @@ -265,6 +265,7 @@ Those steps are also useful as additional tests, since failure to generate those git commit --message="Update the list CRS and operation methods supported by Apache SIS $NEW_VERSION." {{< / highlight >}} + ## Prepare release notes {#release-notes} We update JIRA soon because doing so is sometimes a reminder of uncompleted tasks in source code. @@ -290,6 +291,7 @@ git add content/release-notes/$NEW_VERSION.md git commit --message "Release notes for Apache SIS $NEW_VERSION." {{< / highlight >}} + # Create release branch {#branch} Execute the following commands. @@ -297,44 +299,62 @@ It is okay to checkout the branch in a separated directory if desired. The `SIS_RC_DIR` environment variable will specify that directory. {{< highlight bash >}} -cd ../master +cd ../main git checkout -b $NEW_VERSION-RC export SIS_RC_DIR=`pwd` {{< / highlight >}} -Remove the files and modules that are not yet ready for a release. -This may require removing `<module>` elements in the parent `pom.xml` file. +Remove the files and modules that are not intended to be released. +Edit at least the files listed below for removing all occurrences of "incubator" +(the search is easier to do after the removal of "incubator" directory): + +* `endorsed/src/org.apache.sis.util/main/module-info.java` +* `netbeans-project/nbproject/project.properties` +* `netbeans-project/nbproject/project.xml` +* `settings.gradle.kts` +* `README.md` {{< highlight bash >}} git rm .asf.yaml -git rm -r core/sis-cql -git rm -r storage/sis-shapefile -git rm -r application/sis-webapp +git rm -r incubator +# Edit above-listed files before to continue. git add --update # for the removal of <module> elements in pom.xml files. git commit --message="Remove the modules to be excluded from $NEW_VERSION release." {{< / highlight >}} -Open the root `pom.xml` file in an editor and perform the following changes: +Update SIS version numbers by removing all occurrences of the `-SNAPSHOT` suffix +at least in the following files: -* Remove the whole `<pluginRepositories>` block (including comment), - since it should not be needed for releases (and is actually not allowed). +* `parent/pom.xml` +* `optional/build.gradle.kts` +* `endorsed/build.gradle.kts` +* `endorsed/src/org.apache.sis.openoffice/bundle/README.md` +* `endorsed/src/org.apache.sis.util/main/org/apache/sis/util/Version.java` +* `endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/factory/sql/epsg/README.md` -We need to update the SIS version numbers not only in the `pom.xml` files, but also in a few Java files. -The following command performs the replacement using Ant. +Then commit: {{< highlight bash >}} -ant -buildfile core/sis-build-helper/src/main/ant/prepare-release.xml branch -Dsis.version=$NEW_VERSION -git rm -r core/sis-build-helper/src/main/ant +git add --update +gradle test +git commit --message="Set version number to $NEW_VERSION." {{< / highlight >}} -Validate with `git diff --staged`, search `SNAPSHOT` in the whole source directory in case we missed some, then commit: +## Generate Javadoc {#javadoc} + +Execute the following commands. The first one (`gradle javadoc`) will fail. +This is a known problem with the current build. +Open `javadoc.options` file as below (`gedit` can be replaced by another editor), +and move all `-classpath` content to `--module-path`. +Then launch Javadoc from the command-line: {{< highlight bash >}} -git add --update -mvn clean install -git commit --message="Set version number to $NEW_VERSION." +gradle javadoc +gedit endorsed/build/tmp/javadoc/javadoc.options +javadoc @endorsed/build/tmp/javadoc/javadoc.options {{< / highlight >}} + ## Test branch extensively {#test-branch} Build the project with the `apache-release` profile enabled. @@ -626,7 +646,7 @@ unzip apache-sis-$NEW_VERSION-bin.zip cd apache-sis-$NEW_VERSION unset SIS_DATA bin/sis about --verbose -bin/sis crs https://github.com/apache/sis/raw/master/core/sis-referencing/src/test/resources/org/apache/sis/referencing/crs/ProjectedCRS.xml --format WKT +bin/sis crs https://github.com/apache/sis/raw/main/core/sis-referencing/src/test/resources/org/apache/sis/referencing/crs/ProjectedCRS.xml --format WKT {{< / highlight >}} # Prepare OpenOffice add-in {#openoffice} @@ -773,9 +793,9 @@ svn delete https://dist.apache.org/repos/dist/release/sis/$OLD_VERSION \ --message "Archive SIS-$OLD_VERSION after release of SIS-$NEW_VERSION." {{< / highlight >}} -# Update master for the next development cycle {#next-release} +# Update main branch for the next development cycle {#next-release} -On the `master` branch: +On the `main` branch: * Update the version numbers in all `pom.xml` files. * Edit the value of the `MAJOR_VERSION` or `MINOR_VERSION` constant in the diff --git a/content/source.md b/content/source.md index c7b768c0..07f511ea 100644 --- a/content/source.md +++ b/content/source.md @@ -56,16 +56,16 @@ Then, Apache {{% SIS %}} can be built as below: {{< highlight bash >}} cd sis -gradle test # Theoretically optional, seems sometime necessary. gradle assemble gradle publishToMavenLocal # If use with Maven projects is desired. {{< / highlight >}} Outputs will be located in the following sub-directories: -* `endorsed/build/libs/` for the JAR files of the core library and its dependencies. -* `optional/build/libs/` for the JAR files of modules requiring optional dependencies. -* `incubator/build/libs/` for the JAR files of modules that are not yet part of releases. +* `endorsed/build/libs/` for the JAR files of the core library and its dependencies. +* `optional/build/libs/` for the JAR files of modules requiring optional dependencies. +* `incubator/build/libs/` for the JAR files of modules that are not yet part of releases. +* `endorsed/build/bundle/` for the OXT add-in for Open/LibreOffice Calc. * `optional/build/bundle/` for the JavaFX application if optional dependencies were specified. The remaining of this page describes optional configurations for more advanced developments.