Problem/Motivation
During the Drupal 9 development process, we've discovered that setting platform requirements (PHP version, supported databases, etc.) is best done early during the major branch development process. Setting these to "obvious" minima as soon as possible and then increasing them more afterward was also valuable.
Proposed resolution
- Continue adding PHP dev environments annually as soon as PHP alphas become available, and stable environments as soon as stable releases are available.
- Ensure that testing environments are available for the latest database versions before 10.0.x is opened.
- Require at least PHP 8.0 as soon as 10.0.x is opened. See #3173787: [policy] Require PHP 8.1 for Drupal 10.0 if a dependency does, otherwise require PHP 8.0. (up from 7.3 in Drupal 9).
- Determine similar obvious minima for supported databases based on support cycles, distro support, and hosting provider support as of when 10.0.x will be opened.
- Further increase the requirements as feasible.
- Set a deadline 1-2 months ahead of the initial 10.0.0-beta1 target deadline for finalizing platform requirement policies. (The final implementations can still be beta blockers.)
Remaining tasks
Issue fork drupal-3118147
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:
- 3118147-meta-set-drupal
changes, plain diff MR !1375
Comments
Comment #2
xjmComment #3
xjmComment #4
xjmComment #5
xjmComment #6
xjmComment #7
gábor hojtsyTagging so people find this issue alongside the ones being done in Drupal 9 for Drupal 10.
Comment #8
xjmComment #9
daffie commented@xjm: And when is the "initial 10.0.0-beta1 target deadline"?
Comment #10
daffie commentedAdded the 3 policy issues for the 3 by core supported databases:
Comment #11
daffie commentedAdded 2 policy issues regarding databases:
Comment #12
catchIf we're aiming for June 2022 for the actual release, then we're looking at April or early May (depending on how much we extend the beta period compared to Drupal 9's/a normal minor). So a couple of months before that puts us at Feb/March (and by then we should have actual dates set).
PHP 8 is in the issue summary, but we should probably open an issue for changing the requirements - it'll need a patch when the branch opens.
Comment #13
nod_Comment #14
andypostPHP 8.1 roadmap is https://wiki.php.net/todo/php81
Comment #15
megachriz@catch
I found an existing issue for this: #3173787: [policy] Require PHP 8.1 for Drupal 10.0 if a dependency does, otherwise require PHP 8.0. (up from 7.3 in Drupal 9)
It was originally titled "Drop PHP 7 support in Drupal 10"
Comment #16
gábor hojtsy@MegaChriz: that is still the policy issue, once decided a patch would be done against the Drupal 10 branch. That said, the Drupal 10 branch also does not yet exist in a viable form, it will get created when it can be meaningfully different from 9.4-dev (which also does not exist yet).
Comment #17
catchI've just updated the various child database issues of this one. The proposed solution in each look pretty sensible - and it seems worth adding a section to the requirements page in the handbook with 'not less than' minimum versions of each - we can follow-up with core patches and possible further increases if there are any later on.
Comment #18
gábor hojtsyAdded link to explicit issue for PHP 8 requirement.
Comment #19
catchLooking through all the sub-issues, it looks like due to the way release cycles are working out, we're only likely to raise the PHP and PostgreSQL requirements, leaving sqlite and MySQL/MariaDB the same.
However, it's already easy to see what the absolute minimum requirements for Drupal 11 are likely to be - for example if we don't require MySQL 8 in Drupal 10, we'll definitely require at least MySQL 8 in Drupal 11. So where we can identify a not-less-than increase now, we might as well document that somewhere alongside the Drupal 10 changes.
Comment #20
gábor hojtsy@catch One way to do that would be to open this same issue for Drupal 11 now and put the info there. Make it related to this issue. It is hard to tell how pressing preparing for Drupal 11 will be especially if Drupal 10 will launch on Symfony 6. In that case, other requirements will set boundaries of support time which we've usually seen being less predictable.
Comment #21
catch@Gábor Hojtsy makes sense, opened #3214954: [11.x] [meta] Set Drupal 11 platform and browser requirements at least six months before the release.
Comment #22
gábor hojtsyMarked the Drupal 11 issue postponed, but to reflect reality, we should mark this Active, since we are doing a lot of stuff here already :D
Comment #23
andypostAdded child #3228972: Remove startup configuration for the built-in PHP server when core require PHP 8.0
Comment #26
xjmRemoving credit for someone clicking on the issue fork button.
Comment #28
effulgentsia commentedAdded #3266764: [11.x] [policy] Treat SQLite as a dev (rather than prod) requirement and allow it to be raised in Drupal minors as a child issue.
Comment #29
gábor hojtsyMaking it clear that the deadline for these is the Drupal 10 beta.
Comment #30
xjmIt isn't though.
The outstanding task here is enforcing Composer 2 on the CLI.
Comment #31
gábor hojtsyhttps://www.drupal.org/about/core/blog/drupal-10-php-requirements-announ... announced that the PHP requirement will be announced 5 months ahead (not 6). It did not specify when the other requirements would be defined.
Comment #32
mherchelCross-linking #3251384: Remove support for UC Browser. My understanding is that we need to make a decision on that issue by this coming Tuesday (6mo before D10 is released).
Comment #33
catchPer @Gábor Hojtsy I think we only committed to giving 6 (or 5 for the earliest release window because it was already later than 6) months notice for the PHP version, since we knew that more time to prepare for a PHP 8.1 update was important both for hosts and contrib modules.
Having said that, if we have known changes we want to make (ucbrowser, composer), it's better to make those as soon as possible, no reason to delay.
For composer, I'm not sure we're going to be able to enforce using composer 2.2, you could be installing or updating to Drupal 10 with composer <= 2.1, and then we'd be trying to 'enforce' composer 2.2 during that process. I do think we can just document that we only support composer 2.2 or higher on the cli, and if people run into problems with lower versions, tell them to update, and if they don't run into problems, that's fine. Since automatic updates will need to interact with the cli version, we might be able to do more there like a hook_requirements() warning and/or refusing to do any operations etc.
Comment #34
xjmWith #3215870: Require Composer 2.3.5 for developing Drupal 10 core fixed and https://www.drupal.org/docs/system-requirements/composer-requirements updated and added to the handbook, I think the scope of this issue is complete.
We should still require whether to present a warning or error on the CLI for more than just core development, but that can be tracked in the beta blockers if needed, since the requirement is now announced and documented.