Contribution guidelines
We are really glad you are seeing this and are considering contributing to the development of the Negotiator. We welcome any pull requests that help us grow as open-source software!
Development Environment
Our core developers use the IntelliJ IDEA and UNIX based Operating systems. and can therefore be more helpful in debugging any potential problems in your local development environment.
Running the backend in development mode
Prerequisites
- Java 17
- Maven 3.9 and newer
- Docker Engine 27.0 and newer (Application will spin up a PostgreSQL databse using the testcontainers framework)
- Unallocated Ports 8081 and 5432
To run the backend in development mode, run the following command. Spring applications support hot reload with some limitations, for a detailed explanation refer to their documentation.
mvn clean spring-boot:test-run -Dspring-boot.run.profiles=dev
TIP
The Database is available at the URL visible bellow with default credentials negotiator:negotiator: jdbc:postgresql://localhost:5432/negotiator
Known problems
WSL
The current development environment setup is problematic with the WSL. Make sure your networking configuration is properly adjusted, especially when using an OIDC provider or a UI client.
Code style
For maintaining a uniform code style through the code base, please adhere to the Google Java Style. To enforce this, we have set up a GitHub action that checks the code style of any modified files using the fmt-maven-plugin. You can also set up an IntelliJ IDEA plugin google-java-format.
Commit messages
Please follow the Conventional Commits specification.
Versioning
For versioning of releases and tags please follow Semantic Versioning.
Submitting changes
Please send us a GitHub Pull Request with a clear description. We have also provided a template with a checklist to help you with providing a high-quality contribution.
Releasing
To create a release, simply go to Releases -> Draft a new release -> Choose new tag -> Generate release notes -> Publish release
Good luck and thank you! 🙇🏻♂️