1- ## Welcome!
1+ # Welcome!
22
33I'm so glad you've found this project interesting and useful enough that you'd
44like to contribute to its development.
55
66Please take time to review the policies and procedures in this document prior
77to making and submitting any changes.
88
9- This guide was drafted with tips from [ Wrangling Web Contributions: How to
10- Build a CONTRIBUTING.md] ( https://mozillascience.github.io/working-open-workshop/contributing/ )
11- and with some inspiration from [ the Atom project's CONTRIBUTING.md
12- file] ( https://github.com/atom/atom/blob/master/CONTRIBUTING.md ) .
9+ This guide was drafted with tips from [ Wrangling Web Contributions: How to Build
10+ a CONTRIBUTING.md] [ moz ] and with some inspiration from [ the Atom project's
11+ CONTRIBUTING.md file] [ atom ] .
12+ 13+ [ moz ] : https://mozillascience.github.io/working-open-workshop/contributing/
14+ [ atom ] : https://github.com/atom/atom/blob/master/CONTRIBUTING.md
1315
1416## Table of contents
1517
@@ -32,14 +34,24 @@ file](https://github.com/atom/atom/blob/master/CONTRIBUTING.md).
3234- [ Original repository] ( https://github.com/mbland/go-script-bash/ )
3335- [ Issues] ( https://github.com/mbland/go-script-bash/issues )
3436- [ Pull requests] ( https://github.com/mbland/go-script-bash/pulls )
35- - [ Issues] ( https://github.com/mbland/go-script-bash/issues )
37+ - [ Milestones] ( https://github.com/mbland/go-script-bash/milestones )
38+ - [ Projects] ( https://github.com/mbland/go-script-bash/projects )
3639
3740## Contributor License Agreement
3841
39- Please sign the [ Contributor License Agreement] [ cla ] by submitting the form
40- linked from the top of the agreement prior to filing any pull requests.
42+ Per the [ GitHub Terms of Service] [ gh-tos ] , be aware that by making a
43+ contribution to this project, you agree:
44+ 45+ * to license your contribution under the same terms as [ this project's
46+ license] [ lic ] , and
47+ * that you have the right to license your contribution under those terms.
4148
42- [ cla ] : https://github.com/mbland/cla
49+ See also: [ "Does my project need an additional contributor agreement? Probably
50+ not."] [ cla-needed ]
51+ 52+ [ gh-tos ] : https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license
53+ [ lic ] : #open-source-license
54+ [ cla-needed ] : https://opensource.guide/legal/#does-my-project-need-an-additional-contributor-agreement
4355
4456## Code of conduct
4557
@@ -49,11 +61,13 @@ specifics, see the [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) file.
4961## Reporting issues
5062
5163Before reporting an issue, please use the search feature on the [ issues
52- page] ( https://github.com/mbland/go-script-bash/ issues) to see if an issue
53- matching the one you've observed has already been filed.
64+ page] [ issues ] to see if an issue matching the one you've observed has already
65+ been filed.
5466
5567If you do find one...
5668
69+ [ issues ] : https://github.com/mbland/custom-links/issues
70+ 5771### Do not add a +1 comment!
5872
5973If you find an issue that interests you, but you have nothing material to
@@ -95,34 +109,40 @@ preferred, but even one nit is one nit too many.
95109## Environment setup
96110
97111Make sure you have Bash installed per the [ Environment setup in the
98- README] ( README.md#environment-setup ) .
112+ README] [ env-setup ] .
113+ 114+ [ env-setup ] : README.md#environment-setup
99115
100- You will also need [ Git] ( https://git-scm.com/downloads ) installed on your
101- system. If you are not familiar with Git, you may wish to reference the [ Git
102- documentation] ( https://git-scm.com/doc ) .
116+ You will also need [ Git] [ ] installed on your system. If you are not familiar
117+ with Git, you may wish to reference the [ Git documentation] [ git-doc ] .
118+ 119+ [ Git ] : https://git-scm.com/downloads
120+ [ git-doc ] : https://git-scm.com/doc
103121
104122## Workflow
105123
106124The basic workflow for submitting changes resembles that of the [ GitHub Git
107- Flow] ( https://guides.github.com/introduction/flow/ ) , except that you will be
108- working with your own fork of the repository and issuing pull requests to the
109- original.
125+ Flow] [ git-flow ] , except that you will be working with your own fork of the
126+ repository and issuing pull requests to the original.
127+ 128+ [ git-flow ] : https://guides.github.com/introduction/flow/
110129
1111301 . Fork the repo on GitHub (look for the "Fork" button)
1121312 . Clone your forked repo to your local machine
1131323 . Create your feature branch (` git checkout -b my-new-feature ` )
1141334 . Develop _ and [ test] ( #testing ) _ your changes as necessary.
1151344 . Commit your changes (` git commit -am 'Add some feature' ` )
1161355 . Push to the branch (` git push origin my-new-feature ` )
117- 6 . Create a new [ GitHub pull
118- request] ( https://help.github.com/articles/using-pull-requests/ ) for your
119- feature branch based against the original repository's ` master ` branch
120- 7 . If your request is accepted, you can [ delete your feature
121- branch] ( https://help.github.com/articles/deleting-unused-branches/ ) and
122- pull the updated ` master ` branch from the original repository into your
123- fork. You may even [ delete your
124- fork] ( https://help.github.com/articles/deleting-a-repository/ ) if you don't
125- anticipate making further changes.
136+ 6 . Create a new [ GitHub pull request] [ gh-pr ] for your feature branch based
137+ against the original repository's ` master ` branch
138+ 7 . If your request is accepted, you can [ delete your feature branch] [ rm-branch ]
139+ and pull the updated ` master ` branch from the original repository into your
140+ fork. You may even [ delete your fork] [ rm-fork ] if you don't anticipate making
141+ further changes.
142+ 143+ [ gh-pr ] : https://help.github.com/articles/using-pull-requests/
144+ [ rm-branch ] : https://help.github.com/articles/deleting-unused-branches/
145+ [ rm-fork ] : https://help.github.com/articles/deleting-a-repository/
126146
127147## Testing
128148
@@ -135,21 +155,24 @@ Period.
135155Any changes that break the continuous integration build must be fixed or rolled
136156back immediately.
137157
138- This project uses the [ Bash Automated Testing System
139- (Bats)] ( https://github.com/sstephenson/bats ) to write and run tests. All tests
140- and helper scripts are in the ` tests/ ` directory and are run using the `./go
141- test` command. This command has a very flexible syntax for running a subset of
142- test suites (i.e. a set of test cases within individual ` .bats ` files or
143- directories). Enabling tab completion via ` ./go env ` is highly encouraged.
158+ This project uses the [ Bash Automated Testing System (Bats)] [ bats ] to write and
159+ run tests. All tests and helper scripts are in the ` tests/ ` directory and are
160+ run using the ` ./go test ` command. This command has a very flexible syntax for
161+ running a subset of test suites (i.e. a set of test cases within individual
162+ ` .bats ` files or directories). Enabling tab completion via ` ./go env ` is highly
163+ encouraged.
164+ 165+ [ bats ] : https://github.com/sstephenson/bats
144166
145167Before sending your code for review, make sure to run the entire test suite via
146168` ./go test ` . If you're on a Linux system that uses the ` apt-get ` package manager
147169(e.g. Ubuntu, Debian), run ` ./go test --coverage ` to make sure your changes are
148170adequately covered by new and existing tests. This will install (within the
149- project working directory) and run the
150- [ kcov] ( https://github.com/SimonKagstrom/kcov ) tool, which is only available on
171+ project working directory) and run the [ kcov] [ ] tool, which is only available on
151172Linux for now.
152173
174+ [ kcov ] : https://github.com/SimonKagstrom/kcov
175+ 153176## Coding conventions
154177
155178- [ Formatting] ( #formatting )
@@ -321,7 +344,13 @@ it easier to find, count, and possibly transform things.
321344
322345# ## Process substitution
323346
324- - Avoid it, since it is not available on Windows platforms (yet).
347+ - Use wherever possible, such as when piping input into a ` while` loop (which
348+ avoids having the loop body execute in a subshell) or running a command taking
349+ multiple filename arguments based on output from a function or pipeline (e.g.
350+ ` diff` ).
351+ - * Warning* : It is impossible to directly determine the exit status of a process
352+ substitution; emitting an exit status as the last line of output is a possible
353+ workaround.
325354
326355# ## Conditionals and loops
327356
@@ -354,7 +383,8 @@ it easier to find, count, and possibly transform things.
354383
355384## Open Source License
356385
357- This software is made available as [Open Source
358- software](https://opensource.org/osd-annotated) under the [ISC
359- License](https://www.isc.org/downloads/software-support-policy/isc-license/).
360- For the text of the license, see the [LICENSE](LICENSE.md) file.
386+ This software is made available as [Open Source software][oss] under the [ISC
387+ License][isc]. For the text of the license, see the [LICENSE](LICENSE.md) file.
388+
389+ [oss]: https://opensource.org/osd-annotated
390+ [isc]: https://www.isc.org/downloads/software-support-policy/isc-license/
0 commit comments