A Go open source repository in its original condition.
There are a lack of repositories to start from to build community driven open source projects. Pristine Go is a complete starting point, it follows a Documentation Driven Development approach, and can be used as a resource to augment existing documentation.
There are 3 options for using pristine with your project.
- Fork this repo as the start of your own, OR
- follow these instructions to use it on an existing repository.
- Use the
Use this template
button on this repository.
There are many ways to drive open source development. Documenting the problem in the README gives a middle ground between technical and non-technical specifications. This allows organizing solutions to this challenge around community and documentation.
[...] a beautifully crafted library with no documentation is also damn near worthless. If your software solves the wrong problem or nobody can figure out how to use it, there’s something very bad going on.
- Readme Driven Development by Tom Preson-Werner
Pristine has some strong opinions built in like circleci, semantic-release, npm. So feel free to fork and change it at your own discretion. It is only meant to be a starting point. That being said:
Using conventions, documentation and specifications make it easier to:
- communicate the problem you are solving
- ease onboarding
- build and use composable tools
- promote open source contribution and engagement
- promote issue and feature discussion on Github itself
- Pristine
- opensource.guide
- Github community profiles for public repositories
- Readme Driven Development
- pengwynn/flint
- Working Backwards
- Literate programming
- Hammock Driven Development
- Inversion and The Power of Avoiding Stupidity
- choosealicense.com
To get started, fork or duplicate the repository. Then edit this file and delete everything above this line.
Then execute .pristine/post-install.sh and follow the prompts.
How to contribute, build and release are outlined in CONTRIBUTING.md, BUILDING.md and RELEASING.md respectively. Commits in this repository follow the CONVENTIONAL_COMMITS.md specification.