Skip to content

Latest commit

 

History

History
90 lines (59 loc) · 3.02 KB

File metadata and controls

90 lines (59 loc) · 3.02 KB

Contributing

Set up your dev environment

Requirements

We use Visual Studio 2022+ or JetBrains Rider for development. You must have .NET 10 SDK installed. You can check your dotnet version with:

dotnet --version

Set up

  1. Clone the repository
  2. cd into the repository
  3. Restore and build:
dotnet restore
dotnet build

Unit Tests

dotnet test --verbosity normal --settings test.runsettings --filter "TestU"

Integration Tests

For integration tests, we use a rippled node in standalone mode with an automatic ledger acceptor. To set this up, you need Docker and Docker Compose installed.

# start rippled + ledger-acceptor via Docker Compose
docker compose -f .ci-config/docker-compose.ci.yml up -d

# wait for rippled to be healthy, then run integration tests
dotnet test Tests/Xrpl.Tests/Xrpl.Tests.csproj --verbosity normal --settings test.runsettings --filter "TestI"

# stop containers when done
docker compose -f .ci-config/docker-compose.ci.yml down

For amendment activation details, the nightly-develop standalone environment for unreleased amendments, temDISABLED troubleshooting and genesis account funding, see the Standalone Node Guide.

Generate reference docs

You can see the complete reference documentation at XrplCSharp docs. You can also generate them locally:

dotnet tool install -g docfx
docfx DocFx/docfx.json

This generates documentation into the docs/ directory.

Update DefinitionsJson

Use this repo to generate a new DefinitionsJson file from the rippled source code. Instructions are available in that README.

Release process

Editing the Code

  • Your changes should have unit and/or integration tests.
  • Your code should pass all the tests on GitHub Actions (unit and integration tests).
  • Open a PR against dev and ensure that all CI passes.
  • Get a code review from one of the maintainers.
  • Merge your changes.

Release

  1. Ensure that all tests passed on the last CI that ran on dev.
  2. Update the version in all .csproj files (Xrpl, Xrpl.AddressCodec, Xrpl.BinaryCodec, Xrpl.Keypairs).
  3. Update CHANGES.md with the new version and changelog.
  4. Merge dev into release (the push to release publishes the NuGet packages and deploys the documentation).
  5. The NuGet publish workflow will start automatically on push to release.
  6. Create a GitHub release with the appropriate tag.

Mailing Lists

We have a low-traffic mailing list for announcements of new XrplCSharp releases. (About 1 email every couple of weeks)

If you're using the XRP Ledger in production, you should run a rippled server and subscribe to the ripple-server mailing list as well.