Version Updates

Stay up to date on the latest Terminus version.

Discuss in our Forum Discuss in Slack

 Warning

The recent 2.x releases of Terminus signify a major version upgrade, which may not be backwards-compatible with scripts written for Terminus 1.x. For more information, refer to the Terminus 2.0 documentation.

Update to the Current Release 3.0.7

Update Standalone Terminus

If you used the standalone Terminus PHAR installation, update to the newest version with:

terminus self:update

Note that the self:update command is only available for the standalone Terminus installation. Refer to the command documentation to see the available options.

Update Terminus Installer PHAR

To update the Composer-managed version of Terminus that was installed with the Terminus Installer PHAR, navigate to the directory where Terminus was originally installed, then run the follwoing command:

curl -O https://raw.githubusercontent.com/pantheon-systems/terminus-installer/master/builds/installer.phar && php installer.phar update

Update Terminus Homebrew Installation

If you used the Homebrew installation installation, update to the newest version with the following command:

brew upgrade pantheon-systems/external/terminus

 Note

Terminus uses Semantic versioning. Be sure to fully test compatibility with existing configurations before upgrading to new major releases.

PHP Version Compatibility Matrix

Troubleshooting

Nothing to install or update

For Composer-managed Terminus installations, if the update command above returns an output that indicates no updates were found, delete the existing Terminus version (e.g. \$HOME/terminus) and re-run the following install command:

rm -rf $HOME/terminus
mkdir $HOME/terminus
cd $HOME/terminus
curl -O https://raw.githubusercontent.com/pantheon-systems/terminus-installer/master/builds/installer.phar
php installer.phar install

Self:update not defined

The self:update command is only available for standalone Terminus installed using the standalone Terminus PHAR. If self:update returns a not defined error, use the Terminus Installer PHAR update instructions above.

EOL Timeline

3.0.7

Changed

  • Change alias for local:commitAndPush to lcp to avoid aliases conflict (#2341)
  • Make framework value more human friendly for site:info command (#2351)

Fixed

  • Check upstream updates before getting upstream status to get composer updates info (#2349)
  • Fix bug that didn't allow merging a multidev env with only numbers in the name (#2350)

3.0.6

Changed

  • Make upstream status report on composer updates (#2338)

Fixed

  • Fix bug where self:console was not working because psy/psysh was a dev dependency. (#2332)
  • Pin to league/container ^3 to avoid fatal errors (#2337)

3.0.5

Added

  • Added the --element usage for backup:create (#2317)
  • Add GitHub Pull Request Template and move Issue Template (#2325)

Changed

  • Replace git:// urls with https:// urls (#2319)

Fixed

  • Fix bug where site:list was unable to properly filter by tags when part of site team (#2316)
  • Fix bug where --simulate option was being ignored (#2321)
  • Fix bug where site:delete command always fails (#2324)
  • Fix bug where self:update reports it only works with the phar version of Terminus (#2328)

3.0.4

Added

  • Added self:plugin:migrate command (#2299)
  • Add php 8.1 support (#2295)

Changed

  • Set memory limit with ini_set() rather than /usr/bin/env -S (#2303)
  • Optimize Terminus phar build (#2307)
  • Do not require composer/composer as a direct dependency of Terminus (#2308)
  • Avoid dependency on ext-curl in Terminus (#2310)
  • Improve error verbosity in Sites::get() (#2311)
  • Retry API request on "Connection refused" and "Operation timed out" errors (#2313)

Fixed

  • self:update command should now work when plugins have been installed (#2297)
  • Fix filestore scandir problem (#2309)

3.0.3

Fixed

  • Fix PHP 7.4 regressions and revert PHP 8.1 support. PHP 8.1 support will be restored in a future release (#2292)

3.0.2

Added

  • Add aliases for Terminus plugin commands (#2274)
  • Add PHP 8.1 support (#2284)

Changed

  • Allow upstream:updates:apply to default to dev environment if no environment explicitly provided (#2282)

Fixed

  • Change env:wake to use https on the platform domain (#2283)
  • Minor fixup to help output of dashboard:view and self:console (#2277)

3.0.1

Fixed

  • Change file name in deploy script (#2270)

3.0.0

Added

  • Look up host for 'terminus drush' / 'terminus wp' commands via an alternate nameserver, if selected (#2253)
  • Typehint param and return value in lookupHostViaAlternateNameserver (#2253)
  • Symfony Library updates (5.x)
  • Adds plugin manager, contributed by Ed Reel (#2054)
    • New command self:plugin:install to install Terminus plugins.
    • New command self:plugin:list to list installed Terminus plugins.
    • New command self:plugin:search to locate Terminus plugins to install.
    • New command self:plugin:uninstall to uninstall Terminus plugins.
    • New command self:plugin:update to update already-installed Terminus plugins.

Changed

  • Update auth:login command so that to not produce a false negative on successful login (#2231)
  • Update CODEOWNERS per 2.x branch (#2243)
  • Update composer dependencies version variable in post-update script (#2239)
  • Update phar builder and package dependencies (#2255)
  • Show dependencies warning if folder does not exist (#2239)
  • Implement cleanupOldDependenciesFolders function after running dependencies update (#2239)
  • Update terminusPluginsDependenciesVersion var comment (#2239)
  • Update warning message text (#2239)
  • Print warning only if terminus has plugins (#2239)
  • Improve hasPlugins, factory, and cleanupOldDependenciesFolders functions (#2239)
  • Return json_decode as array (#2239)
  • Restore openUrl function from LocalMachineHelper (#2248)
  • Draft debian linux packaging (#2255, #2238)
  • Update version compatibility check and messaging (#2267)

Removed

  • Remove code related to D9ify (#2246)

Fixed

  • Fix SavedTokens::getData() on auth:login (#2231)
  • Fix failing SSHKeyCommandsTest (#2231)
  • Fix fatal error in Environment::cacheserverConnectionInfo() (#2242)
  • Fix issue with Phar builder as well as DEB dependencies (#2255)
  • Fix coding standards (#2239)

2.6.6

  • Replace git:// urls with https:// urls (#2318)
  • Fix bug where site:delete command always fails (#2323)

2.6.5

  • Change env:wake to use https on the platform domain (#2287)

2.6.4

  • Fix Terminus for PHP 5.5, 5.6, and 7.0 (#2264)

2.6.2

Changed

  • Updated self:update command to support new options from upstream library (#2223)

2.6.1

Fixed backup:automatic:enable --keep-for parameter not being respected


2.6.0

Added

  • daily-ttl and weekly-ttl options have been added to Backups::setBackupSchedule(). (#2133)
  • keep-for option has been added to backup:automatic:schedule. (#2133)
  • expiry information added to the output of backup:automatic:info. (#2133)

2.5.0

Added

  • getUsername added to Binding model to retrieve the username for a connection. (#2107)

Changed

  • upstream:updates:apply now applies Composer changes in addition to upstream changes. (#2089)
  • Connection usernames are no longer "pantheon" but derived from API data. (#2107)

Fixed

  • Fixed issue where plan:info receives a 404 error. (#2098)

2.4.1

Changed

  • The DrushRCEditor class has been renamed to DrushRcClass. (#2083)
  • Upstreams can be ID'd by labels, product_ids, and machine_names in addition to ids. (#2086)

Fixed

  • The DrushRCEditor class no longer emits deprecation warnings. (#2083)
  • tag:add now rejects empty tags. (#2085)

2.4.0

Added

  • New option --no-db added to multidev:create which will skip the duplication of the database from the source environment. (#2050)
  • New option --no-files added to multidev:create which will skip the duplication of files from the source environment. (#2050)
  • New option no-db added to Environments::create which will skip the duplication of the database from the source environment. (#2050)
  • New option no-files added to Environments::create which will skip the duplication of files from the source environment. (#2050)
  • New method Upstream::hasCode() returns a bool indicating whether the environment has code or not. (#2056)

Changed

  • Request::download($url, $target) now accepts directories in addition to files as its $target parameter. (#2053)
  • The backup:get command's --to option now accepts directories in addition to files. (#2053)
  • Return type of Redis::disable() has changed to a Workflow model. (#2055)
  • Return type of Redis::enable() has changed to a Workflow model. (#2055)
  • Return type of Solr::disable() has changed to a Workflow model. (#2055)
  • Return type of Solr::enable() has changed to a Workflow model. (#2055)
  • Return type of Environment::disableHttpsCertificate() has changed to a Workflow model. (#2055)

Removed

  • Removed now-redundant Backup::serializeWithURL() function. Use Backup::serialize() instead. (#2042)
  • Removed obsolete Environment::convergeBindings() method. (#2055)
  • Removed obsolete Site::converge() method. (#2055)

Fixed

  • Drush script is no longer included when generating Drush aliases. (#2076)
  • PHP notice is not emitted when using upstream:updates:status on an environment without code. (#2056)
  • PHP notice is not emitted when using UpstreamStatus::hasUpdates() on an environment without code. (#2056)