Requirements:
As usual with Maven, you compile, build and test with:
mvn verify2 artifacts are built:
jawk-<VERSION>.jar, to be used in downstream projects requiring Jawkjawk-<VERSION>-standalone.jar, an executable JAR that behaves likeawkorgawk
The documentation is generated with Maven too:
mvn siteFor more information about Maven-generated documentation, visit Maven Site plugin and Sentry Maven Skin.
Microbenchmarks use JMH and are built only when the benchmark profile is enabled:
mvn -Pbenchmark -DskipTests package
java -jar target/jawk-<VERSION>-benchmarks.jar JRTCompare2BenchmarkRelease benchmark data is published by the Publish Benchmarks GitHub Action. It builds the Maven site, writes JMH
JSON files under target/site/benchmarks/releases/<VERSION>/, updates target/site/benchmarks/index.json, and
deploys the complete site through GitHub Pages.
Please follow this workflow to contribute to this project:
- Create an issue describing either the problem you're trying to fix, or the feature you would like to add.
- Wait for a feedback from the team, to validate your suggested change will be approved by the maintainer.
- Fork the repository.
- Create a
feature/issue-<NUMBER>-short-descriptionfrom themainbranch. - Make sure the project builds with your changes and passes the unit tests!
- Commit with a clear and concise messages:
Fix issue #NUMBER: .... - Create Pull Request from your branch to the main branch of this repository.
- Wait for the feedback and review!
In this repository, we prefer merging over rebasing, and tabs over spaces. Don't fight against it.
The release to Maven Central must be performed using the Release to Maven Central GitHub Action, which relies on the shared Maven Central Release.
The original code from Danny Daglas was under the Boost Software License. The current code is now mainly under LGPL, which means it's actually GPLv3, but can be used in non-GPL projects.
Important:
- The
Jawk.jarexecutable artifact is released under strict GPLv3. - The
jawkMaven artifact is released under LGPL and can be used in non-GPL projects.
Each file includes a license header. Make sure to always include this header.
To update all Java files to include the header, simply use the command below:
mvn license:update-file-header