Modernizes Sloth projects to the latest version.
composer global require folivoro/climbMake sure ~/.composer/vendor/bin is in your $PATH:
export PATH="$PATH:$HOME/.composer/vendor/bin"From the root of your Sloth project:
climbExplicitly target a version:
climb --to=2- UpdateComposerJson — removes deprecated Sloth v1 scripts, normalizes
composer.json - UpdateComposerPackages — swaps
sixmonkey/sloth/folivoro/slothforfolivoro/sloth:^2.0, removes old Layotter packages, installsfolivoro/cecropia, optionally installsfolivoro/layotter-bridge - MigrateConfigs — installs a temporary MU-plugin to dump all
Configure::values, migrates them to Laravel-style config files inapp/config/andtheme/config/ - MigrateViewExtensions — converts legacy Twig filter/function registrations to
AbstractViewExtensionclasses intheme/Extensions/View/ - MigrateTypedProperties — removes typed property declarations from Model and Taxonomy classes via Rector
- MigrateBootstrap — removes Sloth v1 bootstrapping from
bootstrap.php, deletes obsoletesloth.phpmu-plugin, cleans up.gitignore
- PHP ^8.4
composeravailable on$PATH- A Sloth v1 project with
installer-pathsconfigured incomposer.json
climb installs a temporary MU-plugin (legacy-config-dumper.php) into your WordPress MU-plugin directory. On the next WordPress request it dumps all Configure::read() values to climb-config.json in your project root, then climb removes the plugin automatically.
climb reads WP_HOME from your .env and suggests the URL to open — but you can make the request however you like (browser, curl, Docker, Lando, etc.).
If climb-config.json already exists, the dump step is skipped.
MIT