If you'd like to add a feature or fix a bug, great! If it is a bug, just create a pull request, if it is a feature, please first create an issue for discussion.
- The project uses Gradle to allow simple building. Install Gradle (using the gradle wrapper, any version is sufficient) and add it to
PATH
- Clone the repository into a folder of your choice
- On a command line, run
./gradlew build
and wait for completion - A complete version is now available under "mealplaner/build/distributions". It contains a zipped folder and a zipped tarball
- The project uses log4j (Apache 2.0), slf4j (MIT) for logging and swingx (LGPL3) for autocompletion as well as jaxb (CDDL) for xml serialization and de-serialization.
The libraries will be downloaded into
build/libs/lib
. If you want to provide your own versions of these libraries, you need to adapt the classpath in themanifest.MF
in "Mealplaner.jar" or copy your versions into the "lib" folder.
- New code should always be accompanied by unit tests (junit 5 with Mockito and AssertJ assertions)
- New GUI-features should have also be accompanied by a smoke end-to-end test. To build the end to end tests, run
./gradlew build -Drune2etests=True
. The end to end tests use AssertJ-Swing to click through the Swing-GUI
- The project uses mostly IntelliJ defaults, a lot of them enforced by the checkstyle plugin. New contributions must not have checkstyle warnings.