-
Notifications
You must be signed in to change notification settings - Fork 195
Move Release Process pattern to L2 (Structured) #524
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
spier
merged 29 commits into
InnerSourceCommons:main
from
dgrizzanti:publish-release-process-pattern
Aug 9, 2023
Merged
Changes from 19 commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
8110c21
Move Release Process to structured
dgrizzanti c978ac0
Update title
dgrizzanti 198eafd
Update title
dgrizzanti 667272a
Update patterns/2-structured/release-process.md
dgrizzanti 3c7fabe
Update problem category for release process
dgrizzanti 91a648d
Updates to Context and Force
dgrizzanti ecd71f6
Remove trailing whitespace
dgrizzanti c7c8623
Update README.md
dgrizzanti 400fb3c
Fix InnerSource spelling
spier 79cd6cc
Formatting
spier a4191bc
Spelling
spier 317e86a
Update patterns/2-structured/release-process.md
dgrizzanti ca0442f
Update patterns/2-structured/release-process.md
dgrizzanti 7453c9a
Update patterns/2-structured/release-process.md
dgrizzanti fc233f1
Update Patlet
dgrizzanti b63edfa
Restructure Problem and Context
dgrizzanti 55f1fae
Merge branch 'main' into publish-release-process-pattern
dgrizzanti 776e176
Merge branch 'main' into publish-release-process-pattern
dgrizzanti aa3d24c
Update README.md
dgrizzanti 1f3d132
Merge branch 'main' into publish-release-process-pattern
spier 3083c96
Update patterns/2-structured/release-process.md
dgrizzanti 8188853
Update pattern-categorization/innersource-program-mind-map.md
dgrizzanti 93a24b5
Update patterns/2-structured/release-process.md
dgrizzanti c7abae2
Update Patlet text
dgrizzanti 5abbd99
Update patterns/2-structured/release-process.md
dgrizzanti 906c167
Clean up Context section
dgrizzanti 2e9b370
Clean up solution section
dgrizzanti 27c759e
Fix some spelling
spier 01e4a76
Copy updated title+patlet into the README
spier 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
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 was deleted.
Oops, something went wrong.
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,64 @@ | ||
## Title | ||
|
||
Standard Release Process | ||
|
||
## Patlet | ||
|
||
Teams are reluctant to use InnerSource projects that they are unfamiliar with when they are unclear about the release process. | ||
dgrizzanti marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Providing clear release notes and a published artifact gives people confidence you are publishing a quality product. | ||
|
||
## Problem | ||
|
||
When a team is deciding whether to use an InnerSource project, one of their considerations is whether they trust that they can rely on the given project for an extended period. Switching the tools/projects that they are using has a cost, so they only want to make those investments when necessary and has tangible benefits. | ||
dgrizzanti marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
It is common practice for Open Source projects to have versioned releases, with notes documenting breaking changes, and new features along with either a published binary or link to a Docker image. This practice may not be as transparent or well documented/visible for InnerSource projects, modules, etc. | ||
|
||
InnerSource projects that don't have a published artifact or release process reduces trust. Teams won't know when they can expect the next release, when breaking changes are introduced, etc. | ||
|
||
## Context | ||
|
||
Large organizations produce a lot of internal software, much of which could be reused by teams across the company. Operational tooling, software libraries, and Infrastructure as a Service modules are all examples of this. Most large organizations don't publish internal software to be consumed by other teams in the company, however. This can occur either because they are too busy provide documentation or don't realize it's value to others. | ||
dgrizzanti marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
An internal or public source repository should be available where source code is stored, but teams lack a process for making software consumable by outside teams. | ||
|
||
As an organization grows and more internal software is written, the value of this pattern grows. | ||
|
||
## Forces | ||
|
||
### Difficult for organizations that don't have a central CI/CD system | ||
|
||
For organizations that don't provide engineers a centralized CI/CD system, automating a build and release process can be challenging. The team may need to stand up their own tool (Jenkins, Drone, etc). Without a CI/CD system, builds and release notes can still be produced, however, it may require a local build of the software and manual upload to whichever tool is hosting build artifacts. | ||
|
||
### Added burden of publishing release notes | ||
|
||
In addition to building your source code, writing release notes can be tedious without the ability to auto-generate a list of git commits. This would be left for someone to do manually, in addition to writing more high level details on a release. | ||
|
||
### Increased difficulty without a location to host artifacts | ||
|
||
If a company does not provide a centralized location for storing build artifacts (jars, npm modules, etc.) and docker images, engineers may be left deciding for themselves where is appropriate to store versioned software. Tools like GitHub provide this for you, however, if a company is not using one of these popular tools, this could pose a burden. | ||
|
||
## Solution | ||
|
||
- CI/Delivery Pipeline is located within your repo to build artifacts (binary, docker image, jar, etc) | ||
dgrizzanti marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- Releases and accompanying build artifacts are generated by the CI system | ||
dgrizzanti marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- Release includes notes on New Features, Bug Fixes, and any "Breaking Changes" specifically called out | ||
dgrizzanti marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
A good example of quality release notes can be found [here](https://github.com/jaegertracing/jaeger/releases). | ||
|
||
## Resulting Context | ||
|
||
Teams who come across your project will see published release notes and gain confidence in your tool. Published artifacts also make using your product easier and quicker to adopt. Having well-defined and visible processes such as these also help with cross-team collaboration and new contributors. Folks can be confident that their contributions are made available and distributed in a reasonable amount of time with a clear usage path. | ||
|
||
Release notes are also a great opportunity to [praise participants](praise-participants.md)! As we know, [documentation is extremely important](project-setup/base-documentation.md) for new folks looking to get involved with your project. Praising outside teammates for contributions, including documentation and release notes, is a great way to foster community and grow your user base. | ||
|
||
## Known Instances | ||
|
||
* Comcast (multiple projects) | ||
|
||
## Authors | ||
|
||
David Grizzanti | ||
|
||
## Status | ||
|
||
Structured |
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.