-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
0dd0810
commit 65db06d
Showing
1 changed file
with
46 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Welcome to the go-stackage contributing guide <!-- omit in toc --> | ||
|
||
First, welcome to the go-stackage repository. | ||
|
||
## Contributor guide | ||
|
||
A few things should be reviewed before submitting a contribution to this repository: | ||
|
||
1. Read our [Code of Conduct](./CODE_OF_CONDUCT.md) to keep our community approachable and respectable | ||
2. Review the main [![GoDoc](https://godoc.org/github.com/JesseCoretta/go-stackage?status.svg)](https://godoc.org/github.com/JesseCoretta/go-stackage) page, which provides the entire suite of useful documentation rendered in Go's typically slick manner 😎. | ||
3. Review the [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests) document, unless you're already familiar with its concepts ... | ||
|
||
Once you've accomplished the above items, you're probably ready to start making contributions. For this, I thank you. | ||
|
||
## Technical Guidelines | ||
|
||
This section contains a few guidelines that I've imposed. This list may change at any time. | ||
|
||
- Cyclomatics - A maximum cyclomatic complexity factor of nine (9) is imposed | ||
- This means that no function or method provided as contributed content shall exceed this limit | ||
- This does NOT apply to example content (e.g.: `_examples/guiapp/main.go`) | ||
- Imports | ||
- 3rd party package imports introduced as a result of a contribution will require some kind of technical justification | ||
- Only 3rd party imports released under the MIT license shall be considered | ||
- This does NOT apply to example content (e.g.: `_examples/guiapp/main.go`) | ||
- Unit Tests - Contributed content shall be accompanied by sufficiently scaled unit tests | ||
- A massive code coverage % drop as a result of a pull request would be undesirable | ||
- Comments - All exported (public) functions, methods, constants and global variables are to be reasonably well-documented | ||
- I reserve the right to correct grammar, if and when needed | ||
- If English is not your preferred language, don't be afraid -- I'll take care of the polishing, just give me the highlights | ||
- This is not necessarily REQUIRED for example content, but it would be appreciated | ||
|
||
## A Note on Example Contributions | ||
|
||
The `_examples` folder is intended to house user-authored implementations of this SDK. There are very few guidelines and restrictions for content of this kind, as it is meant to resemble an app the end-user would write for their own use. | ||
|
||
- Be as creative as you want | ||
- So long as this SDK is the relevant centerpiece (or one of multiple), code to your heart's content | ||
- Import whatever packages you want | ||
- The above "Imports" guideline need not apply here | ||
- So long as the imported package(s) aren't malicious or fraught with vulnerabilities, etc., any imports are fine if you need them (even if you are the author) | ||
- Comments would (really) be nice | ||
- While nowhere near as strict as the above generalized "Technical Guidelines", commentary within your contributed app code would be greatly appreciated by the end user | ||
- Don't hold yourself to the same writing style as that of the SDK -- you're trying to "sell" the idea of your app to other individuals of varied experience levels; it need not read like a science journal | ||
- All contributed example content shall immediately become subject to the terms of the MIT license | ||
- The MIT license text block should appear prominently at the top of your `main.go` file as inline text; it need not be pushed as a separate file itself |