It's awesome that you are considering contributing to the Serilog project. As can be witnessed by the list of sinks and community projects, it is people like yourself that make the Serilog ecosystem great to use.
The following are a set of guidelines for contributing to Serilog and its related packages, which are hosted in the Serilog Organization on GitHub. We are an ever evolving community, so feel free to propose changes to this document via a pull request.
The Serilog repository is the location for enhancements and fixes to the core library. Generally we try to keep the core library lean and performant while attempting to deliver the features of a first class logging library.
If you are interested in contributing to a sink or one of the other community projects then please create a PR in the respective repository.
Serilog caters a vast set of technologies and stacks that encounter a wide range of problems. As such we need your help! This help can be in many forms such as PRs, documentation updates or testing new releases.
We keep a list of issues that are approachable for newcomers under the up-for-grabs label. Before starting work on a pull request, we suggest commenting on an existing issue or raising an issue to ensure we all work together towards a better Serilog.
Bugs are tracked via GitHub issues. Below are some notes to help create an issue. The issue template will help you on the way
- Create an issue via the issues list.
- List the version of Serilog that is affected
- List the target framework and operating system
- If possible, provide a sample that reproduces the issue.
Feature as also tracked via GitHub issues. Below are some notes to help create an issue. The issue template will help you on the way
- Create an issue via the issues list.
- List the version of Serilog that is affected
- List the target framework and operating system
- If possible, provide a sample that reproduces the issue.
- If an issue does not already exist please create one via the issues list.
- Fork the repository and create a branch with a descriptive name.
- Attempt to make commits of logical units.
- When committing, please reference the issue the commit relates to.
- Run the build and tests.
- Windows platforms can use the
build.ps1
script - nix/OSX platforms can use the
build.sh
script
- Windows platforms can use the
- Create the PR, the PR template will help provide a stub of what information is required including:
- The issue this PR addresses
- Unit Tests for the changes have been added.
Serilog has an active and helpful community who are happy to help point you in the right direction or work through any issues you might encounter. You can get in touch via:
- Stack Overflow - this is the best place to start if you have a question
- Our issue tracker here on GitHub
- Gitter chat
- The #serilog tag on Twitter
Finally when contributing please keep in mind our Code of Conduct.