|
1 | | -###Curious to start contributing to Brackets? |
| 1 | +# The Basics |
2 | 2 |
|
| 3 | +### Filing a bug |
3 | 4 |
|
4 | | -With this file we want to provide some general guidance how to contribute to Brackets - your [feedback](https://groups.google.com/forum/?fromgroups=#!topic/brackets-dev/yEsaied7Fq8) is very welcome. |
| 5 | +Check the [Troubleshooting Page](https://github.com/adobe/brackets/wiki/Troubleshooting) for common |
| 6 | +issues with installing & launching Brackets, using Live Preview, etc. |
5 | 7 |
|
6 | | -Issues starting Brackets the first time? Please review the [Troubleshooting Page](https://github.com/adobe/brackets/wiki/Troubleshooting). |
| 8 | +**For bugs** be sure to search existing issues first. Include steps to consistently reproduce the |
| 9 | +problem, actual vs. expected results, and your OS and Brackets version number. |
| 10 | +Disable all extensions to verify the issue is a core Brackets bug. |
| 11 | +[Read more guidelines for filing good bugs...](https://github.com/adobe/brackets/wiki/How-to-Report-an-Issue) |
7 | 12 |
|
8 | | -## Starter Bugs |
| 13 | +**For feature requests** please first check our [feature backlog](http://bit.ly/BracketsBacklog) to |
| 14 | +see if it's already there. You can upvote features you'd like to see. |
9 | 15 |
|
10 | | -If you need some inspiration for a **starter bug**, we have some for you either as [GitHub Issue](https://github.com/adobe/brackets/issues?labels=starter+bug&page=1&state=open) or on the [Trello Board](https://trello.com/board/brackets/4f90a6d98f77505d7940ce88) (there, choose on the right hand sidebar "Filter Cards" and then click on "Starter Feature"). |
| 16 | +### Submitting a pull request |
11 | 17 |
|
12 | | -## Getting Started |
| 18 | +**Before you start coding**, post to the [brackets-dev Google group](http://groups.google.com/group/brackets-dev) |
| 19 | +or the [#brackets IRC channel on freenode](http://webchat.freenode.net/?channels=brackets) about what |
| 20 | +you're thinking of working on, so you can get early feedback. We don't want you to do tons of work |
| 21 | +and then have to rewrite half of it! |
13 | 22 |
|
14 | | -Before you start coding, post to the [brackets-dev Google group](http://groups.google.com/group/brackets-dev) or the [#brackets IRC channel on freenode](http://freenode.net) about what you're thinking of working on, so you can get early feedback. |
15 | | -This also provides you with an opportunity to find out what others including the core team are working on. |
| 23 | +For more on what's expected in a good pull request, see [Contributing Code](#contributing-code) below. |
16 | 24 |
|
17 | 25 |
|
18 | | -Brackets is developed using Agile development methodologies, features are tracked as user stories on the [public Brackets backlog](http://bit.ly/BracketsBacklog). You may _vote_ on existing stories or find stories to work on with others. |
| 26 | +# Ways to Contribute |
19 | 27 |
|
20 | | -1. Please sign the [Brackets Contributor License Agreement](http://dev.brackets.io/brackets-contributor-license-agreement.html). You must agree to and submit this before you can contribute to Brackets. |
| 28 | +There are many ways you can contribute to the Brackets project: |
21 | 29 |
|
22 | | -1. Please collaborate with others in providing and receiving guidance; the Brackets team made it a priority |
23 | | -to look at pull requests daily, however depending on the feature priority, the complexity of a contribution, |
24 | | -and available bandwidth we may not be able to work on it right away. |
| 30 | +* **Fix a bug** or **implement a new feature** - read on below. |
| 31 | +* **[Write a Brackets extension](https://github.com/adobe/brackets/wiki/How-to-write-extensions)** and |
| 32 | + tell us about it! |
| 33 | +* **Test Brackets** and [report bugs](https://github.com/adobe/brackets/wiki/How-to-Report-an-Issue) |
| 34 | + you find. For sample testing steps, see |
| 35 | + [Brackets smoke tests](https://github.com/adobe/brackets/wiki/Brackets-Smoke-Tests), |
| 36 | + [smoke tests with a local server](https://github.com/adobe/brackets/wiki/Brackets-Server-Smoke-Tests), and |
| 37 | + [UI walkthrough steps](https://github.com/adobe/brackets/wiki/Localization-Tests). |
| 38 | +* **Write unit tests** for Brackets. |
| 39 | +* **Translate** Brackets into other languages (and help keep those translations up to date) - see |
| 40 | + [localization README](https://github.com/adobe/brackets/blob/master/src/nls/README.md). |
| 41 | +* **Write documentation** and help keep it up to date |
| 42 | + (the [How to Use Brackets](https://github.com/adobe/brackets/wiki/How-to-Use-Brackets) intro page |
| 43 | + is one example). |
| 44 | +* **Try out some [Brackets extensions](https://github.com/adobe/brackets/wiki/Brackets-Extensions)** |
| 45 | + and give feedback to their authors. |
25 | 46 |
|
26 | 47 |
|
27 | | -## Making Changes |
28 | | -If you use Brackets to edit Brackets, you can quickly reload the app itself by choosing Debug > Reload Brackets from the in-app menu. |
29 | | -When coding, make sure to follow our [coding conventions](https://github.com/adobe/brackets/wiki/Brackets%20Coding%20Conventions). |
| 48 | +## Where Do I Start? |
30 | 49 |
|
| 50 | +To start editing the Brackets code, read **[How to Hack on Brackets](https://github.com/adobe/brackets/wiki/How-to-Hack-on-Brackets)**. |
| 51 | +To create your first Brackets extension, check out **[How to Write Extensions](https://github.com/adobe/brackets/wiki/How-to-write-extensions)**. |
| 52 | + |
| 53 | +Here are some ideas: |
| 54 | + |
| 55 | +* [Starter bugs](https://github.com/adobe/brackets/issues?labels=starter+bug&state=open) can |
| 56 | + provide a good intro to the Brackets code. |
| 57 | +* [Extension ideas](https://github.com/adobe/brackets/issues?labels=Extension+Idea&state=closed) |
| 58 | + are feature requests that we think would be best implemented as an add-on; it's up to the |
| 59 | + Brackets community to write them! |
| 60 | +* [Starter features](http://bit.ly/BracketsBacklog) are a bit larger in scope. Be sure to discuss |
| 61 | + these in the newsgroup before starting. _(To see starter features, click Filter Cards on the |
| 62 | + right and then click the green "Starter Feature" label)._ |
| 63 | + |
| 64 | +Once you're ready to start coding, see the next section, [Contributing Code](#contributing-code). |
| 65 | + |
| 66 | +**I'm new to JavaScript. How can I contribute to Brackets?** Brackets is a lot more complicated |
| 67 | +than the average website that uses JS. Better to start on some JS tutorials (like [Codecademy's](http://www.codecademy.com/tracks/javascript) |
| 68 | +or [MDN's](https://developer.mozilla.org/en-US/docs/JavaScript/Getting_Started)) and contribute |
| 69 | +in some of the other ways listed above. Testing is a great way to start thinking like a programmer |
| 70 | +before you've learned to code! |
| 71 | + |
| 72 | + |
| 73 | +## Contributing Code |
| 74 | + |
| 75 | +To get started editing the Brackets code, read [How to Hack on Brackets](https://github.com/adobe/brackets/wiki/How-to-Hack-on-Brackets). |
31 | 76 |
|
32 | 77 | Before submitting any pull request, please make sure to: |
33 | 78 |
|
34 | | -1. read the following wiki page on GitHub: https://github.com/adobe/brackets/wiki/How-to-Hack-on-Brackets. |
35 | | -1. merge from adobe/brackets master |
36 | | -1. re-test your code after the merge |
37 | | -1. run the unit tests with Debug > Run Tests -- everything should pass |
38 | | -1. if your change is nontrivial or might have affected the UI, run through the [Brackets smoke tests](Brackets-Smoke-Tests) and possibly the [Brackets server smoke tests](Brackets-Server-Smoke-Tests). |
39 | | -1. review the [Pull Request Checklist](https://github.com/adobe/brackets/wiki/Pull-Request-Checklist) for additional guidance. |
| 79 | +1. Discuss any major changes or questions beforehand in the [brackets-dev newsgroup](http://groups.google.com/group/brackets-dev). |
| 80 | +2. Consider whether your change would be better as an optional extension. Brackets is lightweight |
| 81 | + and tightly focused - but highly extensible. |
| 82 | +3. Follow the [Pull Request Checklist](https://github.com/adobe/brackets/wiki/Pull-Request-Checklist) |
| 83 | + to ensure a good-quality pull request. |
| 84 | +4. Sign the [Brackets Contributor License Agreement](http://dev.brackets.io/brackets-contributor-license-agreement.html) |
| 85 | + (we cannot merge before this). |
| 86 | + |
| 87 | +High quality code and a top-notch user experience are very important in Brackets, and we carefully |
| 88 | +review pull requests to keep it that way. The better you follow the guidelines above, the more likely |
| 89 | +we are to accept your pull request - and the faster the code review will go. |
| 90 | + |
40 | 91 |
|
41 | | -## Reviewing Code, Committing |
| 92 | +## The Code Review Process |
| 93 | + |
| 94 | +Brackets committers are responsible for reviewing all pull requests, providing feedback, and |
| 95 | +ultimately merging good code into `master`. The review process ensures all code is high quality, |
| 96 | +maintainable, and well documented. |
| 97 | + |
| 98 | +Once you've opened a pull request, a committer will generally respond to it within a week with an |
| 99 | +initial set of comments (you don't need to ping anyone to find a reviewer). Some pull requests |
| 100 | +raise larger questions about UI design, product scope or architecture. Those are tagged to indicate |
| 101 | +that review will take longer: |
| 102 | + |
| 103 | +* \[PM\] - needs high-level input from product management |
| 104 | +* \[XD\] - needs UI design / visual design discussion |
| 105 | +* \[ARCH\] - needs architectural discussion |
42 | 106 |
|
43 | | -In general code reviews can be performed by anyone who knows his/her limits, is familiar with the feature area and the architecture, |
44 | | -where the code, being reviewed, is added or altered. |
45 | | -To submit changes one needs commit rights - those are limited to ensure sustainable high quality. Committers are tasked with taking |
46 | | -a leading role in the project by making code contributions, assisting others with their contributions in the form |
47 | | -of reviewing and merging pull requests, and providing feedback and suggestions on the direction of the project. |
| 107 | +The best way to avoid this sort of holdup is to discuss your changes on the newsgroup first! |
48 | 108 |
|
49 | | -Please refer to the [Committer Policy](https://github.com/adobe/brackets/wiki/Brackets-Committer-Policy) for more information. |
50 | | -If you want to perform reviews, but don't have commit rights yet, we encourage you to do so. Please add a note that you start reviewing. |
51 | | -After you have finished your review ping us at IRC or leave a comment that your review has been completed. A committer will submit the pull request based on |
52 | | -priority. If a pull request already shows an assignee, please check with him/her first. |
| 109 | +Once your pull request is merged, it will appear in the next release of Brackets - generally within |
| 110 | +two weeks. |
53 | 111 |
|
54 | | -##Additional Resources |
| 112 | +**Interested in becoming a committer?** See the [Committer Policy](https://github.com/adobe/brackets/wiki/Brackets-Committer-Policy) |
| 113 | +for details. Committers are expected to take a leading role in the project by making significant |
| 114 | +code contributions, reviewing pull requests, and providing feedback and suggestions on the |
| 115 | +direction of the project. |
55 | 116 |
|
56 | | -* [the Brackets github issue tracker](https://github.com/adobe/brackets/issues) |
57 | | -* [Brackets wiki](https://github.com/adobe/brackets/wiki/Resources) |
58 | | -* [Contribute Page](http://brackets.io/contribute/) |
| 117 | +Even if you're not a committer, you're still welcome to give feedback on any pull request! |
0 commit comments