-
Notifications
You must be signed in to change notification settings - Fork 193
Add new pattern for Release Process/Published Artifacts #332
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
Conversation
Thanks for submitting this pattern @dgrizzanti. Could you move the pattern file to folder We typically add most patterns in that level/maturity as a start, and then improve the pattern through multiple reviews in order to level it up :) Basically getting more eyeballs onto the pattern over time. I will take a closer look at this in the coming days. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some general comments on the current pattern
@dgrizzanti feel free to work in the feedback from @dicortazar first, and the resolve the respective comment threads. If you were to move the file now, I suspect that the inline comments might not work 100% properly any more. Not sure though. Feel free to try, either way we will learn something about GitHub reviews here :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I finally had time to take a closer look at your pattern.
It looks pretty good overall already, thanks for sharing this with us.
With a couple of changes we could merge this as an Initial pattern already, as that will make it easier for interested readers to discover it, which in turn will help us to improve this pattern over time.
I had some general thoughts/questions about this pattern. Curious to hear what you think:
- how are release notes tied to the artifacts? would it make it easier to write the pattern if the pattern was only about one of these things, or do they together so naturally that you cannot talk about one without also talking about the other?
- does this pattern exclusively help with getting teams to adopt an InnerSource project? Or does it also help with contributions and cross-team collaboration? If the latter, then we could add this to the Resulting Context for example.
- does it matter for this pattern if the given InnerSource project is a library, a module, a web app, or something else? or are the instructions in the pattern always applicable, no matter what type of project we are looking at?
Overall I really like that this pattern is fairly short at this point.
In the inline comments you will see that my suggestions are focused on extending it "just enough" so that it becomes easier for readers to understand what you mean.
Thanks again for your contribution!
|
||
## Problem | ||
|
||
The common code in the shared repository doesn't have a published artifact or publicly viewable release process. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The common code in the shared repository doesn't have a published artifact or publicly viewable release process. | |
When a team is deciding whether or not to use an InnerSource projects, 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 sporadically. | |
It reduces trust if the given InnerSource projects doesn't have a published artifact or publicly viewable release process, as the team won't know when they can expect new features or the next release, how breaking changes are handled, etc. |
I would elaborate on the Problem section a bit. e.g. what specifically is the problem about an unclear release process or missing artifacts? In which situations do the teams need those? It is fine to repeat parts of the Patlet, as the Patlet is a summary of the whole pattern.
One way that helps me think about the Problem section is "Why is this a problem"? e.g. in your case somebody might argue that release notes are not necessary. How would you convince that missing release notes are indeed a problem?
I left some ideas in the suggestion but this just represents what I am guessing what you mean. So feel free to change this entirely :)
## Solution | ||
|
||
- CI/Delivery Pipeline is located within your repo to build artifacts | ||
- Release notes generated by CI system at build time |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Release notes generated by CI system at build time | |
- Release notes generated by CI system at build time |
How do good release notes look like? Do you have an example that you could share here?
The example could also be from an open source project if you like.
One could also provide some sort of template for such release notes, similar to the templates provided in this pattern: https://patterns.innersourcecommons.org/p/base-documentation (this one is a good pattern to use as reference for your pattern, as they seem similar in nature)
Feel free to leave any of this for future improvements to this pattern, as I don't want to introduce unnecessary scope creep :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add a link to an to example to help drive the context (a project with an example of releases + release notes)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added an example in the latest updated
Co-authored-by: Sebastian Spier <github@spier.hu>
Co-authored-by: Sebastian Spier <github@spier.hu>
Co-authored-by: Sebastian Spier <github@spier.hu>
Co-authored-by: Sebastian Spier <github@spier.hu>
I think the release notes are more tied to the "release" than to the artifact. I pulled in your suggestion on "Published Releases and Published Artifacts" but wondering if it would be easier to separate these. Publishing artifacts to an internal repo also bring in some "DevOps" topics so I'm thinking it could be a separate, but related pattern. Do you have any strong feelings on that?
I think it helps with both. If I see a project with a clear release process and/or release notes, I'm more likely to use it. Also, having an idea of release cadence and process encourage folks to contribute. I can add detail to the Resulting Context section.
It would likely only applicable to projects that are released and versioned, but I think that applies to all the types you mentioned. Release artifacts may be different depending on the type of project so that may be another reason to separate that.
Got it - I'll expand the Resulting Context context section and depending on what we decide with the published artifacts we can make additional changes. |
Thanks for the comments @spier - let me know how you feel about splitting the release and artifacts ideas. I can see both sides but if we can to keep each on the small side, this might be worthwhile. |
Thanks for the additional input about how you are are reasoning about this pattern.
I am going back and forth about this one as well. I am leaning towards keeping it as a single pattern for now, and potentially splitting it later.
Once that is done, we could do either of these:
How does that approach sound for you? |
@spier made some updates based on the comments and added a line to Status about the potential future split |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Thanks for your contribution @dgrizzanti. I will try to figure out now what the markdown linter was complaining about :) |
Suggestion for this pattern would be to live under Begin -> Project Setup once it moved to "Structured". Looking for feedback and/or suggestions on what else folks would like to see expanded here. I can add more detail to those section as needed. Thanks!