reactphp / promise

Promises/A implementation for PHP.
https://reactphp.org/promise/
MIT License
2.38k stars 146 forks source link

Rename development branch to `3.x` and add installation instructions #212

Closed clue closed 2 years ago

clue commented 2 years ago

This changeset suggests renaming the development branch to 3.x and adds appropriate installation instructions. In particular, this makes it much easier to install the v3 development version or any version like this:

$ composer require react/promise:^3@dev
$ composer require react/promise:"^3@dev || ^2 || ^1"

This has originally been brought up in #204 by @Seldaek, but instead of defining a branch alias, this PR suggests simply renaming what is currently master to 3.x. This is in line with our existing 2.x and 1.x branches and means we do not have to update any alias definitions once we would start working on a potential future 4.x.

From a consumer's perspective, this means installation is now much easier, as targeting ^3@dev (or 3.x-dev) is semantically more obvious and safer than using dev-master. Additionally, keep in mind that branch names are development artifacts that are subject to change at some point in the future. Once we would decide to rename or delete any of our version branches, the ^3@dev reference would still be valid as it would also match stable versions if we have any ^3 tags at this point (which is safe to assume at this point).

Once this PR is merged, I will manually rename the master branch to 3.x. At the same time, I also propose to set the current default branch to 2.x until a stable 3.0.0 version has been released. This is more consistent with our website, which also renders the latest tagged release (2.x) instead of the latest development version (3.x). Once a stable 3.0.0 version is released, we should set the default branch to 3.x.

Also refs https://github.com/reactphp/async/pull/14 and https://github.com/reactphp/async/pull/11 for similar branch names used in react/async.

clue commented 1 year ago

Once this PR is merged, I will manually rename the master branch to 3.x. At the same time, I also propose to set the current default branch to 2.x until a stable 3.0.0 version has been released. This is more consistent with our website, which also renders the latest tagged release (2.x) instead of the latest development version (3.x). Once a stable 3.0.0 version is released, we should set the default branch to 3.x.

After discussing this matter again with @WyriHaximus and @SimonFrings last week, we've come to the conclusion that 3.x should be the default branch instead of 2.x to give more visibility to the current development. This should not otherwise affect development or any pending PRs but would be more consistent across the entire project, in particular with regards to the plans for the upcoming v3 as discussed in https://github.com/orgs/reactphp/discussions/472. I've updated the repository accordingly to select 3.x as a default branch.