Skip to content

Latest commit

 

History

History
134 lines (100 loc) · 4.13 KB

CONTRIBUTING.md

File metadata and controls

134 lines (100 loc) · 4.13 KB

Contributing to PassWall

You are here to help on PassWall? Awesome, feel welcome and read the following sections in order to know how to ask questions and how to work on something.

Get in touch

How to find something to contribute?

  1. First look for help wanted issues.

  2. Then you can try to fix // TODO:'s in the code.

  3. If you have a good idea as a feature or find a bug, feel free to open an issue about it and tell us that you want to work on this subject.

Assignment

When you find something to contribute;

  1. Open an issue about it,

  2. Make sure that nobody assigned for that issue,

  3. Tell us that you want to work on the issue and get you assigned.

Commits and Pull Requests

Good pull requests - patches, improvements, new features - are a fantastic help. They should remain focused in scope and avoid containing unrelated commits.

Please ask first before embarking on any significant pull request (e.g. implementing features, refactoring code), otherwise you risk spending a lot of time working on something that the project's developers might not want to merge into the project.

PassWall uses the branch naming policy below.

Branch naming policy

Instance Branch Description, Instructions, Notes
Stable stable Accepts merges from Working and Hotfixes
Working master Accepts merges from Features/Issues and Hotfixes
Features/Issues topic-* Always branch off HEAD of Working
Hotfix hotfix-* Always branch off Stable

More about branchs and workflow here

For new Contributors

If you never created a pull request before, welcome 🎉 😄 Here is a great tutorial on how to send one :)

  1. Fork the project, clone your fork, and configure the remotes:

    # Clone your fork of the repo into the current directory
    git clone https://github.com/<your-username>/<repo-name>
    # Navigate to the newly cloned directory
    cd <repo-name>
    # Assign the original repo to a remote called "upstream"
    git remote add upstream https://github.com/passwall/<repo-name>
  2. If you cloned a while ago, get the latest changes from upstream:

    git checkout master
    git pull upstream master
  3. Create a new topic branch (off the main project development branch) to contain your feature, change, or fix:

    git checkout -b <topic-branch-name>
  4. Make sure to update or add to the tests when appropriate. Patches and features will not be accepted without tests.

  5. If you added or changed a feature, make sure to document it accordingly in the README.md file.

  6. Push your topic branch up to your fork:

    git push origin <topic-branch-name>
  7. Open a Pull Request with a clear title and description.

How to report a bug

When filing an issue, make sure to answer these five questions:

  1. What version of Go are you using (go version)?
  2. What operating system and processor architecture are you using?
  3. What did you do?
  4. What did you expect to see?
  5. What did you see instead?