Skip to content

Latest commit

 

History

History
150 lines (116 loc) · 5.73 KB

CONTRIBUTING.md

File metadata and controls

150 lines (116 loc) · 5.73 KB

Contributing

Set up your dev environment

Requirements

We use VisualStudio version 13.4.1 for development - that is the version that our linters require. You must also use dotnet 6. You can check your dotnet version with:

dotnet --version

6.0.400

Set up

  1. Clone the repository
  2. cd into the repository
  3. Open the package and this will install the dependencies

Build

dotnet build

Run the linter

dotnet lint

Unit Tests

dotnet build
dotnet test --verbosity normal --filter "TestU"

Integration Tests

Running Tests

For integration tests, we use a rippled node in standalone mode to test XRPLSwift code against. To set this up, you can either run rippled locally, or set up the Docker container xrpllabsofficial/xrpld:1.12.0 for this purpose. The latter will require you to install Docker.

# sets up the rippled standalone Docker container - you can skip this step if you already have it set up
docker run -p 6006:6006 --interactive -t --volume $PWD/.ci-config:/config/ xrpllabsofficial/xrpld:1.12.0 -a --start
dotnet build
dotnet test--verbosity normal --filter "TestI"

Generate reference docs

You can see the complete reference documentation at XrplCSharp docs. You can also generate them locally using cd DocFx && docfx

This updates docs/ at the top level, where GitHub Pages looks for the docs.

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 changes should pass the linter.
  • Your code should pass all the tests on Github (which check the linter, unit and integration tests on Swift 5 tests).
  • Open a PR against main and ensure that all CI passes.
  • Get a full code review from one of the maintainers.
  • Merge your changes.

Release

  1. Ensure that all tests passed on the last CI that ran on main.

NOW WE ARE READY TO PUBLISH! No new code changes happen manually now.


  1. Checkout main and git pull.
  2. Create a new branch to capture updates that take place during this process. git checkout -b <BRANCH_NAME>
  1. Update the version in the XrplCSharp.csproj file and all of the sub packages.
  1. Create a new PR from this branch into main and merge it.
  2. Checkout main and git pull
  3. Deploy using nuget
  1. Create a new PR from main branch into nuget_publish and merge it.
  2. Action for publish will start automaticaly. Wait for the publication to complete in the Action section.
the package will be placed in nuget and git.Nuget(git owner @dangell7 )
before push you need to create nuget api key in project settings, if you still not have it)

NOW YOU HAVE PUBLISHED! But you're not done; we have to notify people!


  1. Pull the most recent changes to main locally.
  2. Run git tag <tagname> -m <tagname>, where <tagname> is the new package and version (e.g. 0.0.1), for each version released.
  3. Run git push --follow-tags, to push the tags to Github.
  4. On Github, click the "releases" link on the right-hand side of the page.
  5. Click "Draft a new release"
  6. Click "Choose a tag", and choose a tag that you just created.
  7. Edit the name of the release to match the tag (IE <version>) and edit the description as you see fit.
  8. Repeat steps 19-21 for each release.
  9. Send an email to xrpl-announce.

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.