All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
4.0.0-alpha.7 (2024-12-08)
- Fix app:destroy for scotty-method (9ffcefe)
- Modernize code base (30b81c1)
- Refactor Shellprovider::run to better control the output (03268c5)
4.0.0-alpha.6 (2024-11-19)
- Print all shell output to the console (43ab8e9)
- deps: update dependency symfony/process to v5.4.46 [security] (befaf1d)
4.0.0-alpha.5 (2024-11-06)
- Fix crashing error with inheritOnly (67c1510)
4.0.0-alpha.4 (2024-11-05)
- autocompletion for fish (1aa027c)
4.0.0-alpha.2 (2024-11-05)
- Fix crahs doing blueprint resolution (35b02ce)
4.0.0-alpha.1 (2024-11-05)
4.0.0-alpha.0 (2024-11-05)
1.0.0 (2024-11-05)
- Add support for ttl, allow-robots and custom-domains for scotty (b0f245c)
- deps: update dependency consolidation/self-update to v3 (209106a)
- Fix return type (c0c2643)
- Get dynamic options handling working (fc50185)
- Small fixes and enable PHP 8.3 tests for ci (8d7c87b)
- Upgrade to PHP 8.1.x and symfony 6.x (10df878)
- Upgrade to PHP 8.x and symfony 5.x (de9b5ae)
- Upgrade to symfony 5 (587008f)
4.0.0-alpha.5 (2024-11-06)
- Fix crashing error with inheritOnly (67c1510)
4.0.0-alpha.4 (2024-11-05)
- autocompletion for fish (1aa027c)
4.0.0-alpha.3 (2024-11-05)
- autocompletion for fish (1aa027c)
4.0.0-alpha.2 (2024-11-05)
- Fix crahs doing blueprint resolution (35b02ce)
4.0.0-alpha.1 (2024-11-05)
4.0.0-alpha.0 (2024-11-05)
- Requires 8.1 or higher
- Uses Symfony 5.x
- Upgrade dependencies
- Remove deprecated code
3.8.35 (2024-12-03)
3.8.34 (2024-11-11)
- Fix temporary folder (ea7a61d)
3.8.33 (2024-10-25)
- temp dir is different per user now to provide permission issues (5f44bfe)
3.8.32 (2024-10-25)
- Add option
output
to commandget:sql-dump
to set output file (9414624) - Add support for custom propnames to retrieve secrets from other props than
password
(7e9b4be)
- Delete db backups from local, when restic backup is finished. Fixes #332 (04c9617)
- Fix shell execution for commands which do not print a final EOL (58f81ba)
- Fix shell execution for commands which do not print a final EOL (25578a1)
3.8.31 (2024-08-30)
- Add option
output
to commandget:sql-dump
to set output file (9414624)
3.8.30 (2024-05-07)
- Expose settings and host-config when executing scaffold from a script (b58efb4)
- Delete container after run when using script execution context docker-compose-run (882df1e)
3.8.29 (2024-05-07)
- Delete container after run when using script execution context docker-compose-run (882df1e)
3.8.28 (2023-11-08)
- new
docker-copy
action for artifact based deployments (a036353)
3.8.27 (2023-09-10)
- add option --json to save the output of parallel runs into a json file (7bf1610)
3.8.26 (2023-08-23)
- phpstan fixes, composer updates (4c2dc00)
3.8.25 (2023-07-19)
- Validate ssh config properly, even when not using a SshShellProvider (2995bf5)
3.8.24 (2023-07-17)
- Fix faulty test for additionalNeeds (2892675)
- Merge
additional_needs
properly withneeds
(fixes #311) (606202e)
3.8.23 (2023-07-14)
- Throw an exception, when runCommand (npm, yarn or php artisan) returns an error. Fixes #309
3.8.22 (2023-06-30)
- Remove double validation for inheritFromBlueprint (f767d2a)
- Terminate host shell after a docker command to fix some edge cases (6ec2247)
- Wait up to 2 secs until docker container is available (a16fcfd)
3.8.21 (2023-06-21)
- Add support for kubectl --retries flag to circumvent failing filetransfers (a0d1ee1)
- Do not add command line args for yarn and npm to increase compatibility (1c5821a)
3.8.20 (2023-05-12)
- Better error message if local scaffold file can't be resolved (87f5b38)
3.8.19 (2023-04-13)
- Allow an about section for scaffolding files (8db3f69)
- Do not validate empty values for questions (77f5190)
3.8.18 (2023-04-12)
- Allow to disable configuration management for drupal based projects (36b18c7)
- alter_yaml_file respects empty arrays in yaml (10d8540)
- use shell-piping to get rid of temporary files when getting a dump (9abb2d1)
3.8.17 (2023-03-14)
- put/getFile will resolve relative paths before copying the actual file (98a7be2)
- Run docker-compose in quiet mode for script execution context (ab76c83)
3.8.16 (2023-02-17)
- config autocomplete won't autocomplete hidden configs anymore (9d2dc2b)
- Fix some deprecation warnings for PHP 8.2 (0419a0e)
- Remove local docker images for script-execution-context docker-compose-run (49fc651)
3.8.15 (2022-11-11)
- Apply environment correctly when using script execution context (3890447)
3.8.14 (2022-11-11)
- Set USER_ID and GROUP_ID env-vars for docker-compose-run script execution context (05e0fe6)
3.8.13 (2022-11-09)
- Cleanup more thouroughly after docker-compose is finished (b988a6a)
3.8.12 (2022-11-09)
3.8.11 (2022-11-03)
- Fix missing shell for kubectl execution context (0c02c3d)
3.8.10 (2022-10-31)
- New option bindCurrentFolder to disable bindmount of current folder for script execution context docker-image (4618235)
3.8.9 (2022-10-31)
3.8.8 (2022-10-30)
- Allow replacement patterns in script context data (5f7d2eb)
- Provide more context when replacement-patterns cant be expanded (286998b)
- script-execution-context: Add support for rootFolder and pullLatestImage (4b577a2)
- Show better error message if a script requires a passed argument via the command line (84a60e3)
- deps: update dependency twig/twig to v3.4.3 [security] (8712c8a)
- Fix regression and prevent adding
script
toneeds
when already part of it (94e0847) - Fix regression and prevent adding
script
toneeds
when already part of it (9d5c98d) - show info message, when deploy-hooks are not executed, because of a too old
drushVersion
(3861055)
3.8.7 (2022-09-24)
- Add support for yarn.buildCommand (a53c624)
- Artifact deployment-method used wrong way to pass rootfolders to cloned config, this is now fixed (e5ab47d)
- Fix docker-image-on-docker-host (2a457c9)
- Script-action throws now an exception if execution failed with an error (42d2cf4)
3.8.6 (2022-09-03)
- Remove debug output (b345060)
3.8.5 (2022-09-02)
- scaffolder: Fix scaffolding files from within the phar-archive. (1b9c4a8)
- Silence some warnings (8967400)
3.8.4 (2022-08-24)
- Show deprecation message for deprecated *RunContext value dockerHost (7199452)
3.8.3 (2022-08-23)
3.8.2 (2022-08-23)
3.8.1 (2022-08-23)
- Fix edge-cases where 1password cli is not installed (35830b4)
- shell-completion runs without warnings on PHP 8.1 (452d4bc)
3.8.0 (2022-08-22)
- Official release of 3.8.0 beta, an overview of the changes can be found at https://docs.phab.io/blog/whats-new-in-phab-3-8.html
- See the dedicated release notes of the beta version for detailed infos
3.7.18 (2022-08-16)
- Fix updates when requesting beta versions (9a5c269)
3.8.0-beta.17 (2022-08-19)
- Allow methods to declare deprecation mappings (ab37bd4)
- Make runScriptImpl public (4c15d5e)
- Methods based on RunCommandBaseMethod can use docker-image as run context (91b59b6)
- Validation: Add support for hierarchical keys using dot-notation (70c0b80)
- yarn, npm and composer methods can use docker-image as run-contexts now (894fcf6)
- Add a warning for deprecated properties (0956a98)
- configuration: Move deprecation logic before handling defaults (19193e8)
- Handle run context better for yarn, npm and others (bede679)
- Node::setProperty will create nested properties if needed. (058dfef)
- ScriptExecutionContext: Use absolute path for working directory (76d777c)
- Shortcut for Node based data (00b8dcb)
3.8.0-beta.16 (2022-08-11)
3.8.0-beta.15 (2022-08-10)
- Code cleanup, enable debug mode with
-vvvv
(3b253d9) - Do not run update check on self:update (55f9b13)
- Don't try to apply empty environment variables (623179b)
3.8.0-beta.14 (2022-08-03)
- Add new command restic to interact with your backups (e054444)
- Add new command restic to interact with your backups (800927c)
- Normalize version number before testing for available update (7ca6032)
3.8.0-beta.13 (2022-07-28)
- 1password: fix version detection (6a50b44)
3.8.0-beta.12 (2022-07-28)
- 1password: fix version detection (6a50b44)
3.8.0-beta.11 (2022-07-28)
- 1password: fix version detection (6a50b44)
3.8.0-beta.10 (2022-07-27)
- ddev: Fix docker integration, compute right docker container name, replace patterns in info and docker (2cf445e)
3.8.0-beta.9 (2022-07-23)
- ddev: fix bug when no ddev is used (b744070)
3.8.0-beta.8 (2022-07-16)
- configuration: allow
additionalNeeds
for host-configurations to declare additional needs (5edacb2) - ddev: add missing ddev method implementation (11bf097)
- ddev: experimental lightweight integration with ddev (fcb8162)
- fix regression not calling reset after copy-from (bdfe66d)
3.8.0-beta.7 (2022-07-14)
- return a default config name if none set (30dfffa)
3.8.0-beta.6 (2022-06-09)
- Allow arguments containing = (7e9eb94)
3.8.0-beta.5 (2022-06-06)
- fix failing tests (2c7bc3a)
- fix misc erros in database tests (e178be1)
- script-exection-context: Update docs. (89086d4)
3.8.0-beta4 (2022-05-29)
3.8.0-beta3 (2022-05-26)
- Expose global settings as replacement patterns for k8s parameters (3fd09e4)
- Introduce new utility function to check if a string is a url (d8d753a)
- k8s: Fix bug in cleanup code for the temporary folder (cb9acca)
- Make sure db is installed when trying to import sql (129c42a)
- Pass absolute paths to scaffolder to prevent ambiguities when resolving relative paths (a13a360)
- Show warning if tables cant be dropped (58c89b3)
- Use absolute path for base urls (b6b1616)
3.8.0-beta2 (2022-04-11)
- k8s: Apply replacements for
parameters
before doing the scaffold (468317f) - Limit when to check for updates again (e5fb8af)
3.8.0-beta.1 (2022-04-02)
- Add support for database credentials from 1password cli (1903ec5)
- Allow global docker config which gets inherited by host-specific docker config (d1221d4)
- new command
db:query
to run custom queries against a db configuration (21a2048)
- Better error reporting for missing scaffolding source files (7a2f675)
- command output left information when using blueprint (9b1bab9)
- confirm returns now 0 instead of an empty result (Fixes #219) (bfab90b)
- fix error in password extraction from 1p client, add test-coverage (3b0730e)
- Get parent folder for a specific data-item directly from the source (513df49)
- handle another race-condition when merging arrays (2588478)
- Handle empty results from op with more grace (32c0307)
- Handle missing data with more grace (751d4e8)
- Handle protected properties better (ef3885c)
- Hide warning when using PHP 8.1 (7020ece)
- inheritFromBlueprint did not work correctly with new node-based data-retrieval (b1b18db)
- jira: Change jql to support also jira-cloud (b5f89b4)
- race-condition in new data handling method (e5f1e99)
- resolveRelativeInheritance handles parent folder now for all cases (5185b57)
- show log-messages and app-prompts on stderr if the output is not decorated, e.g. when using pipes (Fixes #250) (8e1ee2b)
- throw an exception if tables cant be dropped (9f3d9c8)
- Use absolute paths when scaffolding from a relative path (26fdfcb)
- Wrap mysql password in quotes (cea6466)
- Minimum PHP requirement: 7.3
-
Added script- and scaffold-callbacks for encryption and decryption using
defuse/php-encryption
You can encrypt files in a script with
secrets: name-of-secret: question: What is the password scripts: encryt: - encrypt_files(path/to/files/or/folders/to/encrypt/*.ext, path/to/folder/to/store/encrypted/files, name-of-secret) decryt: - decrypt_files(path/to/files/or/folders/to/decrypt/*.enc, path/to/folder/to/store/decrypted/files, name-of-secret)
The scaffolder has a new callback called
decrypt_assets
which works the same ascopy_assets
but with a preliminary decryption stepscaffold: - decrypt_assets(targetFolder, dataKey, secretName, twigExtension)
-
Refactored data is read and stored, which allows now to introspect a configuration mor thoroughly than before:
- Added a new command
find:property
which will promt the user for a propery-name, and display from where the value got inherited and other useful information. If the property cant be found, a list of possible candidates is shown, the input supports autocomplete. - The command
about
will output from where the data got inherited, when the-v
was passed. - Relative inheritance is now fully supported, that means you can inherit from a file/ http ressource via a relative path
- Added a new command
-
Added new callbacks for getting a file from 1password-cli / -connect
-
Obfuscate passwords in log-outputs
-
new command
db:query
to run custom queries against a db configuration -
Add support for database credentials from 1password cli
-
Add support for nested fields by 1password
-
Add new command
install:from-sql-file
which will stream-line the installation process when installing from a sql-file (Fixes #223) -
Add options for mac-arm to workspace commands, ignore saved existing scaffold-tokens
-
Add feature-flag to use rsync implementation of get/put:file on k8s
- Do not run reset when only running copy-from files (Fixes Do not run reset after phab copy-from files #181)
- Change jql to support also jira-cloud
confirm
-question returns now 0 instead of an empty result (Fixes #219)- Hide warning when using PHP 8.1
- Use absolute paths when scaffolding from a relative path
- show log-messages and app-prompts on stderr if the output is not decorated, e.g. when using pipes (Fixes #250)
- command output left information when using blueprint
- fix error in password extraction from 1p client, add test-coverage
- throw an exception if tables cant be dropped
- Handle empty results from op with more grace
- Wrap mysql password in quotes
- feat: Allow global docker config which gets inherited by host-specific docker config
- Better error reporting for missing scaffolding source files
- Pass context down the lane, when running multiple commands serially
- Fix warnings when no passwords are cached
- Fix version check, do not check for version when running
self:update
(Fixes #174) - Use mysql port information when running install
- Report deprecation messages after all inheritance is resolved
- Show proper error message if script could not be located in the fabfile. (Fixes #220)
- Better file names with date and time (Fixes #214)
- Fix problems with tilde in file path in mysql method
- Reset admin password after drupal is deployed completely (Fixes #211)
- Do not run reset when only running
copy-from files
(Fixes #181) - Update grumphp so it works under PHP 8.x
- Switch to consolidation/self-update as the other used lib is abandonded. Fixed some warnings under php 8.1
- Pass shellProviderOptions to rsync
- dump database structure and data separately to prevent missing table structures for ignored tables
- Refactor copyAssets-callback to be more flexible
- fix(1password): fix version detection
- feature(1password): Add support for 1password cli 2.x
- fix(secrets): Fix replacement-patterns validation, exclude secrets from validation
- fix(script-execution-context): Create unique project-name for docker-compose-run
- Changed name of overridden private class property. (Fixes #272)
- fix(k8s): Add test coverage for k8s scaffold, fixed some bugs because of race-conditions
- fix(k8s): Fix the real bug which prevents scaffolding k8s files introduced with 3.7.10
- fix(k8s): Fix bug in cleanup code for the temporary scaffold folder
- fix: [#260] self-update --allow-unstable=1 toggles between stable and unstable version
- Updated dependencies
- notify: Handle
--channel
option correctly.
- Check only params for globally used parameter options (Fixes #254)
- Remove accidentally added composer mirror
- Use mysql port information when running install
- Introduce renovate bot to update dependencies automatically
- Update depencencies
- Show warnings always
- Use
--no-defaults
for mysql commands - Use same mysql dump options as drush
- Add error handling when drush tries to get the db credentials
- Fix problems with tilde in file path in mysql method
- Reset admin password after drupal is deployed completely (Fixes #211)
- When getting a dump from a database mimic the behavior of drush, get the full
structure but ignore data from certain tables (defined in
sqlSkipTables
) - When copying files do not interact with the database
- New
db
-subcommands:db:install
will install a new databasedb:drop
will drop all tables in the databasedb:shell
will run a database cli to work directly with the DB (similar todrush sql-cli
)db:shell:command
will print out the command necessary to run a the db cli
- Get credentials before trying to wait for the database
- Add output-option to
get:property
-command to save the output to a file
- Resolve secrets for
get:property
and add options to get output as yaml or json - Introduce useNfs for multibasebox scaffolder
- Install db before running copy-from
- Plugin discovery works when phab is started from a subfolder. Fixes #207
- Add support for protected properties which wont be overridden by override-files.
- phabalicious now requires PHP 7.2
- failing drush commands will now exit phab with an error code, instead of
continuing. This might break your deployments. To switch back to the old
behaviour set
drushErrorHandling
tolax
-
Introduction of script execution contexts. Scripts can now be executed in a docker image of your choice, or inside an service of a docker-compose setup
For scripts using the
docker-image
-script-contextscripts: build-frontend: script: - npm install -g gulp-cli - npm install - gulp run finally: - rm -rf node_modules context: docker-image image: node:12 user: node # Optional user, if not specified, the current uid:gid will be used
The current folder is mounted to
/app
in the container, and the current user- and group will be used inside the running container. If you need to persist any files after the container got killed, make sure to copy/ move them into the/app
-folder.The container will be removed after the script finishes. Before the script is executed, phabalicious will pull the docker-image.
The
finally
-step will executed after the script, it allows to cleanup any leftovers, regardless of the result of the script-execution (e.g. returned early because of an error).script
-actions for scaffolders are supporting this too, e.g.hosts: scaffold: actions: - action: script arguments: context: docker-image image: node:14 script: - npm install -g gulp-cli - npm install - gulp run
For scripts using the
docker-compose-run
script-context:scripts: test:backend: script: - composer install - php artisan db:wipe --force - php artisan migrate - php artisan db:seed - vendor/bin/phpunit context: docker-compose-run rootFolder: ./hosting/tests service: php workingDir: /app #working dir in the php service
Corresponding
docker-compose.yml
:version: '2.1' services: php: depends_on: db: condition: service_healthy build: context: ../../ dockerfile: ./hosting/builder/Dockerfile environment: DB_PASSWORD: root DB_USERNAME: root DB_DATABASE: tests DB_HOST: db APP_ENV: local db: image: mysql:8 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: tests healthcheck: test: "mysqladmin -u root -proot ping"
This will use the
docker-compose.yml
fromhosting/tests
and rundocker-compose run php
and exetute the script inside thephp
-service. This works very well for scenarios where your app need other services to function, like in this case a mysql database. In contrast to thedocker-image
- script-context no folders are mounted into the service. You need to set this up via your docker-compose.yml -
Add
md5
-twig-filter to scaffolderaValue: "{{ "Hello world" | md5 }}"
will be scaffolded to
aValue: "f0ef7081e1539ac00ef5b761b4fb01b3"
-
Add
secret
-twig-function to the scaffolder. It will return the value for a given secret.The mysql-password is {{ secret("mysql-password" }}
-
Host-configs can be hidden from
list:hosts
by settinghidden
totrue
hosts: hiddenHost: hidden: true # host config will not be shownn on `list:hsots`
-
Add a new
info
-section tohost
-configs and a project specificdescription
. This allows the user to add a short description and one or more urls which will be displayed onphab list:hosts
description: |- A multiline global project description which will be outputted on list:hosts hosts: local: info: description: A local installation aimed for development publicUrl: https://localhost category: id: local label: Local installations someDevInstance: info: description: |- A multiline string describing someDevInstance which has multiple public urls publicUrls: - https://web.example.com - https://bo.example.com - https://search.example.com category: id: dev label: Develop installations
Note, that
list:hosts
will show only the firstpublicUrl
. But you can runphab list:hosts -v
to get a more verbose output with all urls and descriptionsExample output:
$ phab list:hosts List of found host-configurations: ================================== Local installations ------------------- * local https://localhost Develop installations --------------------- * someDevInstance https://web.example.com
-
New methods for handling database tasks (importing or exporting a dump) added:
mysql
sqlite
The functionality was moved out from the
drush
-method and replaced by the new methods.Database credentials will be obtained automatically if not part of the cofiguration e.g. from drush or environment-variables/ the .env-file for laravel-based projects
-
New command
artisan
and new methodlaravel
for laravel-based projects. Just run e.g.phab -cyourconfig artisan db:seed
-
Add support for global
artisanTasks
-
Methods can declare dependencies to other methods, e.g. using the method
drush
will implicitely use methodmysql
if not stated differently inneeds
. -
Allow users to override rsync options via the
rsyncOptions
settings, e.g.rsyncOptions: - --delete
-
You can now scaffold your docker configuration before running any docker-related command e.g.
docker
ordocker-compose
. That means you can scaffold the correspondingdocker-compose.yml
ordocker-compose.override.yml
before running a command against the config. An example:hosts: example: docker: scaffold: assets: - templates/docker-compose.yml - templates/docker-compose.override.yml
This will copy the two files in
templates
into the root-folder and apply any configuration from the hostexample
before copying it to the destination.- new
db
-command with subcommandsinstall
anddrop
, allows you to create or drop a database. - option
--skip-drop-db
forcopy-from
andrestore:sql-from-file
to not drop the table before running the import - option
--skip-reset
forcopy-from
which will not run the reset-task after the import.
- new
- Refactor how script-callbacks are handled internally, use a more oo-style
- Moved all db related functinality out of
drush
into the methodsmysql
andsqlite
- Tests do not depend on the current working directory anymore and clean up after themselves.
- Refactor script execution to allow lazy validated replacements
- Fix unresolved replacement patterns in DockerMethod
- Allow artisan tasks to be configured
- Fix stuck drush deploy:hook
- Harden the way how phab determines the current running pod
- Fix
copy-from db
fordockerExecOverSsh
-shells, fixes #175 - Fix
get:file
andput:file
fordockerExecOverSsh
on Mac OS
- Enable copy-from with kubernetes pod as target as long the source is reachable via SSH and a ssh-connection can be established between the pod and the data-source.
- Fix getFile for docker-exec-over-ssh shell provider
- Update multibasebox setup for workspace command
- Cleanup kube-folder before scaffolding. Fixes #161
- Fix blueprint template variable
slug.with-hyphens.without-prefix
- Bump dns-packet from 1.3.1 to 1.3.4
- Bump browserslist from 4.16.3 to 4.16.6
- Update copy action docs
- Better error handling for version check
- Fix broken
isTerminated()
- Use github actions for creating automatic releases
- Run php unit tests in github actions
- Fix missing method in DryRunShellProvider, add test coverage
- Terminate current shell, when new app gets deployed via k8s
- Make secret-gathering more verbose, support for multiple 1password-connect-tokens (Fixes #156)
- Allow passing of 1password JWT token via environment variable
- Add support for hidden questions (e.g. for passwords)
- Add option
forceConfigurationManagement
for cases where phab cant detect it properly
- Set new default for configurationManagement
- If there's an error with 1password cli or connect, display error, but continue
- Support for 1password connect, see updated docs.
- Fix jira command (fixes #155)
- Use the pod-template-hash to get the actual running pod, instead of any pod (Fixes #153)
- Better error messages and throw an exception if a secret could not be retreived
###Fixed:
- Fix relative inherits from remote and using
@
(Fixes #150) - Update app:scaffold docs
- Set hostconfig for subsequent commands in artifact based deployments
- Use dot-notation to define the data to use when altering files
- Add configBaseFolder configuration option to override the config base folder name
- Add support for storing secrets in .env file
- Add support for named scripts (from the scripts section) in artifact based deployment
- Fix bug in escaping replacement patterns
- Pass secrets to subsequent calls via execute callback
- Save cloned hostconfig when running artifact based deployment, so execute callback works on latest data
- Allow multiple secrets in one line
- Fixing parsing error #145
- Set base-url from scaffold-file as a fallback (fixes #144)
The easter relase 3.6.0
(\(\
(='.')
o(_")")
- offsite backups via new
restic
-method - Introduce new secrets mechanims to retrieve secrets from the outside
- Refactor app:create and app:destroy, add implementation for k8s
- Allow prefixing paths for inheritsFrom with
@
and introduceinheritanceBaseUrl
to set a common base path - Implement base url mechanism for scaffolds
- Allow inheritance in blueprints using
blueprintInheritsFrom
- Add restic sftp host to known hosts automatically
- Throw an error instead of asking for a ssh password, can be overriden, if needed (Fixes #142)
- Update dependencies
- Allow user to provide tar-options for
get:files-dump
(Fixes #138) - Add new option for
put:file
to set the destination for the file copy. (Fixes #137) - Allow
computedValues
also for scaffold scripts
- Allow user to provide tar-options for
get:files-dump
(Fixes #138) - Add new option for
put:file
to set the destination for the file copy. (Fixes #137) - Allow
computedValues
also for scaffold scripts
- Try to replace patterns in strings only, fixes #141
- Remove double --namespace from k8s methods
- Allow replacements for
alter_file_*
callbacks
- Fix overridden data when executing scaffolds in scaffolds, pass options down the lane
- Resolve secrets before executing a command
- Disable quiet for scaffold callback to allow questions to be shown
- Remove dead code
- Use release version when checking
requires
- Fix fatal on startup, fixes #136
- Fix for backups w/o git hash
- Initial implementation of doing backups via restic
- Implement list:backups and restore for restic. Initial support for other backup methods implemented
- Introduce new secrets mechanims to retrieve secrets from the outside
- Refactor app:create and app:destroy, add implementation for k8s
- Add new way of handling secrets via new replacement pattern
- Support for password-only fields from 1password
- Resolve secrets for scripts
- Resolve secrets on demand, prevents prompts for secrets for unrelated commands
- Allow prefixing paths for inheritsFrom with
@
and introduceinheritanceBaseUrl
to set a common base path - Implement base url mechanism for scaffolds
- Add option to scaffold-commands to provide a base url for scaffolders
- Allow inheritance in blueprints using
blueprintInheritsFrom
- Update dependencies, support composer 2
- Refactor backup related code, move common code into base class
- Show an error message for
copy-from files
where source or destination does not support rsync (e.g. docker-exec, kubectl) - Add deprecation message for ftp-passwords
- Add missing license to composer.json, fixes #132
- Fix getSQLDump and restoreSqlFromFile tasks
- When checking for a mysql connection do not consume default config files
- Enhance error message when inheritsFrom/blueprintInheritsFrom fails
- Throw an exception when the name of the docker container is missing
- Require rinnung app for shell-task
- Fix check for existing app in k8s, better error messages
- Fix shell command for docker-exec and k8s. Fixes #130
- Fix
getSQLDump
andrestoreSqlFromFile
tasks
- new
scaffold
internal command to run scaffolders from within a scaffolder
- Percentages for replacement patterns can be escaped via
\
in scripts - webhook-urls can contain replacement-patterns
- Run install from-config only for drush >=9 (fixes #121)
- Fix regression when restarting containers with cached container name
- Initial implementation of new command
docker-compose
- Rework docker-compose command so it can be run interactively
- Introduce isRunningAppRequired, to exit early if not the case
- Add support for
deploy
-command from drush 10.3 (fixes #106) - Check target repository for new commits and show a warning (fixes #124)
- Use same deploy strategy as drush
- Add drush cr after updb to mimic drush deploy
- Fix broken caching of remote resources
- Show error message for
phab shell
, fixes #122
- Add gitOptions to git-artifact deployment to change the actual git clone command
- Throw an exception when drush cim fails
- New callbacks for scripts and scaffolders,
set_directory
andalter_yaml_file
- Switch to github branching strategy
install
will try to use existing configuration when available- Bump ini from 1.3.5 to 1.3.8
- Make getting data over http more robust, add tests for it
- Scaffolder: Allow merge of numerical and associative arrays
- Scaffolder: Sort actions by key before processing them
- Scaffolder: Remove default actions
- Install: Fix bug in detection of correctly setup configuration management
- Install: Fix install without config by setting context result.
- Install: Add --existing-config command option to drush site-install if config sync dir contains existing configuration.
- Allow merge of numerical and associative arrays
- Revert change to mergeData, add test coverage for it
- Sort actions by key before processing them
- Remove default actions
- Provide default value for
alterSettingsFile
property
- Fix file copying for kubectl shells
- Enhance docs for git based artifact deployment
- Apply shellProviderOptions also to other ssh commands
- Fix shell creation for ssh when executed as a sub process, typos
- Add new artifact actions
log
andmessage
(Fixes #109)
- Fix error in scaffolder which prevented to ask for the project name
- Try to prevent timeouts when using k8s
- Set tty flag for new shells
- Refactor how scripts and scaffolders handle callbacks
- Enhance argument parsing, updated test-coverage
- Allow
inheritsFrom
with absolute file names - Update vuepress
- Refactor how options are passed to the shell-provider.
- Fix regression with
get:file
,put:file
andcopy-from
- Add new option
alterSettingsFile
which defaults to true
- Allow inheritance to merge arrays if one of them is associative
- Reset auto-discovered docker name after docker-tasks to prevent outdated information
- Show proper error-message if a remote asset cant be loaded
- Provide sensible defaults for
podSelector
, fix a warning - Add test-coverage for most shell-providers, fixes #104
-
Provide a more secure password for dev-instances. This will change the admin password of your dev-instances as the default passwords got replaced with a more secure variant.
You can get the admin-password for a given instance via
phab -c<config> get:property adminPass
.Or you can override the
adminPass
in the fabfile globally or on a per host-basis. Another option for local development is creating afabfile.local.override.yaml
in your multibasebox folder and change its content to sth like thishosts: mbb: adminPass: admin
- Fix kubernetes get-file and put-file task.
- Update readme and document how to create a release and publish the docs
- Update vuepress
- Remove
-q
option from ssh command as this prevents sshs error reporting
- Provide computed property
kubectlOptionsCombined
for use in scripts to use the same cli-options as phab does
execute()
will now properly respect breakOnFirstError which got ignored in the past- Fix docs regarding
log_message
(Fixes #100)
- Allow script question values to be overridden via
--arguments
- Add tests for scaffold command
- Allow questions for scripts
- Allow computedValues for scripts, this will allow the user to eecute external commands and reuse their results.
log_message
supported for scriptsconfirm(message)
supported for scaffolder and scripts.- Enhance parsing of arguments for internal commands when used in the scaffolder or script. This is now possible:
log_message("hello, dear user! Welcome!", "success")
- HostConfigs with
inheritOnly
wont be listed when runninglist:hosts
- The scaffolder will use/ create a token-cache file only when requested with
--use-cached-tokens
- Implement
start-remote-access
for k8s
- Remove fragile context handling in k8s, instead use dedicated command-line argument
- Add support for .env files on the same level as the .fabfile. Will be included in global scope under the key
environment
- Forget cached
podForCli
after deployment to acquire a new one, addsettings
to the replaceents - Update dependencies
- Add
assert_file
internal command for scaffold-scripts to check if a specific file exists.
- Silence ssh process a bit more, might fix #98
- Proper parsing and applying of single quotes to commands. Fixes #81
- If no tty is requested do not attach stdin to process, so it wont wait for input. Fixes #98
- Bump symfony/http-kernel from 4.4.7 to 4.4.13
- Fix wrong npmRootFolder when using artifact based deployment, modularize the logic
- Revert newly introduced idle-prevention when running scripts as it breaks execution under certain circumstances
- Do pattern replacement dynamically for k8s
- Rework kubectl execution, you can now add options to the command and set a dedicated kubeconfig in the fabfile
- Fix broken workspace:create and workspace:update commands due to recent refactoring. Add test coverage for both commands
- Refactor tunnel creation into dedicated classes and helpers
- Allow to set environment variables in the kubectl context, e.g for KUBECONFIG
- Make sure that drush operates in the correct sitefolder when pulling or pushing variables
- Smaller doc fixes
- Add support for switching context before running kubectl
- Allow optional script context definition of a script, this will allow to execute the script in a different context, eg in the context of the kubectl shell
- Fix broken workspace:create and workspace:update commands due to recent refactoring. Add test coverage for both commands
- Chunk regex patterns to prevent warning and failing replacements
- Provide default command result
- Fix a warning when running scaffold without scripts
- Force-include twig dependencies when building phar
- Fix error in fallback version check, fixes #93
- Support for kubernetes, see documentation for more details. Some features still missing.
- Add describe subcommand for k8s
- Add logs subcommand for k8s
- Implement copy operation for k8s
- Add docs for kubernetes, fix test
- Allow the passing of a shellprovider to the scaffolder, reorganize code a little bit
- Add new k8s subcommand rollout, wait for deployments to finish before continuing
- Apply kubernetes config on deploy, even when scaffolder is not used, smaller code enhancements
- Rename deployCommand to applyCommand, add delete subcommand to k8s method
- Add new option
set
which allows to set a certain value in the configuration - Provide host data and timestamp for scaffolder
- Add kubectl shellprovider, fix some bugs in K8sMethod
- Add k8s subcommands
- Implement initial deploy command for k8s
- Fix replacements in k8s
- Start working on k8s method, refactoring scaffold functionality into dedicated class with dedicated options class
- Bump elliptic from 6.5.2 to 6.5.3
- Bump lodash from 4.17.15 to 4.17.19
- Disable symfony recipes
- Show available update even on linux
- Harden the extraction of return codes for executed commands
- Clean up any cached docker container name after a task got executed. Fixes #89
- Add php codesniffer as dev dependency
- Show available update even on linux
- Fix ensureKnownHosts
- Ensure known hosts for ssh shells, some refactoring
- Fix smaller bugs in scaffolder
- Bump websocket-extensions from 0.1.3 to 0.1.4
- Throw an exception with the filename if transform plugin throws an exception, improve logging
- Refactor Scaffoldbase to use a QuestionFactory with new types of questions
- Enhance validation service
- Pass files parameter directly to transformer
- Fix docker-exec-over-ssh
- New shellprovider: docker-exec-over-ssh, its a concatenated shell running docker-exec on a remote instance
- Prevent folder name collision if two artifact deployements are runing at the same time
- Fix app:create when using a service for docker ip gathering
- Fix for inherit loops, fixes #78
- Allow per host repository settings
##Fixed
- Previous versions did not check the version constraints of imported yaml files.
- Allow per host repository settings
- Fix for non-working plugin autoloader when using bundled as phar
- Support override-mechanism. If a yaml-file with the extension
override.yml
oroverride.yaml
exists, its data will be merged with the original file. - Add ip option to start-remote-access command to connect to a specific host
- Initial implementation of
variable:pull
andvariable:push
for D7 via drush - add new command
scaffold
which allows to scaffold and transform not only apps but also other types of files. - Introducing plugin mechanism to add functionality via external php files for the scaffolder. Will be used by
phab-entity-scaffolder
- Use static array of discovered transformers, to fix unit testing, as php does not allow to discover a php-class multiple times
- Add logging to plugin discovery
- Fix options with multiple values
- Implement better approach to find vendor-folder
- Expose target_path to transformers
- Make sure, that only yaml files get transformed
- Use global autoloader, so registering new namespaces are permanent
- Use autoloader to register plugin classes
- Refactor scaffold callbacks in dedicated classes, so they can be externally loaded
- First draft of a plugin mechanism to decouple scaffolding from phabalicious, as an effort to port entityscaffolder to d8
- Support for knownHosts. Setting
knownHosts
for a host- or dockerHost-configurtion will make sure, that the keys for that hosts are added to the known_hosts-file. - Update known_hosts before specific commands, needs possibly more work #70
- Remove entity-updates option during drush reset
- Better error message for missing arguments
- Refactor task context creation to allow arguments for all commands
- Upgrade vuepress dependencies
- Update dependencies
- Update docs
- Satisfy PHP 7.2
- Document yarnRunContext and npmRunContext
- Fix regression with script default arguments, added test-case. Fixes #77
- Fix exclude action for git artifact deployments #73
- Fix race condition on app:create
- Remove deprecated code
- If the underlying shell terminates with an exit code, throw an exception
- Use a different name for the target filename to prevent name-clashes
- Fix version command, nicer output
- limit amount of commit messages to 20 when doing artifacts deployment
- Skip precommit hooks for committing artifacts
- Silence a warning, if shell exits unexpectedly throw exception only on error
- Add new internal method to modify a json file when scaffolding.
- New option
skipSubfolder
, so that scaffold wont create a subfolder. - Update vuepress
- Fixed a bug inheriting the target branch from the source branch
- New command
workspace:create
, which will run the multibasebox scaffolder - Add
workspace:update
command and refactor scaffold code - scaffolder will store tokens in
.phab-scaffold-tokens
in the scaffolded folder. Subsequent scaffold-runs will load and use these tokens (and do not ask for them) - when scaffolding a project the warning that the target folder exists can be suppressed by adding
allowOverride: 1
to the variables-section. - Add coding-style standards config file, apply them.
- Refactor composer command to a base class, so functionality can be shared with new commands yarn and npm
- Drush will try to run an install, even when no database-settings were found in the current host-config.
- Add support for Drupal 8.8 and changed behavior regarding config-sync
- Pass arguments to subsequent commands
- If a replacement can't be parsed, throw an exception
- Fix php declaration error
- Allow arguments for the docker command, merge scripts variables instead of replacing them
- Fix error when deleting existing files in copyAction
- Harden handling of getting actual container name from a service
- Harden behavior of committing artifacts.
- Ignore ssl errors when running tests'
- Better way of handling relative paths in LocalShell
- Refactor RunCommandBase to define a runContext. Could be host, or dockerHost
- Bump symfony/http-foundation from 4.2.3 to 4.4.1
- Fix branch handling in deploy command
- Add preliminary documentation for webhooks
- Allow methods to alter script callbacks
- Add test for task-specific webhooks
- Implement new command
webhook
which allows the user to invoke a webhook defined in a fabfile.
- Fix non-working branch argument-handling, old code did not respect the argument at all
- Add dedicated
npm
method, similar to yarn-method.
- Issue #62: Switch to using single -m for commit message
- Fixed a security alert in a symfony dependency
- new method
yarn
, which will run yarn install on install/reset task and a custom build command when running the reset-task - new custom build artifact available, with full control over the stages
- Require grumphp only for dev
- Use latest grumphp
- Update precommit config
- Report script errors early
- Delete target file/folder before copying
- Tag build artifact with existing tag of source repository
- Disregard confirm action if --force option is set
- Fix tests and keep option
override
- Fix possible exception, when using -v show possible tokens
- Allow multiple options '--arguments'
- Allow --arguments for deploy command
- Refactor actions, add new action installScript
- Set the type as
installation_type
as state in drupal 8
- Include version number for temporary folder
rootFolder
is set by default now to the folder where the fabfile is located.- All context variables are exposed as replacement patterns for using in scripts.
- new method
artifacts--git
to build an artifact and push it to a git repository, see new documentation about artifacts. - Update documentation regarding the new artifact workflow
- Refactored and renamed method
ftp-sync
toartifacts--ftp
in preparation of artifacts--git. Be aware that you might need to change existing configuration!
- Switched to vuepress as documentation tool
- Get drush command to dump sql from configuration
- Allow environment for host-configs, fixes #56
- Support replacements for host-environment variables
- Refactor tests, so they can be run from root foldergit
- Push and restore working dir
- Fix build script regarding not enough file handles
- Add support sql-sanitize for reset task
- Fix for exception after certain docker commands.
- Document
skipCreateDatabase
- Add chmod to the list of executables, fixes #57
- Show error-message if shell could not be initialized. Fixes #54
- Satisfy phpstan and add it as a new precommit-hook
- Fix drush and other commands when using local shell provider
- Prevent filename collision when running docker copySSHKeys, fixes #52
- Fix issue with special characters in the pw
- Use latest version of stecman/symfony-console-completion
- Fix warning
- Better errorhandling
- Smaller enhancements regarding scaffolding
- Sleep only when shell did not produce any output
- Fix introduced regression when running a drush command
- Enhance support for docker shells
- Rework shell execution for docker-exec
- Allow relative paths for docker rootFolder. Add sleep to reduce processor drain
- Fix default values
- Fix bug with variants overriding existing configuration
- Run composer install on
installPrepare
- Fix bug when using inheritsFromBlueprint
-
Add new inheritFromBlueprint config, so a host-config can inherit from a blueprinted config
hosts: local: inheritFromBlueprint: config: <config-which-contains-blueprint> variant: <the-variant>
Thats roughly the same as calling
phab --config=<config-which-contains-blueprint> --blueprint=<the-variant>
but using it in the fabfile allows you to override the config if needed. -
Introduce deprecated-flag for inherited data. Will display a warning, when found inside data
-
Enhance output-command to support output of docker-, host- and applied blueprint config, and also of all global data.
phab -clocal output --what host # will output the complete host-config phab -cremote output --what docker # will output the complete docker-host config phab output --what global # will output all global settings
- Add validation for foldernames
- Harmonize option copy-from
- Use correct port range, previous code might have used ephemeral ports, which are reserved -- should fix sporadically failing ssh-connections, fixes #49
- Show a warning if local users' keyagent does not have a key when running
docker copySSHKeys
- rename setting
dockerAuthorizedKeyFile
todockerAuthorizedKeysFile
, keep the old one for backwards compatibility - if no dockerAuthorizedKeysFile is set, use the public-keys of the ssh-agent instead
- Cd into siteFolder before restoring a db-dump. (Fixes #48)
- Ask before scaffolding into an existing directory, can be overridden by
--force
. Fixes #43 - Allow --force and --force 1
- Report errors and stop the execution when errors happen while scaffolding
- Use latest version of stecman/symfony-console-completion
- Enable/ disable modules one by one, fixes #39
- Better error-reporting for inherited files from local and remote
- Handle variants and error output better
- Allow the phab binary to called from a regular Composer installation
- Add the "phab" binary to composer.json explicitly
- Update passwords documentation
- Cd into siteFolder before restoring a db-dump. (Fixes #48)
- Support for variants and parallel execution for a set of variants
- Document mattermost integration, fixes #29
- Fix broken shell autocompletion
- Limit output when using phab with pipes
- Include jump-host when running ssh:command if needed (fixes #36)
- Display destination for put:file (Fixes #37)
- Use progressbar when scaffolding more then 3 asset-files
- FIx a regression for task-specific scripts. (Fixes #31)
- Make sure, that task-specific scripts are run. (Fixes #31)
- Add a notification before starting a db dump (Fixes #30 and #33)
- If no unstable update is available, try the stable branch (Fixes #34)
- Fix scaffolding of empty files via http
- Add support to limit files handled by twig by an extension as third parameter to copy_assets
- Add support for a dedicated projectFolder, add support for dependent variables, so you can compose variables from other variables
- strip first subfolder from filenames to copy when running app:scaffold, keep folder hierarchy for subsequents folders
- Refactor TaskContext::getStyle to TaskContext::io for clearer code
- Fix a bug on copyFrom for specific multi.site setups
- Fix bug when running app:scaffold where stages do not fire existing docker-tasks
- Fix a bug in docker:getIpAddress when using the service keyword and the container is not running.
- Add a new stage
prepareDestination
forapp:create
- Increase timeout for non-interactive processes.
restore:sql-from-file
: Run a preparation method so tunnels are in place before running the actual scpcopy-from files
: Fix for "too many arguments" error message of rsync
- .netrc is optional, show a warning if not found, instead of breaking the flow (Fixes #27)
- fixes a bug resolving remote assets for app:scaffold
- Exit early after app-update to prevent php exception because of missing files. (Fixes #24)
- Make update-check more robust
- Add transform to questions, update documentation, fix tests
- Refactor questions in
app:scaffold
questions are now part of the scaffold.yml - Add support for copying a .netrc file to the docker container
- New command
jira
which will show all open tickets for the given project and user. (#22)
- Add support for .fabfile.local.yaml in user-folder
- Show a message when a new version of phabalicious is available.
- Documentation for the new jira-command (#22)
- Remove trailing semicolon (Fixes #23)
- Report a proper error message when handling modules_enabled.txt or modules_disabled.txt is failing
- Fix shell-completion
- Fix logic error in InstallCommand, add testcases (Fixes #21)
- Wrap interactive shell with bash only if we have a command to execute
- Try up to 5 parent folders to find suitable fabfiles (Fixes #18)
- Use paralell uploads for ftp-deployments
- Use a login-shell when running drush or drupalconsole interactively. (Fixes #20)
- Add autocompletion for
install-from
- Call overridden methods only one time, add missin reset-implementation to platform-method (fixes #14)
- Increase verbosity of app:scaffold
- Add missing twig-dependency to phar-creation (fixes #17)
- Fix handling of relative paths in app:scaffold (Fixes #16)
- Fix parsing of multiple IPs from a docker-container (Fixes #15)
- Pass available arguments to autocompletion for command copy-from (Fixes #13)
- Run drupalconsole in an interactive shell
- Handle app-options correctly when doing shell-autocompletion (Fixes #12)
- Silent warnings when doing autocompletion (fixes #11)
- Better command output for start-remote-access (fixes #10)
- Throw exception if docker task fails
- Fix command output parsing
- Source /etc/profile and .bashrc
- Better defaults for lftp
- Some bugfixes for ftp-deployments
- Nicer output
- Add docs for shell-autcompletion
- Fix fish autocompletion (sort of)
- Set version number, when not bundling as phar
- Use real version number
- Fix phar-build
- New command
self-update
, will download and install the latest available version - New method
ftp-sync
to deploy code-bases to a remote ftp-instance - Introduction of a password-manager for retrieving passwords from the user or a special file
- Switch to box for building phars
- Do not run empty script lines (Fixes #8)
- Set folder for script-phase
- Set rootFolder fot task-specific scripts
- Support legacy host-types
Fabalicious is now rewritten in PHP, so we changed the name to make the separation more clear. Phabalicious is now a symfony console app and uses a more unix-style approach to arguments and options. E.g. instead of config:<name-of-config>
use --config=<name-of-config>
Python on Mac OS X is hard, multiple versions, multiple locations etc. Every machine needed some magic hands to get fabalicious working on it. Fabalicious itself is written in python 2.x, but the world is moving on to python 3. Fabric, the underlying lib we used for fabalicious is also moving forward to version 2 which is not backwards compatible yet with fabric 1. On the other side we are now maintaining more and more containerized setups where you do not need ssh to run commands in. A popular example is docker and its whole universe. Fabric couldn't help us here, and fabric is moving into a different direction.
And as a specialized Drupal boutique we write PHP all day long. To make it easier for our team to improve the toolset by ourselves and get help from the rest of the community, using PHP/ Symfony as a base for the rewrite was a no-brainer.
Why not use existing tools, like robo, deployer or other tools? These tools are valuable instruments in our tool-belt, but none of them fit our requirements completely. We see phabalicious as a meta-tool integrating with all of them in nice and easy way. We need a lot of flexibility as we need to support a lot of different tech- and hosting-stacks, so we decided to port fabalicious to phabalicious.
There's a lot of change going on here, but the structure of the fabfile.yaml is still the same.
As fabric (the underlying lib we used for fabalicious) is quite different to symfony console apps there are more subtle changes. For example you can invoke only one task per run. With fabalicious it was easy to run multiple commands:
fab config:mbb docker:run reset ssh
This is not possible anymore with phabalicious, you need to run the commands in sequence. If you need that on a regular basis, a script
might be a good workaround.
Most notably the handling of arguments and options has changed a lot. Fabric gave us a lot of flexibility here, symfony is more strict, but has on the other side some advantages for example self-documenting all possible arguments and options for a given task.
Old syntax | New syntax |
---|---|
fab config:mbb about |
phab about --config mbb |
fab config:mbb about |
phab --config=mbb about |
fab config:mbb blueprint:de deploy |
phab deploy --config mbb --blueprint de |
fab config:mbb blueprint:de deploy |
phab --config=mbb --blueprint=de mbb |
-
Introduction of ShellProviders, they will provide a shell, to run scripts into. Currently implemented are
local
, run the shell-commands on your local hostssh
, runs the shell-commands on a remote host.
Every shell-provider can have different required options. Currently add the needed shell-provider to your list of needs, e.g.
needs: - local - git - drush
-
new global settings
disableScripts
which will not add thescript
-method to the needs. -
there's a new command to list all blueprints:
list:blueprints
-
new shell-provider
dockerExec
which will start a shell with the help ofdocker exec
instead of ssh. -
new config-option
shellProvider
, where you can override the shell-provider to your liking.hosts: mbb: shellProvider: docker-exec
-
You can get help for a specific task via
phab help <task>
. It will show all possible options and some help. -
docker-compose version 23 changes the schema how names of docker-containers are constructed. To support this change we can now declare the needed service to compute the correct container-name from.
hosts: testHost: docker: service: web
The
name
will be discarded, if aservice
-entry is set. -
new method
ftp-sync
, it's a bit special. This method creates the app into a temporary folder, and syncs it vialftp
to a remote instance. Here's a complete example (most of them are provided via sensible defaults):excludeFiles: ftp-sync: - .git/ - node_modules hosts: ftpSyncSample: needs: - git - ftp-sync - local ftp: user: <ftp-user> password: <ftp-password> # host: <ftp-host> port: 21 lftpOptions: - --ignoreTime - --verbose=3 - --no-perms
You can add your password to the file
.phabalicious-credentials
(see passwords.md) so phabalicious pick it up.
-
docker:startRemoteAccess
is now the taskstart-remote-access
as it makes more sense. -
the
list
-task needed to be renamed tolist:hosts
. -
the
--list
task (which was built into fabric) is nowlist
. -
the
offline
-task got removed, instead add the-offline
-option and set it to 1, e.g.phab --offline=1 --config=mbb about
-
the task
logLevel
is replaced by the builtin-v
-option -
autocompletion works now differently than before, but now bash and zsh are supported. Please have a look into the documentation how to install it.
-
for fish-shells
phab _completion --generate-hook --shell-type fish | source
-
for zsh/bash-shells
source <(phab _completion --generate-hook)
-
-
listBackups
got renamed tolist:backups
-
backupDB
andbackupFiles
got removed, usephab backup files
orphab backup db
, the same mechanism works for restoring a backup. -
getFile
got renamed toget:file
-
putFile
got renamed toput:file
-
getBackup
got renamed toget:backup
-
getFilesDump
got renamed toget:files-backup
-
getProperty
got renamed toget:property
-
getSQLDump
got renamed toget:sql-dump
-
restoreSQLFromFile
got renamed torestore:sql-from-file
-
copyDBFrom
got renamed tocopy-from <config> db
-
copyFilesFrom
got renamed tocopy-from <config> files
-
installFrom
got renamed toinstall:from
- script-function
fail_on_error
is deprecated, usebreakOnFirstError(<bool>)
runLocally
is deprecated, add a new needlocal
to the lists of needs.strictHostKeyChecking
is deprecated, usedisableKnownHosts
instead.getProperty
is deprecated and got renamed toget-property
ssh
is deprecated and got renamed toshell
as some implementations might not use ssh.sshCommand
is deprecated and got renamed toshell:command
and will return the command to run a shell with the given configuration- the needs
drush7
,drush8
anddrush9
are deprecated, use the needdrush
and the newly introduced optionsdrupalVersion
anddrushVersion
instead, - the
slack
-configuration got removed and got replaced by a general notification solution, currently only with a mattermost implementation.