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 <[email protected]>
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.