Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Problem/Motivation
Semantic versions for Drupal 8 were introduced in #2170443: [meta] Create a plan for implementing semantic versioning for core. Update status still tests update XML data with Drupal 7 major versions. There is no apparent test coverage for this. Given that this is very important part of our security infrastructure, it would be very important to get this right.
Proposed resolution
Add tests for when versions are released:
- 8.0.0
- 8.0.1
- 8.1.0-alpha5
- 8.1.0-beta3
- 8.1.0
- 9.0.0
Fix any issues found.
Remaining tasks
Do it.
User interface changes
None.
API changes
Likely none.
Comment | File | Size | Author |
---|---|---|---|
#17 | interdiff-2315849-15-17.txt | 13.93 KB | Devin Carlson |
#17 | core-semantic-versioning-tests-2315849-17.patch | 101.23 KB | Devin Carlson |
#15 | interdiff-2315849-11-13.txt | 80.78 KB | Devin Carlson |
#13 | core-semantic-versioning-tests-2315849-13.patch | 109.48 KB | Devin Carlson |
#11 | core-semantic-versioning-tests-2315849-11.patch | 45.53 KB | Devin Carlson |
Comments
Comment #1
drummUpdate status XML samples for future core versions can be generated by doing the release process on git7staging. It would be best to have a list of versions that are needed for test coverage, so they can be done all at once. I started a draft list under Proposed resolution.
There is a chance that update status should have different messaging for 8.1.0 being available vs. 8.0.1, they will be different enough upgrades. And we should check the messaging when both are available as upgrades.
Comment #2
Gábor HojtsyModifiers would be good to add, eg. 8.2.0-alpha1, what happens when you have that vs. 8.1.3 (also available) when you are on 8.1.2? :)
Also contrib versions would also be interesting, eg. Panels 8.2.x-3.1 to Panels 8.2.x-5.6 and/or Panels 8.3.x-1.2 or somesuch. If we think covering contrib here is too much of a pain, we should open yet another critical for that IMHO.
Comment #3
drummContrib is sticking to 8.x-y.z until #1612910: [policy, no patch] Switch to Semantic Versioning for Drupal contrib extensions (modules, themes, etc) decides on something different.
Comment #4
drummI should say contrib is sticking to version numbers like 8.x-1.2.
Comment #5
Gábor Hojtsy@drumm: given that 8.1, 8.2, etc. may have non-backwards compatible API changes, I'm not sure that can fly at all. Posted more about that at the issue you suggested: #1612910-184: [policy, no patch] Switch to Semantic Versioning for Drupal contrib extensions (modules, themes, etc). Anyway, since that is totally undecided so far, looks like we should focus on core only here for now and maybe open a contrib issue later if this is otherwise done :)
Comment #6
Gábor HojtsyLooks like they may not be that backwards incompatible anymore... So contrib will be generally compatible with 8.x. So ok, let's fix this for core and ignore contrib versioning for now. #1612910: [policy, no patch] Switch to Semantic Versioning for Drupal contrib extensions (modules, themes, etc) is not even a release blocker anymore.
I think the proposed numbers are good except I would add some extra suffixes as well to the mix to ensure they work. alpha and beta maybe :) Added those two the mix.
Comment #7
drummAttached are update status XML files as if each release has been created.
Comment #8
Devin Carlson CreditAttribution: Devin Carlson commentedTaking a first stab at this.
I didn't add semantic versioning tests for contrib modules/themes per #3-#6.
Comment #9
star-szrThank you @Devin Carlson!
The existing patch looks good but doesn't contain any -alpha, -beta, or 9.x.x releases; those should probably be added per the issue summary.
I think any messaging/UI concerns would be for another issue.
Comment #10
Gábor HojtsyAgreed with @Cottser.
@Devin: note @drumm has some sample update XMLs above with alpha and beta stuff.
Comment #11
Devin Carlson CreditAttribution: Devin Carlson commentedThanks for the review and extra info Cottser and Gábor!
Working on adding additional coverage per #9. Attaching a reroll of #8 to verify that it passes after all of the changes made over the last couple of weeks (will set back to needs work).
Comment #12
effulgentsia CreditAttribution: effulgentsia commented#11 is green, yay. Back to needs work per the comment.
Comment #13
Devin Carlson CreditAttribution: Devin Carlson commentedAn updated patch that adds coverage for -alpha, -beta and updating from Drupal 8.x.x-x to 9.0.0.
Comment #14
Gábor HojtsyDevin, can you post an interdiff between 11 and 13? That would help reviewing it immensely. Reviewing a 100k patch otherwise is not trivial :)
Comment #15
Devin Carlson CreditAttribution: Devin Carlson commentedInterdiff between #11 and #13.
Comment #16
effulgentsia CreditAttribution: effulgentsia commented#13 looks really good to me, especially all the extra cases covered by the
test*Available()
tests. But, I'm wondering why the following tests:all require
Looks to me like they're testing stuff that's independent of starting version, so I don't see what we gain by iterating all the versions. Would it make sense for these tests to just test an 8.0.0 starting point?
Also, same question for
UpdateUploadTest
.Comment #17
Devin Carlson CreditAttribution: Devin Carlson commentedAddressing the feedback in #16.
Comment #18
effulgentsia CreditAttribution: effulgentsia commentedThanks!
Comment #19
alexpottCommitted cac5f7a and pushed to 8.0.x. Thanks!