When contributing to this repository, please first discuss the change you wish to make via issue, Slack, or any other method with the owners of this repository before submitting a PR.
Please note we have a code of conduct, please follow it in all your interactions with the project.
Note that to set up a development environment for this project on a Mac, you will need:
- Visual Studio for Mac, selecting only .NET Core features on setup - Download
- .NET Core SDK 2.1.808 installer for Mac - Download
OpenActive Test Suite is a suite of tests that can verify the conformance of an Open Booking API implementation, such as the reference implementation (BookingSystem.AspNetCore) contained within this project. OpenActive.Server.NET's CI checks that Test Suite passes for its reference implementation.
Changes to OpenActive.Server.Net should be tested with the Test Suite before a Pull Request is submitted, to ensure that the reference implementation remains conformant. If changes are also required to Test Suite in order to properly test the new changes, then coverage/*
branches should be used for both repositories, as documented in Test Suite's Pull Request Process documentation.
When you are making changes to OpenActive.Server.NET, please run the reference implementation (BookingSystem.AspNetCore) and Test Suite on your machine to check that the changes work before submitting a pull request.
How to run them both locally, using the dotnet
CLI:
- Reference Implementation. Run the reference implementation's IdentityServer and the reference implementation itself.
- Run the IdentityServer:
cd ./Examples/BookingSystem.AspNetCore.IdentityServer/ dotnet run
- Run the reference implementation (See Optimizing for controlled mode for a quicker way to run this):
cd ./Examples/BookingSystem.AspNetCore/ dotnet run
- Run the IdentityServer:
- Test Suite: To run this locally, follow the guidelines in its project's contribution documentation.
To speed up your development/testing feedback loop, you can optimize the reference implementation for controlled mode. In this mode, Test Suite creates all the data that it needs for testing. Test Suite is set to use this mode by default when running locally. With this mode, the reference implementation does not need to generate its own data, which it does by default, and so it will start up more quickly.
To do this, run reference implementation like this:
cd ./Examples/BookingSystem.AspNetCore/
export OPPORTUNITY_COUNT=1
dotnet run