Skip to content

PHPCS 4.0: Open invitation to join live stream April 14, 15, 17 and 18, 2025 #924

Closed
@jrfnl

Description

@jrfnl

As previously announced in #120, to have confidence in the PHPCS 4.0 release, I have been working behind the scenes to recreate the 4.0 branch as a fresh, improved branch with atomic and comprehensive commits for each change.

Aside from that I've also been preparing the additional changes which have been previously announced for the 4.0 release, including the majority of changes announced well before the repo take over, but never actioned.

I'm now reaching the point that this work is ready for the next step: getting it out in the open and replace the "old" 4.0 branch.

Options for publishing the new 4.x branch

Now, to do this, there are a number of options:

  1. Nuclear option: force push my local branch over the "old" 4.0 branch and be done with it.
    Pros: quick & straight forward to execute.
    Cons: does not allow for review or discussion about the changes, not transparent, does not allow for comparison between the "old" version of a change and the "new" version.
  2. Push a new 4.x branch with all commits and be done with it.
    Pros: quick & straight forward to execute, allows for comparison between the "old" version of a change and the "new" version.
    Cons: does not allow for review or discussion about the changes, not transparent, likely to lead to confusion about which branch will be the "real" 4.0 release.
  3. Create a new 4.x branch and create one humongously large PR with all the changes, leave this PR open for about a week to allow for review (if anyone dares to attempt it) and then merge if there are no objections. Remove the old branch once done.
    Pros: transparent, allows for review and discussion, allows for comparison between the "old" version of a change and the "new" version.
    Cons: makes reviewing the individual changes really hard, would make discussion about a subset of the changes hard, reviewing that PR would be daunting due to its size.
  4. Create a new 4.x branch and create successive PRs for all changes to this new branch (slow version), leave each PR open for about a week to allow for review and then merge if there are no objections. Remove the old branch once done.
    Pros: fully transparent, allows for review and discussion, allows for comparison between the "old" version of a change and the "new" version.
    Cons: would likely take over a year before all PRs would be merged, would waste a lot of time in rebasing and conflict resolution in the mean time until everything has been merged.
  5. Create a new 4.x branch and create successive PRs for all changes to the new branch (quick version), and merge these in rapid succession, with or without review. Remove the old branch once done.
    Pros: relatively quick, fully transparent, allows for review and discussion in individual tickets (even after they have been merged), allows for comparison between the "old" version of a change and the "new" version.
    Cons: time for review and discussion is severely limited.

Chosen option: rapid successive PRs, but with a twist

As I value transparency and input from the community, but also do not want to delay the 4.0 release by another year, I have made the choice to go for option 5, but with a twist: I will be live streaming while I'm doing this.

So, this is an open invitation for anyone interested to join the live stream and (live) review the PRs for the 4.0 branch (while we're waiting for CI to pass 😉).

Joining the live stream will give you a front-row seat for PHPCS 4.0 and allows for getting the inside scoop.

  • There will be plenty of time to ask any questions you have about what's coming in PHPCS 4.0.
  • There will be time to discuss any differences between the original branch and the new branch.
  • There will be time to review PRs and discuss the changes.
  • And time permitting, I'd be happy to discuss anything else PHPCS related you'd like to discuss.

I expect it will take about four days to get everything pulled and merged.

Where and When

Dates: April 14, 15, 17 and 18
Location: https://whereby.com/phpcs (no login or software install needed)

Monday April 14 Tuesday April 15 Thursday April 17 Friday April 18
08:30 - 12:00 08:30 - 11:00 08:30 - 11:00 08:30 - 11:30
13:30 - 16:00 12:00 - 16:00 12:30 - 16:00 12:30 - 16:00
18:00 - 20:30 18:00 - 20:30 18:00 - 20:30 18:00 - 20:30

All times listed are in UTC.

You can join for as little time or as long as you like. There are no obligations, though I value any input you can give review-wise.

If you are unsure when to join/when a change you are interested in will be handled, the order of the PRs/commits will be roughly as follows:

  1. Merge the PRs for the "Last 3.x" minor adding hard deprecations.
  2. Create the new 4.x branch and update CI and such.
  3. Remove everything that will be removed.
  4. Changes to the test framework.
  5. Changes to existing features.
  6. Tokenizer changes.
  7. New features.
  8. Various miscellaneous changes, like changes to the CS rules applied to PHPCS itself, code modernizations, documentation updates etc.

The precise timing will depend on how many people join, how much feedback the PRs get and how much discussion is had.
Once the live streams have started, I will post updates in this ticket every so often with an indication of where we are at that time.

After the live stream

  • Once everything has been merged to the new 4.x branch, the "old" 4.0 branch will be removed.
  • A 4.0.0-RC1 release will be tagged.
  • Please test and report any problems you find. Depending on feedback received, additional RC releases will be tagged.
  • And providing no significant problems are discovered, the real 4.0.0 release will then follow about a month later.

Getting ready for PHPCS 4.0

Aside from recreating the branch, I've also been preparing the necessary changes to the Wiki pages, including preparing both an "end-user" (ruleset maintainer) and a "developer" (external standards/integrations) upgrade guide for upgrading to 4.0.

The intention is to publish the wiki changes, including the upgrade guides, at the same time as the RC release. This should allow maintainers of external standards to start preparing for the 4.0 release once the RC has been tagged (maintainer time permitting, of course).

Feedback on these upgrade guides will, of course, be very welcome too.


/cc @asispts @dingo-d @fredden @GaryJones @greg0ire @kukulich @michalbundyra @Ocramius @sirbrillig @stronk7 @weierophinney @wimg

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions