Development
This page shares information related to the development of Log4j. Content is aimed for users who want to contribute source code patches and maintainers.
|
Do you need help for setting up or configuring Log4j? Please refer to the Support page instead. |
GitHub setup
Log4j uses GitHub extensively:
- Source code repository
- Issue tracker
- Discussions
-
https://github.com/apache/logging-log4j2/tree/main/discussions
Maintainer discussions mostly take place in mailing lists. Please refer to the Support page for the complete list of communication channels.
Branching scheme
The following branching scheme is followed:
2.x-
The most recent Log4j 2 code
main-
The most recent Log4j 3 code
<sourceBranch>-site-<environment><sourceBranch>-site-<environment>-out-
Branches used to serve the staging and production websites.
out-suffixed ones are automatically populated by CI, you are not supposed to touch them. See the Logging Parent website for details. release/<version>-
Branch triggering the CI logic to start the release process
I am not a committer. How shall I submit a patch?
-
Is this a trivial fix such as code or documentation typo? Simply submit a pull request. Changelog entry is not needed and make sure
./mvnw verify sitesucceeds. -
Is this a non-trivial fix or a new feature? Pitch it in a maintainer discussion channel and ask for assistance.
I am a committer. How shall I push my changes?
-
Is it something trivial? Go ahead and push it.
-
Otherwise, submit a pull request. Make sure a changelog entry is attached and
./mvnw verify sitesucceeds.You are strongly advised to spar with another maintainer first (see maintainer discussion channels) before starting to code.
I am a PMC member. How do I make a new release?
All Maven-based Logging Services projects are parented by Logging Parent, which streamlines several project-wide processes, including making a new release. See its release instructions for projects.
I am a PMC member. How do I publish a new XML schema?
All Maven-based Logging Services projects are parented by Logging Parent, which streamlines several project-wide processes, including publishing XML schemas. See its release instructions for XML schemas.
|
Projects and XML schemas have different lifecycles! A new release of a project does not necessarily mean a new release of its XML schemas. XML schemas might have been untouched, or they might contain minor changes while the project itself contains breaking changes, etc. |