Skip to content

Commit

Permalink
Create CONTRIBUTING.md
Browse files Browse the repository at this point in the history
  • Loading branch information
JesseCoretta committed Dec 12, 2023
1 parent 0dd0810 commit 65db06d
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions CONTRIBUTING.md
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

0 comments on commit 65db06d

Please sign in to comment.