This is a suggestion for us to automate releases as much as possible. I believe as the project grows it would be helpful for us to be able to focus on CODE QUALITY, PERFORMANCE and FEATURES without worrying about releases as much as we are now. This will allow us to focus on reviewing pull requests more thoroughly, and enforce of standards for community contributions while at the same time removing the burden of working and synchronizing project releases.
DRAFT FOR REVIEW
[patch | minor | major] Changes title
Issue: [link to issue]
Description of the changes, describe why are the changes
presented are necessary
- List of changes
- List of changes
- List of changes
### What can we expect after these changes
Describe in a small paragraphs the behavior changes that
are introduced by the commit. This will make it easier for
future developers to understand not only what has change
but how and why.
Use already existing scripts for releases
We should have automated releases available to all Amber Framework repositories
We can have the version number be bump for each PR, so a PR will have 2 commits, 1 with the actual work perform and a second commit bumping the version number
Can we just set the repo settings to only allow for squash pr merges?
@jwaldrip Occasionally it's necessary to merge without squashing. For instance if someone submits a PR but a core member needs to fix something before merge. It's nice to be able to see both of those commits instead of just the last committer getting credit for all the work. This happened with a PR from bcardiff over the holidays making amber work with 0.24.1. He submitted and then became unresponsive for a couple necessary changes.
Another reason is that during releases we need to show 2 commits or else stable is off from master.
@amberframework/core-team In the past we've had the rules that largely have been followed.
I'm mostly fine with the rest of the suggestions.
I'd also like to propose that if a PR will touch more than 10 files we discuss it in detail in an issue before submitting a PR.
Codifying commit messages and branch flow is going to be a difficult proposal to keep up. I see what you're trying to do, but I don't think it's going to make the projects around here friendly for contributors because it creates an additional burden on a contributor to modify their own workflow to fall in step. As @elorest has pointed out, there are always going to be exceptions.
I do not support the idea of cutting releases automatically, regardless of the contents of the release. What if someone forgets to tag a pull request as [breaking] 20min before the automatic release trigger and it goes out with a patch bump before it can be stopped? It's simply too risky.
This is going to be something that grows and builds over time as requirements change and are added to each release. As a first step, I'd like to suggest simply keeping track of a raw list of items required to make a release happen.
Once the steps are tested and understood, perhaps then a script can be written which allows automatic releases to take place via script, CI, or private website. Until then, documenting the _manual_ steps required to create a release allows _everyone_ to discuss the steps, innovate and simplify, and move forward.
Codifying commit messages and branch flow is going to be a difficult proposal to keep up. I see what you're trying to do, but I don't think it's going to make the projects around here friendly for contributors because it creates an additional burden on a contributor to modify their own workflow to fall in step
I can definitely see that happening, maybe being to explicit in the commit message is not viable at the moment. But is very discouraging when you see very vague commit messages, and trying to understand changes in a PR. Maybe adding the tags [patch | minor | major] in the commit is a little too much but well documented and structured commit messages should be a requirement. People who is not used to will find it cumbersome but trust it would be soon appreciate, specially when you do a git log
Not to say that the community is really big, but I do not see a lot of burden when making contributions to follow these steps. This makes the person contributing to be very thoughtful. One thing I didn't note is to require specs (good test coverage) for each pull requests.
What if someone forgets to tag a pull request as [breaking] 20min before the automatic release trigger and it goes out with a patch bump before it can be stopped?
Nothing gets deployed. We can automate a lot of this. Quite frankly as developers, releases should be something natural and easy to do in the workflow.
...documenting the manual steps required to create a release allows everyone to discuss the steps, innovate and simplify, and move forward.
Completely agree right now thats more of a black box. But I definitely agree that documenting would help to make improvements
Maybe we're not disagreeing as much as I initially thought.
The situation I don't want to see is:
help wanted sign on an issue and decides to solve itClosing this issue. I think the current process is sufficient for now. We can revisit this if we find something is not working.
Most helpful comment
Maybe we're not disagreeing as much as I initially thought.
The situation I don't want to see is:
help wantedsign on an issue and decides to solve it