Contributing

You love MapStruct but miss a certain feature? You found a bug and want to report it, or even better, fix it yourself? That’s great! MapStruct is all open source and your help is highly appreciated.

WhatWhere
Source codehttps://github.com/mapstruct/mapstruct
Issue trackerhttps://github.com/mapstruct/mapstruct/issues
DiscussionsJoin the MapStruct GitHub Discussions
CI buildhttps://github.com/mapstruct/mapstruct/actions?query=branch%3Amaster+workflow%3ACI
This web sitehttps://github.com/mapstruct/mapstruct.org

MapStruct follows the Fork & Pull development approach. To get started just fork the MapStruct repository to your GitHub account and create a new topic branch for each change. Once you are done with your change, submit a pull request against the MapStruct repo.

When doing changes, keep the following best practices in mind:

  • Provide test cases
  • Update the reference documentation on mapstruct.org where required
  • Discuss new features you’d like to implement at the GitHub Discussions before getting started
  • Create one pull request per feature
  • Provide a meaningful history, e.g. squash intermediary commits before submitting a pull request
  • Start your commit messages with “#<issue no>”, e.g. “#123 Adding new mapping feature”
  • Have git automatically manage line endings as described here
  • Format your sources using the provided IntelliJ code style template. Eclipse users can import the Eclipse code formatter settings - it’s close enough, but configure the Save Actions to only format edited lines. If you use another IDE stick to the used style as much as possible.