Skip to content

Commit 62eeee4

Browse files
Update README file (#37)
* Update README file * Cleanup
1 parent d7aecb4 commit 62eeee4

File tree

3 files changed

+99
-7
lines changed

3 files changed

+99
-7
lines changed

CONTRIBUTING.md

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
We have [good first issues][good-first-issue] for new contributors and [help wanted][help-wanted] issues for our other contributors.
2+
3+
* `good first issue` has extra information to help you make your first contribution.
4+
* `help wanted` are issues suitable for someone who isn't a core maintainer.
5+
6+
Maintainers will do our best regularly make new issues for you to solve and then help out as you work on them. 💖
7+
8+
# Philosophy
9+
PRs are most welcome!
10+
11+
* If there isn't an issue for your PR, please make an issue first and explain the problem or motivation for
12+
the change you are proposing. When the solution isn't straightforward, for example "Implement missing command X",
13+
then also outline your proposed solution. Your PR will go smoother if the solution is agreed upon before you've
14+
spent a lot of time implementing it.
15+
* It's OK to submit a PR directly for problems such as misspellings or other things where the motivation/problem is
16+
unambiguous.
17+
* If you aren't sure about your solution yet, put WIP in the title or open as a draft PR so that people know to be nice and
18+
wait for you to finish before commenting.
19+
* Try to keep your PRs to a single task. Please don't tackle multiple things in a single PR if possible. Otherwise, grouping related changes into commits will help us out a bunch when reviewing!
20+
* We encourage "follow-on PRs". If the core of your changes are good, and it won't hurt to do more of
21+
the changes later, we like to merge early, and keep working on it in another PR so that others can build
22+
on top of your work.
23+
24+
When you're ready to get started, we recommend the following workflow:
25+
26+
```
27+
$ go build ./...
28+
$ go test ./...
29+
$ golangci-lint run --config ./golangci.yml
30+
```
31+
32+
We currently use [dep](https://github.com/golang/dep) for dependency management.
33+
34+
[good-first-issue]: https://github.com/deislabs/cnab-go/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
35+
[help-wanted]: https://github.com/deislabs/cnab-go/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
36+
37+
# Cutting a Release
38+
39+
When you are asked to cut a new release, here is the process:
40+
41+
1. Figure out the correct version number, we follow [semver](semver.org) and
42+
have a funny [release naming scheme][release-name]:
43+
* Bump the major segment if there are any breaking changes.
44+
* Bump the minor segment if there are new features only.
45+
* Bump the patch segment if there are bug fixes only.
46+
* Bump the build segment (version-prerelease.BUILDTAG+releasename) if you only
47+
fixed something in the build, but the final binaries are the same.
48+
1. Figure out if the release name (version-prerelease.buildtag+RELEASENAME) should
49+
change.
50+
51+
* Keep the release name the same if it is just a build tag or patch bump.
52+
* It is a new release name for major and minor bumps.
53+
54+
If you need a new release name, it must be conversation with the team.
55+
[Release naming scheme][release-name] explains the meaning behind the
56+
release names.
57+
1. Ensure that the master CI build is passing, then make the tag and push it.
58+
59+
```
60+
git checkout master
61+
git pull
62+
git tag VERSION -a -m ""
63+
git push --tags
64+
```
65+
66+
1. Generate some release notes and put them into the release on GitHub.
67+
The following command gives you a list of all the merged pull requests:
68+
69+
```
70+
git log --oneline OLDVERSION..NEWVERSION | grep "#" > gitlog.txt
71+
```
72+
73+
You need to go through that and make a bulleted list of features
74+
and fixes with the PR titles and links to the PR. If you come up with an
75+
easier way of doing this, please submit a PR to update these instructions. 😅
76+
77+
```
78+
# Features
79+
* PR TITLE (#PR NUMBER)
80+
81+
# Fixes
82+
* PR TITLE (#PR NUMBER)

GOVERNANCE.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Governance
2+
3+
## Project Maintainers
4+
[Project maintainers](CODEOWNERS) are responsible for activities around maintaining and updating CNAB-go, a library for the [CNAB spec](https://github.com/deislabs/cnab-spec). Final decisions on the project reside with the project maintainers.
5+
6+
Maintainers MUST remain active. If they are unresponsive for >3 months, they will be automatically removed unless a [super-majority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) of the other project maintainers agrees to extend the period to be greater than 3 months.
7+
8+
New maintainers can be added to the project by a [super-majority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) vote of the existing maintainers.
9+
10+
A maintainer may step down by submitting an [issue](https://github.com/deislabs/cnab-go/issues/new) stating their intent.
11+
12+
## Code of Conduct
13+
This project has adopted the [Microsoft Open Source Code of conduct](https://opensource.microsoft.com/codeofconduct/).
14+
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

README.md

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
# cnab-go
22

3-
CNAB packages for Go, extracted from Duffle.
3+
cnab-go is a library for building [CNAB](https://github.com/deislabs/cnab-spec) clients. It provides the building blocks relevant to the CNAB specification so that you may build tooling without needing to implement all aspects of the CNAB specification.
44

5-
We highly recommend you _do not_ take a dependency on this package, as it's currently in a very early, experimental state.
5+
cnab-go is currently being used by [Docker App](https://github.com/docker/app), [Duffle](https://github.com/deislabs/duffle), and [Porter](https://github.com/deislabs/porter). If you'd like to see your CNAB project listed here, please submit a PR.
66

7-
```
8-
$ go build ./...
9-
$ go test ./...
10-
$ golangci-lint run --config ./golangci.yml
11-
```
7+
cnab-go is [maintained](GOVERNANCE.md) by the CNAB community. We sometimes discuss cnab-go issues during the [bi-weekly CNAB community meeting](https://hackmd.io/s/SyGcBcwQ4), but we encourage open communication via our [issue](https://github.com/deislabs/cnab-go/issues) queue and via [PRs](https://github.com/deislabs/cnab-go/pulls). If you are interested in contributing to cnab-go, please refer to our [contributing](CONTRIBUTING.md) guidelines.

0 commit comments

Comments
 (0)