|
| 1 | +# 👨💻 Contributing to AgileTs |
| 2 | +We are open and grateful for any contribution made by the community. |
| 3 | +If you're interested in contributing to AgileTs, this document might make the process for you easier. |
| 4 | + |
| 5 | +The [Open Source Guides](https://opensource.guide/) website has a collection of resources for individuals, |
| 6 | +communities, and companies who want to learn how to run and contribute to an open source project. |
| 7 | +Contributors and people new to open source will find the following guides especially useful: |
| 8 | + |
| 9 | +- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) |
| 10 | +- [Building Welcoming Communities](https://opensource.guide/building-community/) |
| 11 | + |
| 12 | + |
| 13 | +## 👊 [Code of Conduct](https://code.fb.com/codeofconduct) |
| 14 | + |
| 15 | +Please read [the full text](https://code.fb.com/codeofconduct), so that you can understand what interpersonal actions will and will not be tolerated. |
| 16 | + |
| 17 | + |
| 18 | +## 😎 Get Involved |
| 19 | +There are many ways to contribute to AgileTs, and some of them don't involve writing any code. |
| 20 | +Here are a few ideas to get started: |
| 21 | +- Just start using AgileTs. Does everything work as expected? If not, we're always looking for improvements. Let us know by [opening an issue](#reporting-new-issues). |
| 22 | +- Help us solving [open issues](https://github.com/agile-ts/agile/issues) by suggesting workarounds or fixing them. |
| 23 | +- [Improve open issues](#improve-issues-and-pull-requests) to make them more clear, readable and understandable for others. |
| 24 | +- Read through the [AgileTs docs](https://agile-ts.org/docs). If you find anything that is confusing or can be improved, feel free to make edits by clicking "Edit" at the bottom of the doc page. |
| 25 | +- Take a look at the [features requested](https://github.com/agile-ts/agile/labels/enhancement) by others and consider opening a pull request if you see something you want to work on. |
| 26 | + |
| 27 | +### Join our Discord Server |
| 28 | +Contributions are very welcome and not bound to github. |
| 29 | +You can also contribute in our [Discord Community](https://discord.gg/FTqeMNCxw7) by helping other people |
| 30 | +which might face a problem you have already solved. |
| 31 | + |
| 32 | +### Improve Issues and Pull Requests |
| 33 | + |
| 34 | +One great way you can contribute without writing _any_ code is to improve open issues and pull requests. |
| 35 | + |
| 36 | +- Ask for more information if you believe the issue does not provide all the details required to solve it |
| 37 | +- Suggest [labels](https://github.com/agile-ts/agile/labels) that can help categorize issues/pull-requests |
| 38 | +- Flag issues that are stale or that should be closed |
| 39 | + |
| 40 | +## ⏰ Our Development Process |
| 41 | + |
| 42 | +AgileTs uses Github as it's source of truth. |
| 43 | +All changes made so far and which will be made in the future are and will remain publicly accessible here. |
| 44 | + |
| 45 | +### Branch Organization |
| 46 | + |
| 47 | +AgileTs has two primary branches: `master` and `develop` |
| 48 | + |
| 49 | +`master` contains the latest released code |
| 50 | + |
| 51 | +`develop` is where development takes place |
| 52 | + |
| 53 | +<img src="static/branch_organization.png" alt="Banner"> |
| 54 | + |
| 55 | +The root of all your branches have to be the `develop` branch! |
| 56 | + |
| 57 | + |
| 58 | +## 🐞 Bugs |
| 59 | + |
| 60 | +We use [GitHub Issues](https://github.com/agile-ts/agile/issues) for our public bugs. |
| 61 | +If you would like to report a problem, **take a look around and see if someone already opened an issue about it**. |
| 62 | +If you are certain this is a new unreported bug, you can submit a [bug report](#reporting-new-issues). |
| 63 | + |
| 64 | + |
| 65 | +## 📕 Reporting New Issues |
| 66 | + |
| 67 | +When [opening a new issue](https://github.com/agile-ts/agile/issues/new/choose), always make sure to fill out the whole issue template. |
| 68 | +**This step is very important!** Not doing so may result in your issue not managed in a timely fashion. |
| 69 | +Don't take this personally if this happens, and feel free to open a new issue once you've gathered all the information required by the template. |
| 70 | + |
| 71 | +- **One issue, one bug!** Please report a single bug per issue. |
| 72 | +- **Provide reproduction steps!** List all steps that are necessary to reproduce the issue. The person reading your bug report should be able to reproduce your issue with minimal effort. |
| 73 | + |
| 74 | + |
| 75 | +## ⏳ Installation |
| 76 | + |
| 77 | +1. Ensure you have [Yarn](https://yarnpkg.com/) installed |
| 78 | +2. After cloning the repository, run `yarn run install-packages` in the root of the repository, |
| 79 | + which simply runs `yarn install` in each package to ensure all dependencies are installed. |
| 80 | + |
| 81 | +### Run Example Project's |
| 82 | + |
| 83 | +1. Follow the [Installation](#Installation) steps above |
| 84 | +2. Ensure you have [Yalc](https://www.google.com/search?client=firefox-b-d&q=yalc) installed |
| 85 | +3. Run `yarn run dev-publish` to publish all packages in your local 'npm store' |
| 86 | +4. Execute `yarn install` in the Example Project to install its dependencies like AgileTs |
| 87 | +5. If you made your desired changes. Run `yarn run dev-push` to push your updated changes into your local 'npm store' <br /> |
| 88 | + _ProTip:_ To make realtime changes, run `yarn run watch`, which automatically runs `yarn run dev-push` everytime you update a file in a package. |
| 89 | + |
| 90 | + |
| 91 | +## ☄️ Pull Request |
| 92 | + |
| 93 | +### Your First Pull Request |
| 94 | + |
| 95 | +So you have also decided to merge code back to the upstream by opening a PR. |
| 96 | +You've invested a good chunk of time, and we appreciate it. |
| 97 | +We will do our best to work with you and get the PR looked at. |
| 98 | + |
| 99 | +_Working on your first Pull Request?_ You can learn how from this free video series: |
| 100 | + |
| 101 | +[**How to Contribute to an Open Source Project on GitHub**](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github) |
| 102 | + |
| 103 | +We have a list of [beginner friendly issues](https://github.com/agile-ts/agile/labels/good%20first%20issue) to help you to get your feet wet in the AgileTs codebase |
| 104 | +and familiar with our contribution process. This is a great place to get started. |
| 105 | + |
| 106 | +### Proposing a Change |
| 107 | + |
| 108 | +If you would like to request a new feature or enhancement but you only want to give an impulse and don't want to implement it, |
| 109 | +feel free to create an issue that follows the [feature template](https://github.com/agile-ts/agile/issues/new?template=feature_request.md). |
| 110 | + |
| 111 | +If you're only fixing a bug, it's fine to submit a pull request right away, |
| 112 | +but we still recommend creating an [issue](https://github.com/agile-ts/agile/issues/new?template=bug_report.md) detailing what you're fixing. |
| 113 | +This is helpful in case we don't accept that specific changes, but want to keep track of the issue. |
| 114 | + |
| 115 | +### Sending a Pull Request |
| 116 | + |
| 117 | +Keep in mind that small pull requests are much easier to review and more likely to get merged. |
| 118 | +Make sure your PR only solves one problem (issue), otherwise please split it up in multiple PR's for a better overview. |
| 119 | +Commit Messages that follow this [style guide](https://www.conventionalcommits.org/en/v1.0.0/) are very welcome ^^ |
| 120 | + |
| 121 | +Please make sure the following is done before submitting a new pull request: |
| 122 | + |
| 123 | +1. Fork [the repository](https://github.com/agile-ts/agile) and create your branch from `develop` |
| 124 | +2. Make sure your code is right formatted (`yarn prettier`) |
| 125 | +3. Make sure all Jest tests pass (`yarn test`) |
| 126 | +4. Don't forget the **How has this been Tested?** part! |
| 127 | + |
| 128 | +All pull requests should be opened against the `develop` branch |
| 129 | +and have a related Issue for better organization! |
| 130 | + |
| 131 | +#### Breaking Changes |
| 132 | + |
| 133 | +When adding a new [breaking change](https://stackoverflow.com/questions/21703216/what-is-a-breaking-change-in-software), follow this template in your pull request: |
| 134 | + |
| 135 | +```md |
| 136 | +### New breaking change here |
| 137 | + |
| 138 | +- **Who does this affect**: |
| 139 | +- **How to migrate**: |
| 140 | +- **Why make this breaking change**: |
| 141 | +- **Severity (number of people affected x effort)**: |
| 142 | +``` |
| 143 | + |
| 144 | +### What Happens Next? |
| 145 | + |
| 146 | +The core Team of AgileTs is constantly monitoring pull requests and merges them if they seem correct. |
| 147 | +Help us to keep pull requests consistent by following the guidelines above. |
| 148 | + |
| 149 | + |
| 150 | +## 🌟 Style Guide |
| 151 | + |
| 152 | +[Prettier](https://prettier.io) will catch most styling issues that may exist in your code. |
| 153 | +You can check the status of your code styling by simply running `yarn prettier`. |
| 154 | + |
| 155 | +**Most important:** Look around. Match the style you see used in the rest of the project(formatting, naming, ..). |
| 156 | + |
| 157 | + |
| 158 | +## 📄 License |
| 159 | +By contributing to AgileTs, you agree that your contributions will be licensed under its **MIT license**. |
| 160 | + |
| 161 | + |
| 162 | +## 🎉 Credits |
| 163 | +This File is inspired by the [Docusaurus CONTRIBUTING.md](https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md). |
| 164 | + |
0 commit comments