Thank you for your interest in contributing to thumbnails4j!
How to build and contribute to thumbnails4j.
- Java 8
- OS: Unix/Linux
From the root level of this repository:
./mvnw clean install -DskipTests
For all projects, run from project root. For single module, run from module root.
# Build
./mvnw clean install -DskipTests
For all projects, run from project root. For single module, run from module root.
./mvnw clean test
It is expected that any contribution will include unit tests. Tests must be passing in order to merge any pull request.
Our main
branch holds the latest development code for the next release. If the next release will be a minor release,
the expecation is that no breaking changes will be in main
. If a change would be breaking, we need to put it behind a
feature flag, or make it an opt-in change. We will only merge breaking PRs when we are ready to start working on the
next major.
All PRs should be created from a fork, to keep a clean set of branches on origin
.
Releases should be performed directly in main
(or a minor branch for patches), following the Publishing guide below.
We will create branches for all minor releases.
(Example, publishing 1.1.0)
- Manually deploy a snapshot from
main
to ensure that there are no issues with the deploy mechanisms. - Verify the snapshots are in https://oss.sonatype.org/content/repositories/snapshots/co/elastic/thumbnails4j/
- Create a new minor release branch, like
git checkout -b 1.1
- Push the new minor release branch to the origin, like
git push origin 1.1
- Go back to the
main
branch, likegit checkout main
- Update the
main
branch to point at the next version, likemvn versions:set -DnewVersion=1.2.0-SNAPSHOT
- Verify your local changes, commit, and push.
- Manually trigger a release from the new minor release branch (
1.1
in this example). - Even after the build goes green, artifacts may take 30 minutes or so to appear in https://repo1.maven.org/maven2/co/elastic/thumbnails4j
- In the mean time, verify the automatic (or manually deploy) snapshot builds for the new minor patch SNAPSHOT (
1.1.1-SNAPSHOT
in this example) and the new main SNAPSHOT (1.2.0-SNAPSHOT
in this example) - Once the release artifacts are available from Maven Central, create a new Github Release from the new tag and artifacts.
(Example, publish 1.0.1)
- Manually deploy a snapshot from the release branch (
1.0
in this example) to ensure that there are no issues with the deploy mechanisms. - Verify the snapshots are in https://oss.sonatype.org/content/repositories/snapshots/co/elastic/thumbnails4j/
- Manually trigger a release from the minor release branch (
1.0
in this example). - Even after the build goes green, artifacts may take 30 minutes or so to appear in https://repo1.maven.org/maven2/co/elastic/thumbnails4j
- In the mean time, verify the automatic (or manually deploy) snapshot build for the new patch SNAPSHOT (
1.0.2-SNAPSHOT
in this example) - Once the release artifacts are available from Maven Central, create a new Github Release from the new tag and artifacts.
- Elastic Enterprise Search uses thumbnails4j to generate thumbnail images for its Workplace Search product.
Are you using thumbnails4j? If so, add your usecase here!