codeigniter4 / shield

Authentication and Authorization for CodeIgniter 4
https://shield.codeigniter.com
MIT License
352 stars 130 forks source link

Dev: Simplify branching and release process #1025

Closed kenjis closed 6 months ago

kenjis commented 6 months ago

Now we have two branches, develop and master. https://github.com/codeigniter4/shield/branches/all However, I see no particular reason why master is needed.

There is already no master or develop in phpstan-codeigniter. https://github.com/CodeIgniter/phpstan-codeigniter/branches/all

I propose to remove master branch to simplify the branching and the release process.

lonnieezell commented 6 months ago

Personally, I'm a fan of the git flow method, which would keep master to push to before a release. I don't know how critical being able to do hot-fixes is in this library currently so we're probably ok to remove master. Of course, I'm sure that as soon as we do we'll run into a situation where we need a hotfix and a long-running feature we're debugging in develop lol.

kenjis commented 6 months ago

I have never used hotfix branches in CodeIgniter4 development. I have used the term hotfix release few times, but those are also normal releases that merge develop into master. So it is not hotfixes in the gitflow sense.

And if we really need to release a hotfix, we can branch out from the latest release tag, create a hotfix branch, and release from that branch. But I don't think we have to do that, we can just release it from develop as usual.

I would also like to make the release process easier so that it can be done immediately. This would make it possible to release every single PR (if we want).

paulbalandan commented 6 months ago

IMO, master is just the untagged copy of the latest release/tag, so keeping it is redundant. That's why phpstan-codeigniter uses a single branch.

In my experience lately, this single-branch approach is faster in terms of release (i.e., no need switching between branches).

kenjis commented 6 months ago

I have updated the release manual. See #1030

kenjis commented 6 months ago

Released v1.0.1 from develop. https://github.com/codeigniter4/shield/releases/tag/v1.0.1

and the release process has been simplified. https://github.com/codeigniter4/shield/blob/develop/admin/RELEASE.md

kenjis commented 6 months ago

Removed master.