-
Notifications
You must be signed in to change notification settings - Fork 196
Contribution process including Maturity Levels #155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
30 commits
Select commit
Hold shift + click to select a range
10ecec4
Dropped meta/publishing.md because it's outdated
maxcapraro b3a52a4
Deleted file explaining meetings - outdated
maxcapraro 003483d
Simplified contributing.md file
maxcapraro e2b081f
Fixes in formatting, links of contributing.md
maxcapraro 3ef2e0c
Added contributor handbook
maxcapraro b94d1b9
Fixed faulty link
maxcapraro 7936767
Added (obvious) reference to patterns format
maxcapraro 8109a71
Dropped pattern states
maxcapraro ca136c1
Made patterns lifecycle more explicit
maxcapraro 819447c
Minor changes to formatting
maxcapraro 31e22c9
Replaced 'holy' with 'established'
maxcapraro 05e781f
Update meta/contributor-handbook.md
maxcapraro 401c5aa
Added to contributing.md invitation to discuss via issues
maxcapraro 7be4364
Raised requirements for validation based on recommendations by @newme…
maxcapraro b47f00f
Dropped 'usage'column from overview table
maxcapraro aa05c0b
Fixed broken links
maxcapraro b7001bd
Droped link to meetings
maxcapraro 0b1fca8
Merge branch 'master' into master
maxcapraro 626f66a
Added directories for maturity levels
maxcapraro 610581a
Merge branch 'master' of github.com:maxcapraro/InnerSourcePatterns
maxcapraro 44fb228
Update CONTRIBUTING.md
maxcapraro a7849d6
Added invitation to contribute early stage thoughts and ideas
maxcapraro dd45bd3
Update meta/contributor-handbook.md
maxcapraro aa1d931
Applied consistent naming of stage 'validated' proposed by @spier
maxcapraro d1db6f8
Update meta/contributor-handbook.md
maxcapraro a61cd87
Added top level patterns/ folder
maxcapraro 3d0bbe0
Merge branch 'master' of github.com:maxcapraro/InnerSourcePatterns
maxcapraro 6ba3bd1
Dropped double space
maxcapraro f8c1213
Dropped maturity level four
maxcapraro a269324
Update CONTRIBUTING.md
maxcapraro File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 |
---|---|---|
@@ -1,95 +1,39 @@ | ||
# How to Contribute | ||
# Contributing to the InnerSource Patterns | ||
|
||
First, checkout our complete list of patterns: [public GitHub](https://github.com/InnerSourceCommons/InnerSourcePatterns#reviewed-patterns-proven-and-reviewed) OR [Google Doc](https://docs.google.com/spreadsheets/d/17KPZdCoquTnYSj03pX4v2vn8lrSYO_6HK20u1cwaLPg/edit#gid=0) | ||
The goal of the InnerSource patterns working group is to collect, document, and publish InnerSource best practices. To make the best practices easy to comprehend, evaluate, and apply, we codify them in a specific structure - [the patterns format](meta/pattern-template.md). More infos on the working group can be found in our [README.md](README.md) file. | ||
|
||
We encourage beginners seeking answers to jump in by creating `donut` patterns (filling in the problem, context, forces and resulting context fields but leaving the solution blank) as a way of asking the InnerSource Commons community for help (to find a proven solution or to brainstorm things to try). | ||
For this working group to strive, we welcome your contribution - be it small or huge. | ||
|
||
Anyone can offer reviews and comments for [in-progress patterns](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls). We encourage experts to pad their experience - these are hoped to become part of an Inner Source handbook one day. | ||
|
||
We work together via GitHub, WebEx, Slack, etc. Do not hesitate to join the [#innersourcecommons](https://isc-inviter.herokuapp.com/) or #innersource-patterns Slack channels and ask to be included in the [patterns meetings](/meta/meetings.md) (there is an email list). | ||
## How to Contribute? | ||
|
||
Select one of the following ways to contribute, to learn our workflow: | ||
Please consider contributing in the following ways: | ||
|
||
* A. [Write a new pattern](#a-writing-a-new-pattern) | ||
* B. [Discuss/Record early ideas](#b-discussing-early-ideas-in-issues) | ||
* C. [Review existing patterns](#c-interacting-with-patterns-reviews) | ||
* D. [Take part in our Meetings and Roles](/meta/meetings.md) <-- link to separate doc | ||
1. **Share your thoughts & spark discussion**. A fresh perspective, an interesting thought, or an early novel idea can spark discussions and yield unforeseeable results. We invite you to share your thoughts on InnerSource-related topics at any time by [creating an issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/new), [via Slack, or our patterns office hours](#how-to-get-in-touch). | ||
|
||
2. **Read & improve existing patterns.** If you want to get started, we encourage you to read through the existing patterns and materials in this repository. Found a misleading phrase or phony grammar? A mistake in the content? Let us know by [creating an issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/new) or directly propose your fix as a pull request. | ||
|
||
# A. Writing a New Pattern | ||
3. **Review open pull requests.** Even without knowing all the specifics of the patterns working group, your feedback on existing [pull requests](https://github.com/InnerSourceCommons/InnerSourcePatterns/labels/type%20-%20Content%20work) (especially those propising changes to pattern contents) will be valuable to its authors: As somebody who wants to learn more about InnerSource, you can give input from the perspective of a future reader. As somebody with own InnerSource experiences, you can share your experience with the authors. | ||
|
||
The below steps can be used to create a new pattern. The use-case here is that you have an idea or problem in your head and can confidently fill out the barest of pattern fields (Solution doesn't need to be known). If you are unsure your idea is ready for this, [discuss it in an issue first](#b-discussing-early-ideas-in-issues). | ||
4. **Contribute a new pattern.** A key contribution you can make is to document an InnerSource best practice you experienced or know about. We defined different maturity levels for the contents in this repository: First time contributors should aim for maturity levels `1: initial` (for unstructured experience reports or what we call donuts - patterns with missing pieces) and `2: structured` (for best practices adhering to the patterns format and following basic writing style conventions). Our [Contributor Handbook](meta/contributor-handbook.md) discusses all this in more detail. You don't feel ready yet to contribute a new pattern? Please start a discussion by [creating an issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/new). | ||
|
||
The simplest way to create a pattern is with your browser (see below). | ||
[Like the command-line better? See here for alternate instructions.](/meta/technical-git-howto.md) | ||
5. **Be a patterns advocate.** The patterns will become better and cover more topics the more people contribute their perspective and experience. A colleague told you about a novel InnerSource best practice? Please invite her/him to contribute to this repository! | ||
|
||
<img alt="Creating a new pattern" src="/assets/img/write-new-pattern.png" width="70%"> | ||
|
||
1. Login to GitHub & inside the [patterns web repo](https://github.com/InnerSourceCommons/InnerSourcePatterns), click on the 'Create new file' button | ||
2. Name the file like this example: "project-management-time-pressures.md" | ||
3. Use the [pattern template](https://raw.githubusercontent.com/InnerSourceCommons/InnerSourcePatterns/master/meta/pattern-template.md) to create your new [markdown](/meta/markdown-info.md) file with the description of your fledgling pattern; it does not need to be complete, as you can add to it later | ||
4. Enter a commit message | ||
* If you are asked to 'Commit directly' vs 'Create a new branch', see [branching details](#use-branches-when-creating-new-patterns) below. | ||
5. Propose this new file and then also create a Pull Request (PR) | ||
## How to get in touch? | ||
|
||
You're done! This creates a separate branch and creates a Pull Request (PR) all in one fell swoop! PR's are the mechanism we use for our Review process. See next steps in [Interacting with Pattern Reviews](#c-interacting-with-patterns-reviews). | ||
We are happy to support you in contributing to the InnerSource patterns or to just chat with you. You can reach out to us in the following ways: | ||
|
||
1. **Via Slack.** Join the InnerSource Commons [Slack instance](https://isc-inviter.herokuapp.com/) and enter the `#innersource-patterns` channel there. | ||
|
||
## Use Branches When Creating New Patterns | ||
We develop new patterns in branches with the naming convention: | ||
`pattern/<title-of-pattern-here>`. | ||
2. **During the patterns office hours.** We established a regular cadence of office hours for you to ask questions. You can find out about the next patterns office hours in the calendar at the bottom of [this page](https://innersourcecommons.org/resources/). | ||
|
||
If you are asked to 'Commit directly...' vs 'Create a new branch...' | ||
|
||
* Assure you select **'Create a new branch...'** and name the branch like this example: "pattern/project-management-time-pressures". | ||
* This occurs when writing a new pattern via the web interface (section A above). | ||
* Only [Trusted Committers](/meta/trusted-committers.md) (TC's) are asked this; we are adding most contributors as TC's. | ||
## License of Contributions | ||
|
||
The contents of this repository are licensed under [CC-BY-SA-4.0](LICENSE.md). By contributing to this repository, you grant us (and everyone else for that matter) the right to use your contribution in accordance with that license. | ||
|
||
## Other Tips For Submissions | ||
|
||
* Place each sentence on a new line. | ||
_GitHub_ allows leaving comments on a line-by-line basis. | ||
Review and comment on the content of submitted text is much easier if there are multiple lines on-which to leave comments. | ||
Sentences on consecutive lines will be collapsed into a single paragraph (like this one) for the final reader of the content. | ||
## Code of Conduct | ||
|
||
# B. Discussing Early Ideas in Issues | ||
|
||
If you feel that you need extra advice when dealing with patterns, please [open an issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues). This process is only needed when contributing early ideas that you are uncertain about. | ||
|
||
Here are tips on starting this discussion: | ||
|
||
* [Create a new ticket](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/new), add a concise title, and describe your problem. Think about the context of your problem and your expected output. Where do you see this problem most? What is the setup of your business and organization? Do you have opinions/ideas on what causes or leads-to the problem? | ||
* Ask any questions that you are unsure about. Are you unsure if this problem belongs here? Are you unsure on how to frame and explain the problem? | ||
* [Apply the label](https://help.github.com/articles/applying-labels-to-issues-and-pull-requests/) `Early Idea`. Labels can be found in the right column settings. | ||
|
||
After this process, it is our turn to drive you through the pattern creation process. We will help to land your idea and check if there are existing similar patterns. | ||
|
||
|
||
|
||
# C. Interacting with Patterns Reviews | ||
|
||
A pattern is said to be "in-review" or being "Reviewed" when we have a Pull Request with some amount of Pattern detail filled out. We then communally review, and comment-on, and OK these "in-review" patterns. Usually, we first look for a pattern with all the fields filled out, and then go through TWO peer-reviews. | ||
|
||
## Editing a pattern that is in-review | ||
Go ahead, edit away - we can always go back - and we encourage action over discussion. | ||
|
||
<img alt="How to edit an existing pattern" src="/assets/img/edit-existing-pattern.png" width="70%"> | ||
|
||
## Reviewing a pattern | ||
FIXME Explain how to add review comments and accepting a review. Basically, this is all done through Githubs web GUI around Pull Requests. | ||
|
||
FIXME Give tips for good reviews. We have done both interspersed comments, or pattern-wide advise. Be constructive. If you can fix the problem, [edit the PR](#editing-a-pattern-that-is-in-review) instead of leaving a comment. | ||
|
||
## Our Review Process | ||
Below are the procedural steps in our Review process: | ||
|
||
1. Decide which Maturity level your pattern is in: `Donut (Lacks solution)`, `Unproven`, or `Proven`; these all describe what state the *Solution* is in. | ||
2. Decide which Review Step you are in: Usually `Incomplete` or `Do 1st Review` | ||
3. Reviewers can now use the PR features to comment on the pattern. | ||
4. In most cases, we do two reviews, and the PR's labels should reflect `Do 2nd Review` etc. | ||
5. After reviews are complete, the reviewers or author should Revise and Finalize the pattern, eventually labeling it with `Accepted`. | ||
6. Once a pattern is `Accepted` by the reviewers, one of the [Trusted Committers](/meta/trusted-committers.md) (most authors are by this point) can Merge the PR on Github. This places the .md file into the master branch / root directory. | ||
|
||
## Completed Patterns | ||
When completed patterns (reviewed and accepted) are ready to be published from this InnerSourcePatterns repo to a Gitbook (PDF), [see our separate Publishing instructions](/meta/publishing.md). | ||
We do not yet have a fully formalized code of conduct yet. We expect all contributors to treat each other respectfully and help us to keep this community free of harassment and discrimination. |
This file contains hidden or 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
This file contains hidden or 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,63 @@ | ||
# Contributor Handbook | ||
|
||
This document lays out a basic guideline of how to write and contribute a new pattern. | ||
|
||
## Maturity Levels | ||
|
||
We defined four maturity levels for patterns: The higher a pattern's maturity level, the more strictly it was validated and the better is its writing. | ||
|
||
### In a Nutshell | ||
|
||
| \# | Name | Description | Time to merge | | ||
| ---- | ---- | ---- | ---- | | ||
| 1 | Initial | Contains an initial pattern idea or what we call a donut (a pattern with missing sections). | A few days / weeks | | ||
| 2 | Structured | Contains a complete pattern that it is not properly validated yet (e.g. because it only synthesizes an idea or the experiences from one instead of three organizations). | A few days / weeks | | ||
| 3 | Validated | The pattern is validated (e.g. because three or more instances exists and are synthesized by the pattern) and its writing is of high quality. | A few months | | ||
|
||
For the first pattern you contribute, you should aim for maturity levels `1: initial` or `2: structured`. | ||
|
||
If you want to help promoting a pattern one maturity level up, we suggest to first create an issue to discuss the matter and see if someone else is working on that already. After that, you can create a pull request with the necessary changes. | ||
|
||
To achieve a given maturity level a pattern has to satisfy the requirements for that given maturity level and lower levels. The following sections lay out the requirements per maturity level in detail. | ||
|
||
|
||
### Requirements: Level 1 - Initial | ||
|
||
Patterns (or other documents) of level 1 are stored in the directory `/1-initial`. | ||
|
||
- Validation requirements: | ||
- N/A | ||
|
||
- Content requirements: | ||
- The document is readible & comprehensible for other's than the author(s) | ||
- The author(s) contribute the contents according to the [license](../LICENSE.txt) & are allowed to do so | ||
- Thoughts and contents by third parties are quoted / referenced explicitly | ||
|
||
|
||
### Requirements: Level 2 - Structured | ||
|
||
Patterns of level 2 are stored in the directory `/2-structured`. | ||
|
||
- Validation requirements: | ||
- Is validated by at least one known instance | ||
- Alternatively: key elements of the pattern have been validated in separate contexts and, in consequence, it is justified to believe the full solution will function | ||
|
||
- Content requirements: | ||
- Complies with the [patterns format](pattern-template.md) | ||
- Complies with *basic style guide*(#) - *Oops! We have not yet developed this* | ||
|
||
|
||
### Requirements: Level 3 - Validated | ||
|
||
Patterns of level 3 are stored in the directory `/3-validated`. | ||
|
||
- Validation requirements: | ||
- Is validated by at least three known instances | ||
- Considers all known instances to the best of working group members' knowledge | ||
- Community agreement (via lazy consensus of trusted committers) on correctness of contents | ||
|
||
- Content requirements: | ||
- Uses & has no conflicts with working group terminology (defined by glossary / implicit usage) - *Oops! We have not yet developed this.* | ||
lenucksi marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- Fits & has no conflicts with existing patterns (of this maturity level or higher) | ||
- Thorough review by at least two trusted committers | ||
|
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.