Thank you for your interest in contributing to Parcel.NET!
- .NET 10.0 SDK or later
dotnet builddotnet testdotnet pack- Fork the repository and create a feature branch from
main. - Ensure
dotnet buildcompletes without errors or warnings. - Ensure
dotnet testpasses with all tests green. - Add or update XML documentation on any new or changed public APIs.
- Update
CHANGELOG.mdunder the[Unreleased]section. - Open a pull request with a clear description of the changes.
- Target .NET 10.0 (
net10.0). - Use file-scoped namespaces.
- Use
initproperties on public models. - Add
ArgumentNullException.ThrowIfNull()guards on all public method parameters. - Use the custom exception types (
ShippingException,TrackingException) instead of generic exceptions. - Add
/// <summary>XML docs to all public types and members. - Keep carrier-specific code isolated in the corresponding
Parcel.NET.<Carrier>.*projects. - Write tests for all new functionality using xUnit v3, Shouldly, and NSubstitute.
- Create
Parcel.NET.<Carrier>for shared auth/config. - Create
Parcel.NET.<Carrier>.Shippingand/orParcel.NET.<Carrier>.Tracking. - Implement
IShipmentServiceand/orITrackingService. - Add DI extension methods following the builder pattern (
AddDhl/AddDhlShipping). - Add test projects under
tests/.
By contributing, you agree that your contributions will be licensed under the MIT License.