Skip to main content

Contributing

If you want to contribute to this repository, consider posting a bug report, feature request or a pull request.

You can also join our Discord server and ping us in #smartcontracts-dev.

Creating a Pull Request

Please base your work on the develop branch.

Before creating the Pull Request ensure that:

  • all the tests pass:

    go test -tags rocksdb,builtin_static ./...
  • there are no linting violations (instructions on how to setup linting below):

    golangci-lint run

Lint Setup

  1. Install golintci:

    https://golangci-lint.run/usage/install/#local-installation

  2. Dev setup:

    https://golangci-lint.run/usage/integrations/#editor-integration

    VSCode:

    // required:
    "go.lintTool": "golangci-lint",
    // recommended:
    "go.lintOnSave": "package"
    "go.lintFlags": ["--fix"],
    "editor.formatOnSave": true,

    GoLand:

    • Install golintci plugin

      Install golintci plugin

    • Configure path for golangci

      Configure path for golangci

    • Add a golangci file watcher with custom command (I recommend using --fix)

      Add a golangci file watcher with custom command

    Other editors: please look into the golangci official documentation.

  3. Ignoring false positives:

    https://golangci-lint.run/usage/false-positives/

    //nolint

    for specific rules:

    //nolint:golint,unused