First off, thank you for considering contributing to images.
If your contribution is not straightforward, please first discuss the change you wish to make by creating a new issue before making the change.
Before reporting an issue on the issue tracker, please check that it has not already been reported by searching for some related keywords.
Try to do one pull request per change. All tests must pass and new code must be covered by tests.
Update the changes you have made in CHANGELOG file under the Unreleased section.
Add the changes of your pull request to one of the following subsections, depending on the types of changes defined by Keep a changelog:
Added
for new features.Changed
for changes in existing functionality.Deprecated
for soon-to-be removed features.Removed
for now removed features.Fixed
for any bug fixes.Security
in case of vulnerabilities.
If the required subsection does not exist yet under Unreleased, create it!
In order to build and test the project you'll need the following installed:
- Java SDK 17 or above
- Docker Compose
To run the entire project prior to exercising the API endpoints, run the following:
docker-compose up --build
Once the containers are up and running, you can exercise the API endpoints. See the guide for more details.
This project is a multi-project Gradle build.
In order to successfully run all the tests (unit and integration), you will need to have the database container running. To start just the database container, run the following:
docker-compose up -d db
To build and test everything from the root directory, run the following:
./gradlew clean build
To build and test a specific project, run the following:
./gradlew :api:clean :api:build
or
./gradlew :worker:clean :worker:build
If you just want to compile the project without running tests, run the following:
./gradlew clean build -x test
docker ps -a
In some instances, you may need to "clean" exited containers if you run into issues running docker-compose
.
To do so, run the following:
docker system prune -f