CONTRIBUTING.md (2374B)
1 # Contributing to Urbit 2 3 Thank you for your interest in contributing to Urbit. 4 5 6 ## Git practice 7 8 Since we use the GitHub issue tracker, it is helpful (though not 9 required) to contribute via a GitHub pull request. If you already know 10 what you are doing, skip down to the Style section. 11 12 Start by cloning the repository on your work machine: 13 14 ``` 15 $ git clone https://github.com/urbit/ob-js 16 ``` 17 18 And, additionally, fork the repository on GitHub by clicking the "Fork" 19 button. Add your fork as a remote: 20 21 ``` 22 $ git remote add [username] https://github.com/[username]/ob-js 23 ``` 24 25 and set it as the default remote to push to: 26 27 ``` 28 $ git config --local remote.pushDefault [username] 29 ``` 30 31 This is good practice for any project that uses git. You will pull 32 upstream branches from urbit/ob-js and push to your personal ob-js fork 33 by default. 34 35 Next, start a new branch to do your work on. For `ob-js`, please use the 36 latest tagged release as your starting point. For other repositories, 37 anywhere pointed to by `master` is alright to start from. 38 39 ``` 40 $ git checkout -b [branch name] [starting point] 41 ``` 42 43 Now you are free to do your work on this branch. When finished, you may 44 want to clean up your commits: 45 46 ``` 47 $ git rebase -i [starting point] 48 ``` 49 50 Then you can push to your public fork with `git push` and make a pull 51 request via the GitHub UI. 52 53 After your changes are merged upstream, you can delete your branch (via 54 github UI or `git push :[branch]` remotely, and with `git branch -d` 55 locally). 56 57 ## Style 58 59 We prefer the [AirBnb JS styleguide](https://github.com/airbnb/javascript). At minimum, your code should be simple and well-organized. 60 61 62 ## What to work on 63 64 If you are not thinking of contributing with a specific goal in mind, 65 the GitHub issue tracker is the first place you should look for ideas. 66 Issues are tagged with a priority and a difficulty. A good place to 67 start is on either a low-difficulty issue or a low-priority issue. 68 Higher priority issues are likely to be assigned to someone - if this is 69 the case, then contacting that person to coordinate before starting to 70 work is probably a good idea. 71 72 There is also a "help wanted" tag for things that we are especially 73 eager to have outside contributions on. Check here first! 74 75 ## Staying in touch 76 77 Questions or other communications about contributing to Urbit can go to 78 [support@urbit.org](mailto:support@urbit.org).