Contributors Guide
Contributors' Guide
There are many ways in which you can contribute to the development of the library:
- Give us a Star on Github - you know you want to. ;)
- Using http4k to build something? Get in touch and tell everyone about it, or even just us!
- Sponsor us! The http4k team build the library out of love for software engineering and the OpenSource community, but running a project of this size is not without it’s costs. Please see below for sponsorship options to help us keep the project running.
- Get help! The http4k team have produced a reasonable amount of training materials and are available for onsite or remote consulting engagements to help companies get the most out of the library.
Pull requests#
If there are any message format library or templating engine bindings that you’d like to see supported, then please feel free to suggest them or provide a PR.
- JSON formats: create a new module with an implementation of
Jsonby following theArgoexample in the source. - Templating engines: create a new module with a
Templatesimplementation by following theHandlebarsTemplatesexample in the source. - Server implementations: create a new module with a
Serverimplementation by following theJettyexample in the source. - Client implementations: create a new module with a
Clientimplementation by following theOkHttpexample in the source.
General guidelines#
- Questions can be directed towards the Slack #http4k channel, or on Twitter @http4k
- For issues, please describe giving as much detail as you can - including version and steps to recreate
- At the moment, PRs should be sent to the master branch - this might change in future so check back everytime!
- Source/binary compatibility always must be kept as far as possible - this is a must for minor and patch versions
- PR changes should have test coverage. Note that we use Junit 5 as a test engine - which uses new
@Testannotations. - All the PRs must pass the GitHub CI jobs before merging them
https://github.com/http4k/http4k
Testing with default settings is required when push changes. Note that we currently build against Java 21 (jEnv is good for managing multiple java versions):
./gradlew check
Appreciation#
We love our community! See the http4k site for details!
