Problem/Motivation

We're compatible with PHP 8.3 on the 11.x and 10.2.x branches and should make it the default PHP version on the 11.x for MR runs.

10.2.x can continue to default to PHP 8.2 since that's the recommended version.

Steps to reproduce

$ docker run --rm -it --pull=always drupalci/php-8.3-apache:production php -v
production: Pulling from drupalci/php-8.3-apache
1f7ce2fa46ab: Pull complete 
68efc844fce1: Pull complete 
Digest: sha256:e620d309b390e9223ecb5d2e64464475510ac8579b2946b7e7e981339cbb7df8
Status: Downloaded newer image for drupalci/php-8.3-apache:production
PHP 8.3.0 (cli) (built: Nov 24 2023 01:55:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.0, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.0, Copyright (c), by Zend Technologies

Proposed resolution

set default to 8.3 for all jobs and move 8.2/mysql8 to daily jobs

Schedule this for after the 10.2.0 per #12.

Remaining tasks

review/commit

User interface changes

API changes

Data model changes

Release notes snippet

Issue fork drupal-3400984

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

catch created an issue. See original summary.

andypost’s picture

catch’s picture

8.3 stable is out, so we should definitely do this on the 11.x (to also become 10.3.x) branch. 10.2 can stay on PHP 8.2 as the default I think.

andypost’s picture

Status: Active » Needs review

Created MR for review

andypost’s picture

Also set 8.3 as default for composer/lint jobs

andypost’s picture

Issue summary: View changes
andypost’s picture

I bet it needs follow-up to increase \Drupal::RECOMMENDED_PHP later

EDIT a-la #3397110: Increase RECOMMENDED_PHP to 8.2 for Drupal 10.2

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

8.3 seemed to run fine so marking it as that's all the ticket said.

But could we still have it run against 8.2 for a while? Doubt most people are running to 8.3 on actual projects just yet.

catch’s picture

@smustgrave 10.2 will keep running 8.2 as the default job, so every cherry-pick to that branch will get tested. We also have all the other on-commit and scheduled jobs too going back to PHP 8.1

longwave’s picture

Status: Reviewed & tested by the community » Needs work

Needs rebase following #3404487: Run child jobs in sequence?

This will also make it harder to cherry-pick other CI config changes between 11.x and 10.2.x if we start to diverge.

catch’s picture

I think it would be fine to schedule this for after the 10.2.0 release or early in the new year so that it's only getting patch cherry-picks and we potentially have less gitlab changes to make.

andypost’s picture

andypost’s picture

Status: Needs work » Needs review

rebased and fixed

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

So this shouldn't be merged until 10.2.0 is out or does the rc1 count?

quietone’s picture

Title: Make PHP 8.3 the default environment for gitlab CI runs » [post 10.2.0] Make PHP 8.3 the default environment for gitlab CI runs
Issue summary: View changes

Updating the title to reflect #12

xjm’s picture

Can't we just go ahead now since the last patch release of 10.1 has already been created?

catch’s picture

@xjm this is more about backports of gitlab YAML changes between 11.x and 10.2.x.

10.1.x was already very out of sync to the point we were unable to backport a lot of gitlab improvements to that branch due to merge conflicts. Once we make this change, it'll be harder to backport gitlab changes to 10.2 too.

Probably doesn't matter that much since at this point 10.2 will only get on-commit and scheduled runs most of the time and is unlikely to be an MR target, but since we're already running PHP 8.3 on commit a small delay seemed worth it to keep things in sync.

Once we require PHP 8.3 in 11.x, we'll have to do this then and also remove all the older PHP versions from the YAML, so it'll massively diverge at that point anyway I guess.

catch’s picture

Title: [post 10.2.0] Make PHP 8.3 the default environment for gitlab CI runs » Make PHP 8.3 the default environment for gitlab CI runs

Still no hurry here IMO but we're officially after 10.2.0 so re-titling.

andypost’s picture

FYI release of PHP 8.3.1 this week

bramdriesen’s picture

There is now also an RC ready for 8.3.2, so I guess it won't take ages before we see that one land as well.

So we're still waiting on the Drupal 10.3.x branch here, correct?

andypost’s picture

minimized amount of changes in MR

catch’s picture

So we're still waiting on the Drupal 10.3.x branch here, correct?

We can commit it to 11.x and not 10.2.x, and then 11.x will also become 10.3.x later, so it's not blocked on branching. It's just a question of making gitlab YAML backports harder.

bramdriesen’s picture

I guess we can do that then to move forward with #3413268: Add PHP 8.3 requirement to Drupal 11.0.x?

Also checked the latest changes in the MR and still looks good!

longwave’s picture

Status: Reviewed & tested by the community » Fixed

I am a bit confused about the chaining of the on-commit and daily runs, but let's see what happens when this is committed.

Committed aec5864 and pushed to 11.x. Thanks!

  • longwave committed aec5864a on 11.x
    Issue #3400984 by andypost, catch: Make PHP 8.3 the default environment...

  • catch committed b1fbff58 on 11.x
    Revert "Issue #3400984 by andypost, catch: Make PHP 8.3 the default...
catch’s picture

Status: Fixed » Needs work

I think this broke HEAD, reverted for now: https://git.drupalcode.org/project/drupal/-/pipelines/76250

longwave’s picture

We are dropping PHP 8.2 and below for Drupal 11, so let's just remove that here.

longwave’s picture

Status: Needs work » Needs review

Opened a new MR that drops support for PHP 8.1 and 8.2 in 11.x pipelines.

longwave’s picture

The "needs" chains are quite annoying and difficult to get right, do we strictly need them? Is there a better way?

catch’s picture

We added them so that on-commit and daily pipelines would run one environment at a time instead of all at once, meaning that (hopefully) the same runners/pods can be used for the entire pipeline rather than having to start enough pods to run 5-10 environments at once.

andypost’s picture

Status: Needs review » Reviewed & tested by the community

Removal of previous PHP will help to backport changes from 10.x

  • catch committed 1e827843 on 11.x
    Issue #3400984 by andypost, longwave, BramDriesen, catch: Make PHP 8.3...
catch’s picture

Version: 11.x-dev » 10.3.x-dev
Status: Reviewed & tested by the community » Patch (to be ported)

Committed/pushed to 11.x, thanks!

I think we should also make 8.3 the default environment on the 10.3 branch, 10.2 will still run against 8.2 on commit, so marking for backport there.

longwave’s picture

Status: Patch (to be ported) » Needs review

Changed 10.3.x to run on PHP 8.3 by default, rearranged the "needs" chains to fit.

catch’s picture

Status: Needs review » Reviewed & tested by the community

The various jobs on https://git.drupalcode.org/project/drupal/-/pipelines/113668 all look good, which is about as much as we're going to see without committing this.

alexpott’s picture

Status: Reviewed & tested by the community » Fixed

Committed d8b80ec and pushed to 10.3.x. Thanks!

  • alexpott committed d8b80ec4 on 10.3.x
    Issue #3400984 by andypost, longwave, BramDriesen, catch: Make PHP 8.3...

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.