All pages
Powered by GitBook
1 of 1

Loading...

Contributing to Sophia

Checklist For Creating New Pull Requests

The following points should be considered before creating a new PR to the Sophia compiler.

Documentation

  • The file should be updated for all PRs.

  • If a PR introduces a new feature that is relevant to the users of the language, the should be updated to describe the new feature.

  • If a PR introduces new syntax (e.g. changes in , , or ), the should be updated to include the new syntax.

  • If a PR introduces a new library, the public interface of the new library should be fully documented in the .

  • If a PR introduces a new compiler option, the new option should be documented in the file.

Tests

  • If a PR introduces new syntax (e.g. changes in , , or ), the contract should be updated to include the new syntax.

  • If a PR fixes a bug, the code that replicates the bug should be added as a new passing test contract.

  • If a PR introduces a new feature, add tests for both successful and failing usage of that feature. In order to run the entire compilation pipeline and to avoid erroring during intermediate steps, failing tests should not be mixed with the successful ones.

Source Code

  • If a PR introduces new syntax (e.g. changes in , , or ), the following code should be updated to handle the new syntax:

    • The function aeso_syntax_utils:fold/4 in the file .

    • Any related pretty printing function in the file , depending on the type of the newly added syntax.

Checklist For Creating a Release

  • Update the version in the file .

  • Update the version in the file .

  • In the :

    • Update the Unreleased changes to be under the new version.

  • Update the version at the bottom of the file.

  • Commit and the changes and create a new PR (check the commit of v6.1.0 for reference).

  • Create a release after merging the new PR to master branch.

  • After releasing aesophia, refer to each of the following repositories and create new releases as well, using the new aesophia release:

    • aesophia_cli

    • aesophia_http

  • Changelog
    Sophia Features Documentation
    aeso_syntax.erl
    aeso_scan.erl
    aeso_parser.erl
    Sophia Syntax Documentation
    Sophia Standard Library Documentation
    aeso_compiler.md
    aeso_syntax.erl
    aeso_scan.erl
    aeso_parser.erl
    all_syntax.aes
    aeso_syntax.erl
    aeso_scan.erl
    aeso_parser.erl
    aeso_syntax_utils.erl
    aeso_pretty.erl
    aesophia.app.src
    rebar.config
    Changelog
    aerepl