Skip to content

Latest commit

 

History

History
56 lines (42 loc) · 2.54 KB

CONTRIBUTING.md

File metadata and controls

56 lines (42 loc) · 2.54 KB

Contributing

We'd be very happy to receive your contributions to this SDK! Please see below for contributing guidelines.

General contributing guidelines

Issues, bugs, and feature requests

If you find any bugs or want to request a feature, please either:

  • open a GitHub issue in the repository with an appropriate label (i.e. bug),
  • detail what you expect to happen and what is actually happening,
  • ideally add a link to the appropriate Xumm API docs (if applicable),
  • OR open your own PR :) See below for the development process.

Development process

Create a fork of the repo on Github and clone it. Then set up your development environment:

Dev environment setup

  1. Ensure you have installed the following requirements:
  1. In the root of the project, run composer install to install dependencies.
  2. Start developing! Please refer to our code guidelines below.
  3. Run all tests (see below) before you create your PR. Merging will be blocked until they pass.

Coding guidelines

This package uses PHP 8.2 and strives to use PHP>=8.2 features. Where possible, use strict argument and return types, and consider using features like enum types where appropriate.

While coding, keep in mind the user of this package. Users interact with the Xumm API through the XummSDK class and the value objects mentioned in the user documentation (such as implementations of XummResponse. They should not interact directly with anything in the client layer or other package internals, such as XummClient or the Guzzle\XummClient implementation, the XummSerializer, etc.

For exception handling, users of the package will expect to be able to catch implementations of XummException. When throwing exceptions, make sure they implement XummLogicException, XummBadResponseException, or their base class XummException. Please see the Exception namespace for examples.

Running tests

To run all test suites: make test

To run a specific test suite (e.g. unit, acceptance):

make test-{suite}

// e.g.: make test-unit

The acceptance test suite runs against the XUMM mock API. If you have Docker and docker compose, running make test will spin it up for you. Otherwise, you're free to run it yourself using node.

Before running the acceptance test suite, source setenv.sh to set the necessary environment variables.