First of all, thank you for considering contributing to Mailtrap .NET Client!
We are excited to have you here 🎉
Any contribution is welcome and appreciated, be it a bug report, a feature request, a documentation update, or a code change.
This project and everyone participating in it is governed by the Code of Conduct.
By participating, you are expected to uphold this code.
Please report unacceptable behavior to support@mailtrap.io.
This project is licensed under the MIT License.
Please consider that your contributions should meet its terms and conditions.
Also, by participating, you give your permission to license your contributions into this project under its terms and conditions.
Kindly consider searching for already existing issue or feature proposal before creating a new one.
Do not increase the entropy unnecessarily - the Universe will appreciate it.
If it is still the case - please use Issues section of the repo to file an issue, possible improvement or feature proposal.
To be able to make edits, build and run your changes locally, you will need the following:
-
Code editor or IDE of your choice, with C# language and .NET 9.x support.
This repository uses EditorConfig settings to enforce consistent code style, thus usage of editor which respects them is highly encouraged.
Visual Studio 2022 is one of recommended options. -
Plain text editor of your choice - for documentation updates.
Ideally, with Markdown support. -
docfx - to build and validate documentation website.
Please consider that contributions to the repository content are managed through pull requests.
Thus you will need to follow steps below to create a new one:
- Clone the repo
git clone https://github.com/mailtrap/mailtrap-dotnet.git- Create new branch
git checkout -b <branch-name>Please consider using the following pattern for branch naming:
[change-type]/[issue-id]-[change-description]
where:
[change-type] - one of the following: feat[ure], fix, docs, devops, test, refactor, etc.
[issue-id] - numeric ID of the issue that you are going to address, if available.
[change-description] - short description of the change, in kebab-case
-
Make changes, validate them.
-
Create commits with a description of changes made.
Usage of Conventional Commits is encouraged. -
Push to the remote.
-
Finally, create a pull request to the main branch, using the template provided.
Please consider providing detailed description what was changed and validating PR checklist to streamline the PR review.
This SDK is targeting .NET Standard 2.0
thus not all latest C# language features are supported.
Only C# v7.3 features support is guaranteed.
Later version features should be used with care and their runtime behavior should be thoroughly tested.
Adding unit/integration tests is encouraged for every added/changed functionality.
Although we are not targeting 100% coverage, ensuring everything is working as expected is important.
You can improve SDK documentation in several ways.
Add or extend XMLDoc comments in the code
They are used to show inline help in IDE and to generate SDK API reference section of documentation website, thus are a crucial part of the SDK.
Update markdown files in the docs folder of the repo.
Considering that docfx tool is used to create documentation website from sources, please ensure that you are using supported syntax.
To build and verify documentation locally, before committing your changes:
- Install/update
docfxas a global tool
dotnet tool (install|update) -g docfx- Build and serve documentation website
cd <repository-path>
docfx docs/docfx.json --serve- Finally, open http://localhost:8080 in your browser and navigate to the changed section.