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.local
to overwrite vars from.env.dist
- execute
composer install
- execute
composer install -d satis/package-generator
to setup Satis (optional) - execute
php ./bin/console doctrine:schema:create
to create database schema
php ./bin/console doctrine:schema:create
php ./bin/console doctrine:migrations:migrate
php ./bin/console doctrine:fixtures:load
For 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:functional
Changes 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.
The Satis application is located at the folder satis
and contains all relevant
parts for the creation of the TYPO3 Composer Repository at
https://composer.typo3.org
. This job is started through crontab see cnf
folder for the configuration details.
To verify the download links generated by https://get.typo3.org/json
you can
run the following command:
php ./bin/console app:download:missing:list
This 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 develop
are automatically deployed to the development
site at get.typo3.dev or composer.typo3.dev.
This site is protected and can be accessed with the following credentials:
- User:
preview
- Password:
U@2C@3t295hb
SSH access is possible with the following command:
ssh get-dev@get01.typo3server.ch
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:
ssh get@get01.typo3server.ch
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