Geomatys / geotoolkit

Geotoolkit.org (abridged Geotk) is a free software, Java language library for developing geospatial applications. The library can be used for desktop or server applications. Geotk is built on top of Apache SIS and is used as a laboratory for the later.
http://www.geotoolkit.org/
53 stars 28 forks source link

= Geotoolkit

Geotoolkit is an open-source library that provides tools to manipulate cartographic data:

== Project status

The project is being progressively ported to the https://sis.apache.org[Apache SIS] project. The aim is to rework functionalities to make them more performant, more stable and respectful of ISO/OGC standards. Future additions in Geotoolkit will essentially be for prototyping purpose.

== Build

Compilation requires:

Compile using mvn install command.

== Code samples

Look at link:geotk-demo-samples[] directory for code samples on various subjects, like map drawing, data extraction from file, etc.

== Versioning policy

As Geotoolkit project is now mosty a sandbox project, we've decided to move away from semantic versioning. The new versioning scheme is a https://calver.org/[calendar based versioning] of the form YY.MM.dd[-patch-number].

[WARNING]

No retro-compatibility policy is enforced anymore on the project. It means that a breaking API change can occur without any previous notice between two tags of the project.

== Java version compatibility

Any tag from 4.0 to 22.02.16 are compatible with JDK 8. Moving forward, any new release will require Java 17 as minimal requirement.

== Create a tag

Launch A Gitlab CI manually. Set TAG_VERSION parameter to the wanted version (Ex: 24-03-17).

If all works well, the CI should:

. Create a first pipeline to push a tag to the project . Once the tag is pushed, another pipeline should run with a "publish" stage performing "mvn-deploy" job, to push maven artifacts to Geomatys release repository.

[NOTE]

Gitlab only supports running pipeline on branch heads or on existing tags. If you want to create a tag on a specific commit, you have to:

. Create a temporary branch from desired commit: + [source,sh]

git branch ${TMP_BRANCH_NAME} ${TARGET_COMMIT_REF} git push ${TMP_BRANCH_NAME}:${TMP_BRANCH_NAME}

. Ask Gitlab to run a pipeline on it.