When you had faced some problems or absent functionality in Exposed, feel free to search through opened issues to find a similar one. If there is no such an issue, you could try to resolve it by yourself and provide us with Pull Request (see below).
If you want to help the project and don't know how, you could start with looking for issues tagged with good-first-issue tag. Select one, assign it on you and start to work on Pull Request.
Please do not keep an issue assigned on you if you do not plan to fix it as someone else could take it.
- Fork Exposed repository. (Read more about forks in github documentation).
- Make appropriate changes in your repository copy.
- Run embedded tests by executing
./gradlew test
inside the root folder of your local copy. - Run docker tests for every supported database (see below) or skip if you will check them on TeamCity CI.
- Create a Pull Request and check the PR id.
- Open Exposed section on https://teamcity.jetbrains.com/ and filter it by your PR id.
- Check that all configurations (except Build, Deploy and Oracle, which is broken at the moment) are passed and highlighted by green after your changes.
- Submit Pull Request on review.
There are many databases, which could not be tested without running the real instances. To run tests against them, you have to install Docker on your system. Note that it requires a huge amount of free disc space to store database images.
When you have Docker installed:
- Inside the root folder run:
./gradlew mysql51Test
- to test against the latest MySQL 5.7 (with MySQL Connector/J 5.1.x),
./gradlew mysql80Test
- to test against the latest MySQL 8.0 (with MySQL Connector/J 8.0.x),
./gradlew mariadbTest
- to test against the latest MariaDB,
./gradlew sqlServerTest
- to test against the latest SQLServer 2017,
./gradlew oracleTest
- to test against the latest Oracle 18 XE.
- Await tests to finish (it could take time to download database images on the first run).
- Repeat with another database dialect if needed.
Due to github wiki limitations (and JetBrains repository restrictions) the preferred way to contribute to wiki is to:
- Clone https://github.com/Tapac/exposed-wiki repository (it's a mirror of the https://github.com/JetBrains/Exposed/wiki repository).
- Make changes and submit Pull Request.
- Changes will appear after PR review.