Release branches
* May branch from: develop
* Must merge into: develop and master
It was supposed to be done that way; I did not do the pl2 release merges and have been ill. I’ll straighten it out ASAP.
I assumed that the two merges of the release branch (into develop and master) would be done at the same time. It seems wrong to have master ahead of develop in some ways and develop ahead of master in others and putting off the merge into develop is just going to increase the odds of merge conflicts. I don’t think the current merge conflicts would be there if this had been done.
Again, this was supposed to happen. I will correct this for all future releases.
1. Merge release branches into develop at the same time they are merged into master (or at least the same day) - no commits to develop between the two merges.
Release branches should only have bugs identified during the release phase fixed. These will make it back into develop when the release is completed. That is our process. If it’s a critical bug, it will be merged to develop immediately so folks can get on with their work. This is the intention of the process.
2. Don’t commit bug fixes in the develop branch if a release branch is active unless the bugs are in new feature code.
Definitely not; the whole point of release branches is to allow development to continue.
3. Hold off on direct commits to develop if a current release branch exists that hasn’t been merged yet, commit to a feature branch instead (this might be just a bad idea).

This is why I believe every issue, or related set of issues, be they bug fixes or not, should be submitted as an "issue" branch. It is up to the integrators to decide when and where to merge these branches. You can always maintain your own branch and integrate whatever issues you want to. IMO, if everyone would fix issues and push their changes as issue specific branches in their fork, integration work would be much easier, and our ability to plan and execute successful releases will be increased. It also makes it easier for people to share fixes or features before they are integrated.
It’s hard for me to know which branch to branch from to work on an add-on or book topic. The develop branch is the obvious choice, but I often find serious, but not critical bugs in a release branch, and some of those, I could submit fixes for with a pull request to the release branch. If I find the same bugs while on the develop branch, my pull requests would be to the wrong branch and would be unusable to patch the release branch, even though that’s where they belong. And, as I said, commits in the release branch seem to often be necessary for me to continue working.
Yes, I’ve always done that and I think it’s essential -- one issue per issue branch unless they’re interdependent.
This is why I believe every issue, or related set of issues, be they bug fixes or not, should be submitted as an "issue" branch. It is up to the integrators to decide when and where to merge these branches. You can always maintain your own branch and integrate whatever issues you want to. IMO, if everyone would fix issues and push their changes as issue specific branches in their fork, integration work would be much easier, and our ability to plan and execute successful releases will be increased. It also makes it easier for people to share fixes or features before they are integrated.
I was thinking that it would be important for the issue branch to be based on the branch you’re going to merge into, but I guess the odds of the same files having been modified by someone else are about equal for the develop and release branches.
As for the pull request, it doesn’t ultimately matter, as the integrators should be able to handle the merge into whatever branch is necessary when/if the request is integrated.
It isn’t always that simple if you’re working on an add-on that’s being git-ignored and you find a bug in the core. The fix may or may not belong in the branch you’ve branched from. It seems that the right thing to do would be to create an new issue branch based on develop or the release branch, whichever is more appropriate and fix it there, but I find it difficult to predict whether a fix should go in develop or in the release branch and by the time the pull request gets looked at, the release branch might not exist. And, in the pull request, you specify the branch you’re suggesting to pull the commit(s) into. Also, if it goes into develop after the release branch is merged, it may be a while before it’s available in a release (making the add-on not work until then). There’s that patience thing again.
And choosing which branch to branch from, if working on individual issues should be no problem—if you are helping test a release by following the release branch, then branch off of it if you find a bug that must be fixed before release. If you are working on a feature or improvement that you intend to have included in the "next" release, then use develop.

If you are developing add-ons, you need to use actual releases IMO. Developing add-ons on in-development code is potentially misleading and regular users can use it if a core bug interferes with the way you’ve written it. Wouldn’t you provide the workaround for the releases you are targeting with the add-on then go back and offer a bugfix to the core based on that? At that point it could be based off the release tag. I’m a little confused as to what you are trying to accomplish, cause you can’t release the add-on dependent on a core fix to the public anyway...
It isn’t always that simple if you’re working on an add-on that’s being git-ignored and you find a bug in the core. The fix may or may not belong in the branch you’ve branched from. It seems that the right thing to do would be to create an new issue branch based on develop or the release branch, whichever is more appropriate and fix it there, but I find it difficult to predict whether a fix should go in develop or in the release branch and by the time the pull request gets looked at, the release branch might not exist. And, in the pull request, you specify the branch you’re suggesting to pull the commit(s) into. Also, if it goes into develop after the release branch is merged, it may be a while before it’s available in a release (making the add-on not work until then). There’s that patience thing again.