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 Json by following the Argo example in the source.
  • Templating engines: create a new module with a Templates implementation by following the HandlebarsTemplates example in the source.
  • Server implementations: create a new module with a Server implementation by following the Jetty example in the source.
  • Client implementations: create a new module with a Client implementation by following the OkHttp example 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 @Test annotations.
  • 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!

scarf