Skip to content

Latest commit

 

History

History
152 lines (113 loc) · 5.64 KB

CONTRIBUTING.md

File metadata and controls

152 lines (113 loc) · 5.64 KB

The Atsign FoundationThe Atsign Foundation

Contributing guidelines

We 💙 Pull Requests for fixing issues or adding features. Thanks for your contribution!

Please read our code of conduct, which is based on Contributor Covenant

For small changes, especially documentation, you can simply use the "Edit" button to update the Markdown file, and start the pull request process. Use the preview tab in GitHub to make sure that it is properly formatted before committing. Please use conventional commits and follow the semantic PR format as documented here . A pull request will cause integration tests to run automatically, so please review the results of the pipeline and correct any mistakes that are reported.

If you plan to contribute often or have a larger change to make, it is best to setup an environment for contribution, which is what the rest of these guidelines describe. The atsign-foundation GitHub organization's conventions and configurations are documented here.

Development Environment Setup

Prerequisites

  1. Download latest python from https://www.python.org/downloads/

  2. Install required libraries using below command.

    pip install -r requirements.txt

GitHub Repository Clone

To prepare your dedicated GitHub repository:

  1. Fork in GitHub https://github.com/atsign-foundation/at_python

  2. Clone your forked repository (e.g., git clone git@github.com:yourname/at_python)

  3. Set your remotes as follows:

    cd at_python
    git remote add upstream git@github.com:atsign-foundation/at_python.git
    git remote set-url upstream --push DISABLED

    Running git remote -v should give something similar to:

    origin  git@github.com:yourname/at_python.git (fetch)
    origin  git@github.com:yourname/at_python.git (push)
    upstream        git@github.com:atsign-foundation/at_python.git (fetch)
    upstream        DISABLED (push)
    

    The use of upstream --push DISABLED is to prevent those with write access to the main repository from accidentally pushing changes directly.

Development Process

  1. Fetch latest changes from main repository:

    git fetch upstream
  2. Reset your fork's trunk branch to exactly match upstream trunk:

    git checkout trunk
    git reset --hard upstream/trunk
    git push --force

    IMPORTANT: Do this only once, when you start working on new feature as the commands above will completely overwrite any local changes in trunk content.

  3. Edit, edit, edit, and commit your changes to Git:

    # edit, edit, edit
    git add *
    git commit -m 'A useful commit message'
    git push
  4. How to run tests:
    Create config.ini file and add your atsigns to run testcases. The structure of the files is as follows:

    [test_atsigns]
    atsign1 = <YOUR-ATSIGN1>
    atsign2 = <YOUR-ATSIGN2>

    Run all testcases using this command.

    python -m unittest discover -s test -p '*_test.py' -v
  5. Open a new Pull Request to the main repository using your trunk branch

Reporting a bug

Issue can be reported by clicking on the “New issue” button in the GitHub repo.

alt_text

Clicking on the “New issue” button should take you to the screen to choose where the issue is a Bug or an Enhancement.

alt_text

Upon clicking on the “Get started” button against the “Bug Report” you should be directed to a page with a bug template provided by Atsign. Filling out all of the fields in the template gives Atsign a better chance to reproduce and fix the bug.

alt_text

Bug fix and delivery process

  • Bugs will initially be placed into the Sprint Planning Board so that they can be triaged, estimated and scheduled.
  • Once work on a bug is scheduled one or more engineers will be assigned to fixing the bug, and story points will be allocated to match the time estimated to fix the bug.
  • Progress on fixing the bug will be updated in the associated GitHub issue, and reviewed during subsequent sprint planning meetings where necessary.
  • Once a fix is created we will work with the reporter to ensure that the fix is appropriate to their needs, and where possible this should happen prior to release to pub.dev

Closure of the bug

  • Where possible the issue associated with the bug should be closed by mutual consent with the reporter. This could be:
    • The reporter closing the issue because they have found a workaround.
    • The reporter closing the issue because they are satisfied with a fix provided.
    • A team member closes the issue after the reporter leaves a comment indicating that they are happy for it to be closed.
  • If the reporter does not respond within 14 calendar days then we must assume that they no longer have an interest in fixing the bug and work in progress can be closed out at the team’s discretion.