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 78041c67 Replace "master" by "main" branch and "Maven" by "Gradle" build tools, except in release manager guides which will need much more work. This commit contains also minor typo fixes. 78041c67 is described below commit 78041c670cc0c087248a7aeefb3bce56d07df272 Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Sat Aug 19 16:17:41 2023 +0200 Replace "master" by "main" branch and "Maven" by "Gradle" build tools, except in release manager guides which will need much more work. This commit contains also minor typo fixes. --- config.toml | 2 +- content/build.md | 120 +++++------------------------------ content/coding-conventions.md | 1 - content/developer-guide/README.txt | 7 +- content/howto/transform_envelopes.md | 2 +- content/release-notes/0.7.md | 2 +- content/release-notes/1.1.md | 2 +- content/release-notes/1.3.md | 2 +- content/source.md | 18 +++--- 9 files changed, 33 insertions(+), 123 deletions(-) diff --git a/config.toml b/config.toml index f5fb2c5e..185b88da 100644 --- a/config.toml +++ b/config.toml @@ -31,7 +31,7 @@ unsafe= true # Required for allowing <table> HTML to be rende [params] repositoryUrl = "https://github.com/apache/sis" - repositorySourceBranch = "master" + repositorySourceBranch = "main" siteRepositoryUrl = "https://github.com/apache/sis-site" siteRepositorySourceBranch = "main" diff --git a/content/build.md b/content/build.md index d91a8223..e59c67d1 100644 --- a/content/build.md +++ b/content/build.md @@ -2,32 +2,25 @@ title: Build from source --- -Apache {{% SIS %}} is built by Maven. -It requires Java 17 or higher for building, but the compilation result can be executed on Java 8 or higher. +Apache {{% SIS %}} is built by Gradle. +It requires Java 18 or higher for building, but the compilation result can be executed on Java 11 or higher. For installing the JAR files in the local Maven repository, execute the following command from the SIS project root: {{< highlight bash >}} -mvn install --define skipTests +gradle assemble publishToMavenLocal {{< / highlight >}} 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). Likewise the [EPSG geodetic dataset](epsg.html) is excluded by default for licensing reasons. -For including the JavaFX module and the use of EPSG dataset in the build: +For including the JavaFX module in the build, define the `PATH_TO_FX` environment variable +with the path to the directory containing all JavaFX JAR files. +Example on a Linux system (the path may vary): {{< highlight bash >}} -mvn install --define skipTests --activate-profiles javafx,non-free -{{< / highlight >}} - -For signing the artifacts and producing distribution files (`apache-sis-bin.zip` and `apache-sis.oxt`), -execute the following command. -Note that it requires an OpenPGP (_Open Pretty Good Privacy_) software for cryptography signatures -(more information on the [release management setup](release-management-setup.html#generate-key) page): - -{{< highlight bash >}} -mvn install --define skipTests --activate-profiles apache-release +export PATH_TO_FX=/usr/lib/jvm/openjfx {{< / highlight >}} The remaining of this page provides more advanced tips for SIS developers. @@ -36,34 +29,18 @@ The remaining of this page provides more advanced tips for SIS developers. # Distribution file {#dist} -The distribution archive is a file with the `.zip` extension containing most SIS modules except `sis-webapp` -(because Web applications use another packaging) together with their dependencies. -However for users convenience, we provide shell scripts launching the SIS command line tool or the JavaFX application. -Those shell scripts, together with other files (`README`, `LICENSE`, <i>etc.</i>) are bundled in a ZIP file created as below: - -{{< highlight bash >}} -cd application/sis-console -mvn package org.apache.sis.core:sis-build-helper:dist -{{< / highlight >}} - -This task is executed automatically if the `apache-release` profile is activated at build time. -Above command is for the cases where the developer wants the distribution file without rebuilding the whole project. -The result will be created in the `target/distribution/apache-sis-<version>.zip` file. +The distribution archive is a file with the `.zip` extension containing most SIS modules +(excluding the ones in the incubator sub-project), together with mandatory dependencies. +For users convenience, we provide shell scripts launching the SIS command line tool or the JavaFX application. +Those shell scripts, together with other files (`README`, `LICENSE`, <i>etc.</i>) are bundled in a ZIP file +created in the `optional/build/bundle/` directory. To test, uncompress in any directory and execute `apache-sis-<version>/bin/sis`. -## Known limitations {#limitations} - -The current plugin implementation has some hard-coded values, especially: +# SIS-specific Gradle plugin {#build-helper} -* The ZIP file content is copied from the `application/sis-console/src/main/artifact` directory. -* The final filename is hard-coded to `apache-sis-<version>.zip`. - -# SIS-specific Maven plugin {#build-helper} - -Apache {{% SIS %}} uses a `sis-build-helper` plugin for SIS-specific tasks and Javadoc customization. -This plugin is used automatically by `mvn install`. Consequently the remaining of this page -can be safely ignored. This page is provided only as a reference for developers wanting to -take a closer look to SIS `pom.xml` file. +Apache {{% SIS %}} uses a plugin in `buildSrc/` for SIS-specific tasks and Javadoc customization. +This plugin is used automatically by Gradle. Consequently the remaining of this page can be safely ignored. +This page is provided only as a reference for developers wanting to take a closer look to SIS build system. ## Localized resources compiler {#resources} @@ -78,70 +55,5 @@ generate the corresponding `Vocabulary*.utf` files, then look for a `Vocabulary. and contains a public static inner class named `Keys`, then the compiler will rewrite the constants declared in that inner class with the list of keys found in the `Vocabulary*.properties` files. -The resource compiler is executed at Maven build time if the `pom.xml` file contains the following declaration. Note that current -implementation looks only for resources in any package ending with the `resources` name; all other packages are ignored. - -{{< highlight xml >}} -<build> - <plugins> - <plugin> - <groupId>org.apache.sis.core</groupId> - <artifactId>sis-build-helper</artifactId> - <version>${sis.plugin.version}</version> - <executions> - <execution> - <goals> - <goal>compile-resources</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> -</build> -{{< / highlight >}} - -The resources compilation is part of the build process and does not need to be run explicitly. -However, if necessary the resources compiler can be invoked alone by the following command line -in the module containing the resources to recompile. This is sometimes useful for regenerating -the constants in the `Keys` inner class in a feaster way than building the project. - -{{< highlight bash >}} -mvn org.apache.sis.core:sis-build-helper:compile-resources -{{< / highlight >}} - -## JAR files collector {#jar-collect} - -Links or lists all JAR files (including dependencies) in the `target/binaries` directory of the parent project. -This plugin performs a work similar to the standard Maven assembly plugin work, with the following differences: - -* In multi-modules projects, this plugin does not create anything in the `target` directory of sub-modules. - Instead, this plugin groups everything in the `target/binaries` directory of the parent module. -* This plugin does not create any ZIP file. It only links or lists JAR files. - This plugin uses hard links on platforms that support them, - so execution of this plugin should be very cheap and consume few disk space. -* Dependencies already present in the `target/binaries` directory are presumed stables and - are not overwritten. Only artifacts produced by the Maven build are unconditionally overwritten. - -This plugin can be activated by the following fragment in the parent `pom.xml` file: - -{{< highlight xml >}} -<build> - <plugins> - <plugin> - <groupId>org.apache.sis.core</groupId> - <artifactId>sis-build-helper</artifactId> - <version>${sis.plugin.version}</version> - <executions> - <execution> - <goals> - <goal>collect-jars</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> -</build> -{{< / highlight >}} - [JavaFX]: https://openjfx.io/ diff --git a/content/coding-conventions.md b/content/coding-conventions.md index fc430118..f363fd16 100644 --- a/content/coding-conventions.md +++ b/content/coding-conventions.md @@ -137,7 +137,6 @@ In addition, the `sis-build-helper` modules provides the following custom javado Javadoc tag | Description -------------- | ------------------------------------------------------------------------------------------- -`@module` | Create links to the module where the class is defined, source code and Maven artifacts. `{@include}` | Include the content of a given HTML file below a `<h2>` section having the given title. `{@preformat}` | An inline taglet for pre-formatted text. The first word inside the taglet shall be one of `java`, `xml`, `sql`, `wkt`, `text`, `math` or `shell`. diff --git a/content/developer-guide/README.txt b/content/developer-guide/README.txt index 640a223d..55465678 100644 --- a/content/developer-guide/README.txt +++ b/content/developer-guide/README.txt @@ -5,9 +5,8 @@ by the `org.apache.sis.internal.book.Assembler` class in `sis-build-helper` modu Assuming the following directory structure: (current directory) -├─ master -│ └─ core -│ └─ sis-build-helper +├─ main +│ └─ buildSrc └─ site ├─ main │ └─ content @@ -16,4 +15,4 @@ Assuming the following directory structure: Then the command can be used as below on Unix systems: -java -classpath master/core/sis-build-helper/target/classes org.apache.sis.internal.book.Assembler site +java -classpath main/buildSrc/build/classes/java/main org.apache.sis.internal.book.Assembler site diff --git a/content/howto/transform_envelopes.md b/content/howto/transform_envelopes.md index 9d8cb450..084e4ac6 100644 --- a/content/howto/transform_envelopes.md +++ b/content/howto/transform_envelopes.md @@ -72,7 +72,7 @@ public class TransformEnvelopes { * @param bbox the bounding box to transform. * @param operation the coordinate operation to use for transforming corners. * @return the result of transforming the 4 corners of the provided bounding box. - * @throws TransformException if a coordinate can not be converted. + * @throws TransformException if a coordinate cannot be converted. */ private static Envelope transformCorners(Envelope bbox, CoordinateOperation operation) throws TransformException { double[] corners = { diff --git a/content/release-notes/0.7.md b/content/release-notes/0.7.md index 88c92be5..33f9231f 100644 --- a/content/release-notes/0.7.md +++ b/content/release-notes/0.7.md @@ -57,7 +57,7 @@ Not determined. ## Bug fixes {#bugs} * [[SIS-107](https://issues.apache.org/jira/browse/SIS-107)] — Hole in metadata "unmodifiable" mode -* [[SIS-111](https://issues.apache.org/jira/browse/SIS-111)] — Can not upgrade jetty-maven-plugin past 8.0.1 +* [[SIS-111](https://issues.apache.org/jira/browse/SIS-111)] — Cannot upgrade jetty-maven-plugin past 8.0.1 * [[SIS-301](https://issues.apache.org/jira/browse/SIS-301)] — Wrong elements order in RS_ and MD_Identifier * [[SIS-308](https://issues.apache.org/jira/browse/SIS-308)] — InputStream provided by StorageConnector not always at the beginning of the stream * [[SIS-309](https://issues.apache.org/jira/browse/SIS-309)] — URI in the ID element of WKT 2 wrongly taken as ID version number diff --git a/content/release-notes/1.1.md b/content/release-notes/1.1.md index dd3fe616..2f4a4ef2 100644 --- a/content/release-notes/1.1.md +++ b/content/release-notes/1.1.md @@ -62,7 +62,7 @@ This change is for avoiding a collision with a package of the same name in the ` * [[SIS-503](https://issues.apache.org/jira/browse/SIS-503)] — Naming issue in setters of DefaultReleasability * [[SIS-508](https://issues.apache.org/jira/browse/SIS-508)] — MD_Scope in place of DQ_Scope when generating old 2007 iso 19139 * [[SIS-511](https://issues.apache.org/jira/browse/SIS-511)] — build failed on AArch64, Fedora 33 -* [[SIS-512](https://issues.apache.org/jira/browse/SIS-512)] — Can't create transformation from wkt +* [[SIS-512](https://issues.apache.org/jira/browse/SIS-512)] — Cannot create transformation from wkt ## Tasks {#tasks} * [[SIS-517](https://issues.apache.org/jira/browse/SIS-517)] — Update EPSG geodetic dataset to version 9.9.1 diff --git a/content/release-notes/1.3.md b/content/release-notes/1.3.md index 944a92c0..c70b6135 100644 --- a/content/release-notes/1.3.md +++ b/content/release-notes/1.3.md @@ -11,7 +11,7 @@ title: SIS 1.3 Release notes This release contains an upgrade of the `org.apache.sis.metadata.iso.quality` package to the ISO 19157:2013 international standard. -This release contains also various bug fixes improving the stability. +This release also contains various bug fixes improving the stability. # Incompatible changes {#compatibility} diff --git a/content/source.md b/content/source.md index 4ee1537f..b34a486e 100644 --- a/content/source.md +++ b/content/source.md @@ -37,7 +37,7 @@ git clone https://gitbox.apache.org/repos/asf/sis # svn checkout https://github.com/apache/sis/trunk {{< / highlight >}} -That is all. Apache {{% SIS %}} can be built by running `mvn install` in the `sis` subdirectory. +Apache {{% SIS %}} can be built by running `gradle assemble` in the `sis` subdirectory. At this stage, the `ApacheSIS` parent directory is redundant with the `sis` subdirectory, but we recommend to create that parent directory anyway in anticipation for more subdirectories to be created later, when desired. @@ -147,7 +147,7 @@ Note that this step is likely to change after Apache {{% SIS %}} upgrade to JUni ## Running extensive tests {#tests} -A simple `mvn install` execution in the `sis` directory +A simple `gradle test` execution in the `sis` directory will build and test Apache {{% SIS %}} with the default set of JUnit tests. Some tests are skipped by default, either because they would have some effects outside the `sis` directory (for example writing in `SpatialMetadataTest` database on PostgreSQL), @@ -156,25 +156,25 @@ For enabling all tests, use the following command: {{< highlight bash >}} cd sis -mvn install -Dorg.apache.sis.test.extensive=true +gradle test --system-prop org.apache.sis.test.extensive=true {{< / highlight >}} ## Switch to development branch {#branches} -The source code repository contains `master`, `geoapi-3.1` and `geoapi-4.0` branches. -Apache {{% SIS %}} releases are created from `master`, which depends on the latest GeoAPI version +The source code repository contains `main`, `geoapi-3.1` and `geoapi-4.0` branches. +Apache {{% SIS %}} releases are created from `main`, which depends on the latest GeoAPI version released by the Open Geospatial Consortium (OGC), currently [GeoAPI 3.0.1][geoapi-stable]. -However daily developments occur on the `geoapi-4.0` branch before to be merged (indirectly) to `master`. +However daily developments occur on the `geoapi-4.0` branch before to be merged (indirectly) to `main`. Those branches exist in order to experiment early new API and technologies — since they may impact the library design — while keeping the releases compatible with officially released API. In summary: * The `geoapi-4.0` branch implements interfaces defined in GeoAPI 4.0 snapshots. * The `geoapi-3.1` branch implements interfaces defined in [GeoAPI 3.1 snapshots][geoapi-snapshot]. -* The `master` implements interfaces defined by the [GeoAPI 3.0.1 stable release][geoapi-stable]. +* The `main` implements interfaces defined by the [GeoAPI 3.0.1 stable release][geoapi-stable]. -Developments on `geoapi-4.0` branch are merged to `geoapi-3.1` branch, which is then merged to `master`. -When commits reach `master` they become unmodifiable; the `git push --force` command is not allowed on that branch. +Developments on `geoapi-4.0` branch are merged to `geoapi-3.1` branch, which is then merged to `main`. +When commits reach `main` they become unmodifiable; the `git push --force` command is not allowed on that branch. Contributors to Apache {{% SIS %}} project should switch to the current development branch before submitting patches: {{< highlight bash >}}