You will need git, composer, php. Use the links below to install or use UMD Virtual Workspace which has the necessary tools installed.
From a terminal window, run the command:
ssh-keygen -b 2048 -t rsa
Unless you have reason to change it, leave the default location of ~/.ssh/id_rsa
as is. If the command says the key already exists, you can either overwrite it, or continue to the next step with your existing key.
A passphrase is recommended to provide greater security, but can conflict with tools that cannot handle them.
Once the files are created, you will need to copy the contents of id_rsa.pub to your clipboard.
cat ~/.ssh/id_rsa.pub
type .ssh-add ~/.ssh/id_rsa
Cut and paste the certificate into Pantheon, this is done under your account page at https://dashboard.pantheon.io/personal-settings/profile
Multidevs are development environments for teams that allows a developer to fork the entire stack (code and content), work independently, then merge the code changes back into the master. Each forked branch will have its own separate development environment, including database and files.
Git by default checks out the main 'origin/master' branch, which is attached to the dev version of your site, if you are using the multidev development method, run the following commands to check out your multidev branch: 'git pull' then 'git checkout --track origin/my-multidev-branch-name' without the ' marks.
This module will show site readiness for a Drupal upgrade (example screenshot from the module page). If you already have the module installed, make sure you are using version 4 as versions below 4 can cause issues with the upgrade.
composer require -W --ignore-platform-reqs drupal/upgrade_status:^4
Uninstall or upgrade modules, or fix issues identified by the upgrade status module report. Most likely this will involve uninstalling incompatible/deprecated modules, updating modules to newer versions that are compatible with Drupal 11, and updating environmental components. Custom modules or modules with custom code may have to be individually reviewed. Uninstalling and upgrading modules, and updating environmental components will be described below.
NOTE: Uninstall modules from the Drupal website interface first before removing the code. If the module code is removed first, the Drupal site will still have a record of the module, but will not be able to find its code, and will throw errors.
composer remove drupal/module_name
Another important step; any module uninstall actions done via the Drupal site UI must be repeated on all site environments (dev, test and live). Uninstalling a module is a content change, which do not promote upward from the development environment like code changes do.
Alternatively, you can uninstall a module on the live site, and then copy the database back to the test and dev environments. Copying the database to the lower environments will bring the module uninstall with it, as well as refresh the content. Copying the database from the live environment can be found on the Pantheon dashboard under Database/Files from the left subnav of each environment.
Modules can be updated from your local repo with Composer with the command:
composer require drupal/module_name
or composer require drupal/module_name:^x
if you need a certain version, replacing x with the new version.
Next you will need to run the following command to have composer process your change, and make sure the update got the right version:
composer update
The Drupal module External Data Source is used to pull in information for the news articles on UMD Terp sites. The contrib module does not have a Drupal 11 release at this time, so the UMD Terp vendor has forked its code, and included a Drupal 11 compatible version as a custom module in the Drupal 11 version of UMD Terp. The Drupal 11 Composer upgrade process below will remove the contrib module, and pull in the custom version, you should not need to make any changes related to the External Data Source module manually.
The quick version is below, for a more detailed explanation we have this KB article
php_version: 8.3
database:
version: 10.6
Make sure that your module un-installation work has been mirrored to all all environments, and promote your code updates to test and live so that everything is in sync.
From your repo (or the multidev branch on your local repo if you are using a multidev), run the following:
composer require 'drupal/core-recommended:^11' 'drupal/core-composer-scaffold:^11' 'drupal/core-project-message:^11' 'pantheon-systems/drupal-integrations:^11' 'umd_digital/umd_terp:^11' 'umd_digital/umd_terp_base:^11' -W --no-update
This will set your composer.json to Drupal 11, as well as the versions of Pantheon and UMD Terp. If you are not using the UMD Terp theme, you can remove the segment 'umd_digital/umd_terp:^11' 'umd_digital/umd_terp_base:^11'
If you have a "require-dev" section of your composer.json, you can either change that to 11, or delete it.
Notes:
composer update
Fix any issues identified by composer update run. If there are issues found with module versioning, check the module project page to see if there are newer or updated versions that may have fixes. You may need to update to module versions that list they are compatible with Drupal 11.
Once you get a clean "composer update" run, add your changes, commit changes, and push to server
Review the site status page, check for errors and updates that may need to be done. You may need to run database updates on your site.
Once all issues are remediated, promote the code to Test and Live.
This update brings most of the UMD Terp elements to the UMD Design System standard, designsystem.umd.edu. Some notes from that transition are as follows: