Symfony application for release notes, download redirects and JSON API for releases.
Composer installation, database creation or migration are automatically done at startup. So simply run
ddev start
and start hacking. To head to the project in the browser run
ddev launch
- create and edit
.env.localto overwrite vars from.env.dist - execute
composer install - execute
php ./bin/console doctrine:schema:createto create database schema
php ./bin/console doctrine:schema:createphp ./bin/console doctrine:migrations:migratephp ./bin/console doctrine:fixtures:loadFor DDEV installations prepend ddev before the composer commands.
composer test
composer test:php:cgl
composer test:php:lint
composer test:php:unit
composer test:php:functionalChanges and commits are made in the first place to the branch develop which
will be deployed to development and staging site see later. Please create
pull request always to this branch and not directly to production. Every commit
is checked by our continous integration workflow on Github to ensure no
breaking changes e.g. in the API.
After a pull request is merged it gets automatically deployed and more manual
checks and tests can be done before cherry picking the commit to the production
branch which is deployed then to the production site.
In the dev context you can authorize your requests with the username developer
and the password password by default.
To verify the download links generated by https://get.typo3.org/json you can
run the following command:
php ./bin/console app:download:missing:listThis will create the missing-downloads.yaml with the links to Sourceforge to get the missing packages from there.
In case authorization does not succeed the reason might be that the web server tries to handle the authentication and does not expose the information to the according PHP process - it has been spotted on Apache/PHP-FCGID setups.
Add the following to the beginning of .htaccess:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Currently there are 4 Symfony environments defined:
- dev (for local development)
- test (for integration testing on Github)
- staging (for the staging server)
- prod (for the production server)
Additional configuration for the webserver can be found in the folder cnf.
All pushs to the branch production are automatically deployed to the production
site at get.typo3.org or composer.typo3.org.
SSH access is possible with the following command:
The deployments are implemented by Github Actions and Magallanes. Therefor the following secrets needs to be defined at Github:
- SSH_PRIVATE_KEY: the encrypted private ssh key to access the server
- SSH_PASSPHRASE: the passphrase to decrypt the private key
On the servers the files are located in the directory site and there are two
main folders where mage holds the deployed releases and shared contains
all shared data like database, satis files or the cache.
See also Magallanes Documentation.
If there are caching issues during new releases the following commands have to be executed at the server after the release announcement by Darth:
~/site/mage/current/bin/console cache:clear
~/site/mage/current/bin/console cache:warmup