Skip to content

Latest commit

 

History

History
82 lines (57 loc) · 4.3 KB

CONTRIBUTING.md

File metadata and controls

82 lines (57 loc) · 4.3 KB

Welcome to arch-go's contributing guide

Thank you for investing your time in contributing to this project! Any contribution you make, will make arch-go better for everyone ✨!

Before you continue, here are some important resources:

How can I contribute?

There are many ways you can contribute to arch-go. Here are some ideas:

  • Give this project a star: It may not seem like much, but it really makes a difference. This is something that everyone can do to help. GitHub stars help the project gaining visibility and stand out.
  • Join the community: Helping people can be as easy as by just sharing your own experience. You can also help by listening to issues and ideas of other people and offering a different perspective, or providing some related information that might help. Take a look at arch-go's Discussions. Bonus: You get GitHub achievements for answered discussions 😉.
  • Help with open issues: There may be many open issues. Some of them may lack necessary information, some may be duplicates of older issues. Most are waiting for being implemented.
  • You spot a problem: Search if an issue already exists. If a related issue doesn't exist, please open a new issue using a relevant issue form. You have no obligation to offer a solution or code to fix an issue you open.

Disclosing vulnerabilities

Please disclose vulnerabilities by making use of Security Advisories. Do not use GitHub issues for that!

Contribute content

Unless you are fixing a known bug, we strongly recommend discussing it with the core team via a GitHub Issue or in arch-go's Discussions before getting started.

Important: Only PRs with signed commits will be accepted.

The general process is as follows:

Set up your local development environment to contribute to arch-go:

  1. Fork, then clone the repository.

    > git clone https://github.com/your_github_username/arch-go.git
    > cd arch-go
    > git remote add upstream https://github.com/arch-go/arch-go.git
    > git fetch -p upstream
  2. Install required tools:

  1. Verify that tests and other checks pass locally.

    > git pull
    > git checkout main
    > golangci-lint run
    > go-licenses check --disallowed_types=forbidden,restricted,reciprocal,permissive,unknown  --ignore=github.com/hashicorp/hcl .
    > go test -v -gcflags=all=-l ./...
  2. When creating your PR, please follow the guide you'll see in the PR template to streamline the review process.

  3. At this point, you're waiting on us to review your changes. We try to respond to issues and pull requests within a few days, and we may suggest some improvements or alternatives. Once your changes are approved, one of the project maintainers will merge them.

Contribute Code

After having installed the tools listed above:

  1. Create a new feature branch.

    > git checkout -b cool_new_feature
  2. Make your changes, and verify that all tests and lints still pass.

    > golangci-lint run
    > go-licenses check --disallowed_types=forbidden,restricted,reciprocal,permissive,unknown  --ignore=github.com/hashicorp/hcl .
    > go test -v -gcflags=all=-l ./...
  3. When you're satisfied with the change, push it to your fork and make a pull request.

    > git push origin cool_new_feature
    # Open a PR at https://github.com/arch-go/arch-go/compare