Commit 1ca93d77 authored by Thomas Löffler's avatar Thomas Löffler
Browse files

Merge branch 'develop-v10' into 'develop'

Upgrade to v10

See merge request t3o/typo3.org!353
parents 60163abf 54f25a64
Pipeline #8864 passed with stages
in 7 minutes and 14 seconds
......@@ -4,20 +4,20 @@
/commands/*/*.example
/commands/*/README.txt
/commands/host/launch
/commands/web/xdebug
/commands/db/mysql
/homeadditions/*.example
/homeadditions/README.txt
/.gitignore
/import.yaml
/docker-compose.yaml
/.ddev-docker-compose-base.yaml
/.ddev-docker-compose-full.yaml
/db_snapshots
/sequelpro.spf
/import-db
/.bgsync*
/config.*.y*ml
/.webimageBuild
/.dbimageBuild
/.bgsyncimageBuild
/.sshimageBuild
/.webimageExtra
/.dbimageExtra
......
#!/bin/bash
## Description: Runs the npm process to build frontend assets
## Usage: build-frontend
## Example: "ddev build-frontend"
npm --prefix private/typo3conf/ext/t3olayout/Build install
npm --prefix private/typo3conf/ext/t3olayout/Build run-script build
rm -Rf private/typo3conf/ext/t3olayout/Build/node_modules
#!/bin/bash
## Description: Uses typo3_console in ddev container
## Usage: console
## Example: "ddev console cache:flush"
vendor/bin/typo3cms $1
APIVersion: v1.12.0
name: typo3.org
type: typo3
docroot: public
php_version: "7.2"
php_version: "7.4"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
mariadb_version: "10.1"
nfs_mount_enabled: false
mariadb_version: "10.3"
provider: default
hooks:
post-import-db:
- exec: ./vendor/bin/typo3cms database:updateschema
post-start:
- exec: cp private/typo3conf/AdditionalConfiguration.ddev.php private/typo3conf/AdditionalConfiguration.php
- exec: composer install --ignore-platform-reqs -d /var/www/html
- exec: npm --prefix private/typo3conf/ext/t3olayout/Build install
- exec: npm --prefix private/typo3conf/ext/t3olayout/Build run-script build
- exec: composer install
- exec: ./vendor/bin/typo3cms install:generatepackagestates
- exec: ./vendor/bin/typo3cms install:extensionsetupifpossible
webimage_extra_packages: [php7.2-ldap]
webimage_extra_packages: [php7.4-ldap]
use_dns_when_possible: true
timezone: Europe/Berlin
# This config.yaml was created with ddev version v1.12.0
# webimage: drud/ddev-webserver:v1.12.1
# dbimage: drud/ddev-dbserver-mariadb-10.2:v1.12.0
# dbaimage: drud/phpmyadmin:v1.12.0
# bgsyncimage: drud/ddev-bgsync:v1.12.0
# This config.yaml was created with ddev version v1.14.1
# webimage: drud/ddev-webserver:v1.14.1
# dbimage: drud/ddev-dbserver-mariadb-10.2:v1.14.1
# dbaimage: phpmyadmin/phpmyadmin:5
# However we do not recommend explicitly wiring these images into the
# config.yaml as they may break future versions of ddev.
# You can update this config.yaml using 'ddev config'.
......@@ -45,7 +40,7 @@ timezone: Europe/Berlin
# docroot: <relative_path> # Relative path to the directory containing index.php.
# php_version: "7.2" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4"
# php_version: "7.3" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4"
# You can explicitly specify the webimage, dbimage, dbaimage lines but this
# is not recommended, as the images are often closely tied to ddev's' behavior,
......@@ -54,7 +49,6 @@ timezone: Europe/Berlin
# webimage: <docker_image> # nginx/php docker image.
# dbimage: <docker_image> # mariadb docker image.
# dbaimage: <docker_image>
# bgsyncimage: <docker_image>
# mariadb_version and mysql_version
# ddev can use many versions of mariadb and mysql
......@@ -100,20 +94,16 @@ timezone: Europe/Berlin
# These values specify the destination directory for ddev ssh and the
# directory in which commands passed into ddev exec are run.
# omit_containers: ["dba", "ddev-ssh-agent"]
# would omit the dba (phpMyAdmin) and ddev-ssh-agent containers. Currently
# only those two containers can be omitted here.
# Note that these containers can also be omitted globally in the
# ~/.ddev/global_config.yaml or with the "ddev config global" command.
# omit_containers: ["db", dba", "ddev-ssh-agent"]
# Currently only these containers are supported. Some containers can also be
# omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit
# the "db" container, several standard features of ddev that access the
# database container will be unusable.
# nfs_mount_enabled: false
# Great performance improvement but requires host configuration first.
# See https://ddev.readthedocs.io/en/stable/users/performance/#using-nfs-to-mount-the-project-into-the-container
# webcache_enabled: false (deprecated)
# Was only for macOS, but now deprecated.
# See https://ddev.readthedocs.io/en/stable/users/performance/#webcache
# host_https_port: "59002"
# The host port binding for https can be explicitly specified. It is
# dynamic unless otherwise specified.
......@@ -130,11 +120,13 @@ timezone: Europe/Berlin
# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic
# unless explicitly specified.
# phpmyadmin_port: "1000"
# The PHPMyAdmin port can be changed from the default 8036
# phpmyadmin_port: "8036"
# phpmyadmin_https_port: "8037"
# The PHPMyAdmin ports can be changed from the default 8036 and 8037
# mailhog_port: "1001"
# The MailHog port can be changed from the default 8025
# mailhog_port: "8025"
# mailhog_https_port: "8026"
# The MailHog ports can be changed from the default 8025 and 8026
# webimage_extra_packages: [php-yaml, php7.3-ldap]
# Extra Debian packages that are needed in the webimage can be added here
......@@ -158,6 +150,17 @@ timezone: Europe/Berlin
# Provide extra flags to the "ngrok http" command, see
# https://ngrok.com/docs#http or run "ngrok http -h"
# disable_settings_management: false
# If true, ddev will not create CMS-specific settings files like
# Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalSettings.php
# In this case the user must provide all such settings.
# no_project_mount: false
# (Experimental) If true, ddev will not mount the project into the web container;
# the user is responsible for mounting it manually or via a script.
# This is to enable experimentation with alternate file mounting strategies.
# For advanced users only!
# provider: default # Currently either "default" or "pantheon"
#
# Many ddev commands can be extended to run tasks before or after the
......
......@@ -4,3 +4,7 @@ services:
web:
environment:
- TYPO3_CONTEXT=Development
- DB_NAME=db
- DB_HOST=db
- DB_USERNAME=db
- DB_PASSWORD=db
......@@ -3,47 +3,15 @@ include:
ref: master
file: '/Configuration/GitLab/t3o-builds.yml'
stages:
- maintenance
- dump
- test
- build
- layout
- deploy
variables:
GIT_STRATEGY: "none"
GIT_SSL_NO_VERIFY: "true"
STAGE_PORT: 22200
STAGE_HOST: "stage.typo3.org"
STAGE_HOST: "typo3.dev"
PRODUCTION_PORT: 22201
PRODUCTION_HOST: "typo3.org"
STAGE_USER: "tthreeorgstage"
DUMP_USER: "t3o-stage"
STAGE_USER: "t3o-stage"
DUMP_EXCLUDE_TABLES_LIST: "be_groups,be_sessions,be_users,cf_cache_hash,cf_cache_hash_tags,cf_cache_imagesizes,cf_cache_imagesizes_tags,cf_cache_news_category,cf_cache_news_category_tags,cf_cache_pages,cf_cache_pages_tags,cf_cache_pagesection,cf_cache_pagesection_tags,cf_cache_rootline,cf_cache_rootline_tags,cf_extbase_datamapfactory_datamap,cf_extbase_datamapfactory_datamap_tags,cf_extbase_object,cf_extbase_object_tags,cf_extbase_reflection,cf_extbase_reflection_tags,cf_tx_solr,cf_tx_solr_configuration,cf_tx_solr_configuration_tags,cf_tx_solr_tags,fe_groups,fe_sessions,fe_users,sys_domain,sys_log,tx_solr_cache,tx_solr_cache_tags"
PHP_EXECUTABLE: "PHP_INI_SCAN_DIR=:/etc/php72/user/${STAGE_USER}/:/home/${STAGE_USER}/cnf/ /opt/php/php72/bin/php"
.maintenance: &maintenance_template
variables:
GIT_STRATEGY: none
stage: maintenance
when: manual
image:
name: composer:1
entrypoint: ["/bin/sh", "-c"]
before_script:
- apk add rsync --update
- mkdir -p /root/.ssh/
- eval $(ssh-agent -s)
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY_STAGE" | ssh-add -
- ssh-keyscan -p ${STAGE_PORT} ${STAGE_HOST} >> /root/.ssh/known_hosts
Get dump for local environment:
<<: *maintenance_template
script:
- mkdir dump
- ssh -p ${STAGE_PORT} ${STAGE_USER}@${STAGE_HOST} "${PHP_EXECUTABLE} ./ci/current/vendor/bin/typo3cms database:export -c Default -e 'cf_*' -e 'cache_*' -e '[bf]e_sessions' -e '[bf]e_users' -e 'sys_log' -e 'sys_history' -e 'tx_solr_*' -e 'tx_igldapssoauth_config' | gzip -9 -c" > ./dump/dump.sql.gz
artifacts:
paths:
- ./dump/
expire_in: 1d
PHP_EXECUTABLE: "/opt/php/php72/bin/php"
ADDITIONAL_TABLE_EXCLUDES: "-e 'tx_certifications_*' -e 'tx_t3odonation_domain_model_donation' -e 'tx_t3omembership_domain_model_member' -e 'tx_randombanners_domain_model_banner'"
......@@ -8,14 +8,16 @@ require_once '/tmp/vendor/deployer/recipes/recipe/rsync.php';
$sharedDirectories = [
'private/fileadmin',
'private/uploads',
'public/.well-known'
'public/.well-known',
'var'
];
set('shared_dirs', $sharedDirectories);
$sharedFiles = [
'private/typo3conf/AdditionalConfiguration.php',
'.cachetool.yml',
'public/services/api-keys.php'
'public/services/api-keys.php',
'private/typo3conf/ext/t3olayout/Configuration/TypoScript/Deployment/Secret.typoscript'
];
set('shared_files', $sharedFiles);
......@@ -53,7 +55,7 @@ set('rsync', [
]);
set('rsync_src', './');
inventory('./.gitlab-ci/deployer/servers.yml');
set('php', '/opt/php/php72/bin/php');
set('php', 'php');
set('bin_folder', 'vendor/bin/');
task('solr_host', function () {
......@@ -61,7 +63,11 @@ task('solr_host', function () {
});
task('typo3', function () {
if (get('stage') === 'production') {
set('php', '/opt/php/php72/bin/php');
}
run('cd {{release_path}} && {{php}} {{bin_folder}}typo3cms install:generatepackagestates');
run('cd {{release_path}} && {{php}} {{bin_folder}}typo3cms database:updateschema');
run('cd {{release_path}} && {{php}} {{bin_folder}}typo3cms install:extensionsetupifpossible');
});
......@@ -76,9 +82,9 @@ task('deploy', [
'rsync',
'deploy:shared',
'deploy:writable',
'solr_host',
'typo3',
'deploy:symlink',
'solr_host',
'cache',
'cleanup'
]);
master:
stage: production
hostname: typo3.org
port: 22201
user: tthreeorg
stage: master
hostname: t3o03.typo3server.ch
user: t3o-prod
writable_mode: chmod
forward_agent: true
deploy_path: ~/ci
keep_releases: 2
develop:
stage: stage
hostname: stage-v9.typo3.org
port: 22200
user: tthreeorgstage
stage: develop
hostname: typo3.dev
user: t3o-stage
writable_mode: chmod
forward_agent: true
deploy_path: ~/ci
......
{
"name": "t3o/typo3.org",
"description": "Website for TYPO3.org",
"minimum-stability": "dev",
"prefer-stable": true,
"authors": [
{
"name": "t3o team",
......@@ -46,34 +48,31 @@
}
],
"require": {
"apache-solr-for-typo3/solr": "^10.0",
"clickstorm/cs_seo": "^4.2",
"apache-solr-for-typo3/solr": "dev-master",
"cweagans/composer-patches": "^1.6",
"derhansen/sf_event_mgt": "^4.0",
"georgringer/news": "^7.0",
"derhansen/sf_event_mgt": "^5.0",
"georgringer/news": "^8.0",
"gordalina/cachetool": "^4.0",
"nitsan/ns-youtube": "^1.1",
"reelworx/rx-shariff": "^12.2",
"t3g/hubspot-forms": "dev-develop",
"t3o/certifications": "^2.2",
"t3o/randombanners": "^1.0",
"t3o/t3o_donation": "@dev",
"t3o/t3o_membership": "^2.1",
"t3o/t3olayout": "^4.0",
"reelworx/rx-shariff": "^13.0",
"t3g/hubspot-forms": "^1.1",
"t3o/certifications": "^3.0",
"t3o/randombanners": "^2.0",
"t3o/t3o_donation": "^1.0",
"t3o/t3o_membership": "^3.0",
"t3o/t3olayout": "^5.0",
"t3o/t3org_layout": "@dev",
"t3o/typo3_roadmap": "^2.2",
"typo3/cms-linkvalidator": "^9.5",
"typo3/cms-redirects": "^9.5",
"typo3/cms-seo": "^9.5",
"typo3/cms-sys-note": "^9.5"
},
"require-dev": {
"ichhabrecht/filefill": "^2.0"
"t3o/typo3_roadmap": "^4.0",
"typo3/cms-dashboard": "^10.4",
"typo3/cms-linkvalidator": "^10.4",
"typo3/cms-redirects": "^10.4",
"typo3/cms-seo": "^10.4",
"typo3/cms-sys-note": "^10.4",
"yoast-seo-for-typo3/yoast_seo": "^6.0"
},
"config": {
"sort-packages": true,
"platform": {
"php": "7.2.13"
"php": "7.4.4"
}
},
"extra": {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -4,7 +4,7 @@ baseVariants:
base: 'https://typo3.org.ddev.site'
condition: 'applicationContext == "Development"'
-
base: 'https://stage.typo3.org'
base: 'https://typo3.dev'
condition: 'applicationContext == "Testing"'
-
base: 'https://typo3.org'
......
<?php
declare(strict_types = 1);
namespace T3o\T3oDonation\Controller;
use TYPO3\CMS\Core\Messaging\FlashMessage;
......@@ -35,7 +36,7 @@ class DonationController extends ActionController
* @TYPO3\CMS\Extbase\Annotation\Inject
* @TYPO3\CMS\Extbase\Annotation\ORM\Lazy
*/
protected $configurationUtility = null;
protected ?\TYPO3\CMS\Core\Configuration\ExtensionConfiguration $configurationUtility = null;
/**
* accountRepository
......@@ -44,7 +45,7 @@ class DonationController extends ActionController
* @TYPO3\CMS\Extbase\Annotation\Inject
* @TYPO3\CMS\Extbase\Annotation\ORM\Lazy
*/
protected $accountRepository = null;
protected ?\T3o\T3oDonation\Domain\Repository\AccountRepository $accountRepository = null;
/**
* donationRepository
......@@ -53,7 +54,7 @@ class DonationController extends ActionController
* @TYPO3\CMS\Extbase\Annotation\Inject
* @TYPO3\CMS\Extbase\Annotation\ORM\Lazy
*/
protected $donationRepository;
protected \T3o\T3oDonation\Domain\Repository\DonationRepository $donationRepository;
/**
* ipnService
......@@ -62,7 +63,7 @@ class DonationController extends ActionController
* @TYPO3\CMS\Extbase\Annotation\Inject
* @TYPO3\CMS\Extbase\Annotation\ORM\Lazy
*/
protected $ipnService;
protected \T3o\T3oDonation\Service\PayPalIpn $ipnService;
/**
* mailService
......@@ -71,7 +72,7 @@ class DonationController extends ActionController
* @TYPO3\CMS\Extbase\Annotation\Inject
* @TYPO3\CMS\Extbase\Annotation\ORM\Lazy
*/
protected $mailService;
protected \T3o\T3oDonation\Service\Mail $mailService;
/**
* Adds custom JS to page.
......
<?php
declare(strict_types = 1);
namespace T3o\T3oDonation\Domain\Model;
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
......@@ -27,21 +27,21 @@ class Account extends AbstractEntity
* @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
* @var string
*/
protected $name;
protected string $name = '';
/**
* @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
* @TYPO3\CMS\Extbase\Annotation\Validate("EmailAddress")
* @var string
*/
protected $emailNotification;
protected string $emailNotification = '';
/**
* @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
* @TYPO3\CMS\Extbase\Annotation\Validate("EmailAddress")
* @var string
*/
protected $emailPaypal;
protected string $emailPaypal;
/**
* @return string
......
<?php
declare(strict_types = 1);
namespace T3o\T3oDonation\Domain\Model;
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
......@@ -26,109 +26,109 @@ class Donation extends AbstractEntity
/**
* @var bool
*/
protected $hidden;
protected bool $hidden = false;
/**
* @var string
*/
protected $name;
protected string $name = '';
/**
* @var string
*/
protected $company;
protected string $company = '';
/**
* @var string
*/
protected $addressStreet;
protected string $addressStreet = '';
/**
* @var string
*/
protected $addressZip;
protected string $addressZip = '';
/**
* @var string
*/
protected $addressCity;
protected string $addressCity = '';
/**
* @var string
*/
protected $addressState;
protected string $addressState = '';
/**
* @var string
*/
protected $addressCountry;
protected string $addressCountry = '';
/**
* @var string
*/
protected $addressCountryCode;
protected string $addressCountryCode = '';
/**
* @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
* @TYPO3\CMS\Extbase\Annotation\Validate("EmailAddress")
* @var string
*/
protected $email;
protected string $email = '';
/**
* @var string
*/
protected $url;
protected string $url = '';
/**
* @var float
*/
protected $amount;
protected float $amount = 0.00;
/**
* @var float
*/
protected $fee;
protected float $fee = 0.00;
/**
* @var string
*/
protected $currency;
protected string $currency = '';
/**
* @var \TYPO3\CMS\Extbase\Domain\Model\FrontendUser
*/
protected $feUser;
protected ?\TYPO3\CMS\Extbase\Domain\Model\FrontendUser $feUser = null;
/**
* @var string
*/
protected $comment;
protected string $comment = '';
/**
* @var \T3o\T3oDonation\Domain\Model\Account
*/
protected $account;
protected ?Account $account = null;
/**
* @var string
*/
protected $paypalTransactionId;
protected string $paypalTransactionId = '';
/**
* @var \DateTime
*/
protected $date;
protected ?\DateTime $date = null;
/**
* @var \DateTime
*/
protected $crdate;
protected ?\DateTime $crdate = null;
/**
* @return bool
*/
public function getHidden()
public function getHidden(): bool
{
return $this->hidden;
}
......@@ -136,7 +136,7 @@ class Donation extends AbstractEntity
/**
* @param bool $hidden
*/
public function setHidden($hidden)
public function setHidden(bool $hidden): void
{
$this->hidden = $hidden;
}
......@@ -144,7 +144,7 @@ class Donation extends AbstractEntity
/**
* @return string
*/
public function getName()
public function getName(): string
{
return $this->name;
}
......@@ -152,7 +152,7 @@ class Donation extends AbstractEntity
/**
* @param string $name