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.
At the last scrum we raised the point that when installing a stable version of Aegir you get the core version from the day of the Aegir release.
As making an Aegir release is a process that takes considerable time we're thinking of doing a mini form just for the core updates.
Comment | File | Size | Author |
---|---|---|---|
#19 | minor_release_to_update_make-2698027-19.patch | 1001 bytes | helmo |
#19 | minor_release_to_update-2698027-19.patch | 2.09 KB | helmo |
#11 | minor_release_to_update_make-2698027-11.patch | 1001 bytes | helmo |
#10 | minor_release_to_update-2698027-10.patch | 1.14 KB | helmo |
Comments
Comment #2
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commentedLooking at the release.sh script in the provision repo I'm uncertain.
We don't seem to lock a Drupal core version number in our makefiles.
And the Debian package does not contain the full hostmaster platform.
So the case where it fails is when the tar/zip from https://www.drupal.org/project/hostmaster is downloaded.
Lacking support for contrib semantic versioning we would have to call it 3.5. Not a huge issue, but the 7.x-3.x branch has new commits. So would we add a new release tag on a feature branch, to be merged back later?
I've been looking to see if there's an issue about this from other distributions... but have not found it yet.
Comment #3
colanAccording to the documentation for hostmaster-migrate:
So we shouldn't need to provide minor releases of Aegir (although it would be nice); folks can simply run this command.
However, as per #2607972: How to cleanly update hostmaster ? and the attempt I made yesterday, this doesn't actually work. I was on Drupal 7.42 before, and on 7.42 after, even though the command should have moved me to 7.43.
So either:
Comment #4
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commenteddrush @hostmaster hostmaster-migrate --makefile=/var/aegir/src/provision/new.make opc.initfour.nl /var/aegir/hostmaster-7.x-3.4-xxx
custom makefile (based on aegir-dev.make:
Comment #5
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commentedWe could update aegir-release.make with this... then a new install won't get the zipped up hostmaster profile from D.o but will download core and all the golden contrib modules separately.
This adds a risk ... when core is updated with something incompatible for us our users find out.
But as we don't depend on core patches it might be a risk we're willing to take.
The advantage is that someone installing the stable version after core has made a new release will get the updated core.
Comment #6
colanTo answer #3 (thanks helmo), this only works if on unstable. Stable will fetch the original core release.
I don't think #4 is a good solution given that it just broke my system:
And then if I try surfing to the site, I get:
Going to try the following instead:
Hopefully that'll work better.
Comment #7
colanTurns out that wasn't necessary. This is what I came up with, and it proved successful:
I added the details of this to the docs. Please review the commit.
Maybe we can simply recommend this process instead of pushing out minor updates? It's still a bit risky, but it's less risky than running with a known security vulnerability. And I'm quite sure that Drush maintains its own backups so these can be restored if there's a problem.
Comment #8
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commented@colan I only added some styling to your docs commit.
About #6, 'Replacing the existing site at' hints that the new platform already had a sites/aegir.dev-trusty.example.com directory. Which should not be there is it were a new platform that was just build by drush make.
I tried my makefile from #4 manually. And it builds a functional platform, with the core update. However for the Aegir modules such as hosting it takes the latest dev.
In the hostmaster repo we specify 7.x-3.x in hostmaster.make, and no version (thus stable).. in drupal-org.make.
We should probably move to pinning the specific versions in hostmaster.make. E.g. when I would like to install hostmaster 3.1 today I would still get the latest dev version of hosting. And when we were to hostmaster.make to use stable versions it would install hosting 3.4 for a hostmaster 3.1 platform :(
Comment #9
colanAgreed. I didn't even realize it worked that way. 3.1 should always be the same!
Comment #10
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commentedThis might be it. It switches the makefile for hostmaster just for the stable release. like we do for aegir.make. With this script change we atleast get stable versions on later buids.
We will have to start pinning versions in drupal-org.make to solve this completely, see patch 2.
Comment #11
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commentednow a patch with content ;)
Comment #12
ergonlogicFor reference, here is the issue where we switched to using the distro tarball: https://www.drupal.org/node/2002114. I'm still astonished that distributions need new releases to track each Drupal core release.
Comment #13
ergonlogicI've asked for guidance on best practices from the d.o infrastructure team: #2726767: Best practice to update core version in distribution?. Let's see what they have to say.
Comment #14
ergonlogicDo note that our distro has a
no-core
tarball: https://www.drupal.org/node/2665636. This appears to bundle all the contrib components, and so would effectively pin all versions.I don't see any convenient way to use this in Drush Make, but being a co-maintainer, I could help build out a proper solution for this.
In the mean time, perhaps we could just deploy the no-core tarball as a library, using some combination of
download
,subdir
, anddirectory_name
and/ordestination
: http://docs.drush.org/en/master/make/#library-options?Comment #15
ergonlogicFYI: https://github.com/drush-ops/drush/issues/2189
Comment #16
ergonlogicThat feature request was simpler to implement than I had thought. The next version of Drush 8 should include it. Basically, it will allow us to do:
Of course, that's the newer YAML makefile format, but I think that'd be a worthwhile conversion too.
At any rate, that will use the
hostmaster-7.x-3.4-no-core.tar.gz
tarball, built atop the latest Drupal, which should resolve this issue cleanly.Comment #17
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commentedThe drush changes you made seem unrelated to yml parsing ... so we could do this without converting to yml.
This could be the new aegir-release.make:
Downside is though that with an older drush version then 8.2-dev we get a platform without the profile build. Just the files from the hostmaster repo.
I've created a separate issue for the move to yml makefiles in #2729285: Update makefiles to use yml structure
Comment #18
ergonlogicI've updated the change to Drush such that the
[do_recursion] = false
is implicit when[variant] = "projects"
. As a result, only thevariant
parameter is required. Since that'll be ignored by older versions of Drush Make, it should be safe to use it, so long as we don't adddo_recursion = false
. So:Comment #19
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commentedHere's an updated patch based on #10 with the updated makefile from #18
Comment #20
colanI added an issue in the docs repo to fix the documentation for core upgrades before an Aegir release. See https://github.com/aegir-project/documentation/issues/22.
Comment #21
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commentedMentioned in the scrum as Issue of the Week .... who's got time to review?
Comment #22
colan@helmo: What's a good way to test #19?
Comment #24
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commentedYesterday I released 3.9-beta1 to test this.
The output from jenkins seems to confirm what we wanted:
Core is downloaded separately, so if tomorrow 7.54 were to come out(I know it's not Wednesday ;) ) a new aegir installation would pickup that core version with all our other modules at our specified version.
In that case we can do a mini 3.9.1 release to get a new Debian package out there to let existing installations update.
The only "risk" here is if a new core version were to have changes that conflict with Aegir... but lets trust the core maintainers with that.
Comment #25
colanSounds good to me.
Confirming that the latest Drupal core was installed from the unstable repository.
Comment #26
helmo CreditAttribution: helmo at Initfour websolutions for Aegir Cooperative commented