Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
6692ad3
Set up branch to become 5.0 in the future
ibexa-yuna Mar 14, 2024
388344a
Merge remote-tracking branch 'origin/4.6'
webhdx Mar 20, 2024
709567b
Removed repository-wide pull request template
ibexa-yuna Mar 27, 2024
35531e8
Bump PHP version in p.sh configuration (#75)
adamwojs May 11, 2024
cc09cf5
Merge branch '4.6'
ibexa-yuna May 31, 2024
86de72d
Merge branch '4.6'
adamwojs Jul 8, 2024
1c6429c
Merge remote-tracking branch 'origin/4.6'
webhdx Jul 10, 2024
b0dddbb
Merge remote-tracking branch 'origin/4.6'
ViniTou Jul 22, 2024
641f99c
Merge branch '4.6'
glye Jul 30, 2024
bbf5268
IBX-8138: [Rector] Applied rules from Symfony 5 Rector set lists (#80)
alongosz Aug 9, 2024
55cf51a
Merge remote-tracking branch 'origin/4.6'
ViniTou Sep 6, 2024
8e0689a
IBX-8811: Rebranded SiteAccess session prefix (#82)
konradoboza Oct 2, 2024
31e98b7
Merged branch '4.6'
konradoboza Oct 8, 2024
94ef6ab
Merge remote-tracking branch 'origin/4.6'
ViniTou Nov 28, 2024
0417cae
Merge remote-tracking branch 'origin/4.6'
mnocon Dec 27, 2024
00e95d8
Merge branch '4.6'
ibexa-yuna Jan 22, 2025
3e0cab2
IBX-8470: Upgraded codebase to Symfony 6 (#84)
alongosz Feb 4, 2025
ab1c37b
[Rector] Added rector configuration
adamwojs Feb 19, 2025
3ae3833
[CLI] Replaced deprecated Command::{$defaultName, $defaultDescription…
adamwojs Feb 19, 2025
316adf1
[Rector] Enabled Symfony 6.2 ... 6.4 rule sets
adamwojs Feb 19, 2025
e796be5
[Rector] Enabled rector on CI
adamwojs Feb 19, 2025
0a79d7a
[PHPStan] Bumped PHPStan to ^2.0
alongosz Mar 25, 2025
77a216c
IBX-9898: Adjusted `ibexa:install` command to run in non-interactive …
konradoboza Apr 29, 2025
47ec7d6
IBX-8471: Upgraded codebase to Symfony 7 (#89)
alongosz May 12, 2025
d485035
Merge branch '4.6'
adamwojs May 14, 2025
3cd2c02
[Rector] Added Symfony 7.0..7.2 sets to rector configuration
adamwojs May 16, 2025
e4f7bf6
IBX-9942: Updated deployment process to use Symfony Cloud configurato…
wiewiurdp May 21, 2025
2eac613
IBX-9916: Bump Node from v18.19.0 to v22.16.0 for v5 (#95)
micszo Jun 23, 2025
c2477f5
IBX-10228: Bumped symfony/* to ^7.3 (#97)
adamwojs Jul 13, 2025
19a09ec
IBX-10312: Rebranded VCL files (#96)
adriendupuis Jul 14, 2025
6bda5ab
[5.0] Bump Solr, MariaDB, Redis & Elastic versions for v5. Disable G…
micszo Aug 5, 2025
9d5de20
[CI] Adjusted secrets (#100)
konradoboza Oct 8, 2025
2c22c56
updated vcl to re-enable symfony profiler (#99)
Sztig Nov 21, 2025
c473e65
Merged branch '4.6' into main
alongosz Dec 9, 2025
756855c
IBX-10495: Updated info on Elasticsearch v8 service
barw4 Jan 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 0 additions & 16 deletions .github/pull_request_template.md

This file was deleted.

18 changes: 8 additions & 10 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ jobs:
strategy:
matrix:
php:
- '8.0'
- '8.3'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5

- name: Setup PHP Action
uses: shivammathur/setup-php@v2
Expand All @@ -26,9 +26,9 @@ jobs:
extensions: 'pdo_sqlite, gd'
tools: cs2pr

- uses: "ramsey/composer-install@v1"
- uses: ramsey/composer-install@v3
with:
dependency-versions: "highest"
dependency-versions: highest

- name: Run code style check
run: composer run-script check-cs -- --format=checkstyle | cs2pr
Expand All @@ -42,12 +42,10 @@ jobs:
fail-fast: false
matrix:
php:
- '7.4'
- '8.0'
- '8.1'
- '8.3'

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5

- name: Setup PHP Action
uses: shivammathur/setup-php@v2
Expand All @@ -57,9 +55,9 @@ jobs:
extensions: pdo_sqlite, gd
tools: cs2pr

- uses: "ramsey/composer-install@v1"
- uses: ramsey/composer-install@v3
with:
dependency-versions: "highest"
dependency-versions: highest

- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
Expand Down
27 changes: 27 additions & 0 deletions .github/workflows/rector.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Rector PHP

on:
push:
branches:
- main
- '[0-9]+.[0-9]+'
pull_request: ~

jobs:
rector:
name: Run rector
runs-on: "ubuntu-22.04"
strategy:
matrix:
php:
- '8.3'
steps:
- uses: actions/checkout@v5

- uses: ibexa/gh-workflows/actions/composer-install@main
with:
gh-client-id: ${{ secrets.AUTOMATION_CLIENT_ID }}
gh-client-secret: ${{ secrets.AUTOMATION_CLIENT_SECRET }}

- name: Run rector
run: vendor/bin/rector process --dry-run --ansi
25 changes: 13 additions & 12 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,23 @@
}
],
"require": {
"php": "^7.4 || ^8.0",
"php": ">=8.3",
"composer-plugin-api": "^2.0",
"composer/semver": "^3.2"
},
"require-dev": {
"composer/composer": "^2.0.8",
"phpstan/phpstan": "^1",
"phpstan/phpstan-phpunit": "^1",
"phpstan/phpstan-webmozart-assert": "^1",
"symfony/console": "^5.2",
"symfony/dotenv": "^5.2",
"symfony/finder": "^5.2",
"symfony/filesystem": "^5.2",
"symfony/phpunit-bridge": "^5.2",
"symfony/process": "^5.2",
"ibexa/code-style": "^1.0"
"ibexa/code-style": "~2.0.0",
"ibexa/rector": "~5.0.x-dev",
"phpstan/phpstan": "^2.0",
"phpstan/phpstan-phpunit": "^2.0",
"phpstan/phpstan-webmozart-assert": "^2.0",
"symfony/console": "^7.3",
"symfony/dotenv": "^7.3",
"symfony/filesystem": "^7.3",
"symfony/finder": "^7.3",
"symfony/phpunit-bridge": "^7.3",
"symfony/process": "^7.3"
},
"autoload": {
"psr-4": {
Expand Down Expand Up @@ -60,7 +61,7 @@
},
"extra": {
"branch-alias": {
"dev-main": "4.6.x-dev"
"dev-main": "5.0.x-dev"
},
"class": "Ibexa\\PostInstall\\PostInstall"
}
Expand Down
27 changes: 27 additions & 0 deletions rector.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

/**
* @copyright Copyright (C) Ibexa AS. All rights reserved.
* @license For full copyright and license information view LICENSE file distributed with this source code.
*/
declare(strict_types=1);

use Ibexa\Contracts\Rector\Sets\IbexaSetList;
use Rector\Config\RectorConfig;
use Rector\Symfony\Set\SymfonySetList;

return RectorConfig::configure()
->withPaths([
__DIR__ . '/src',
])
->withSets([
IbexaSetList::IBEXA_50->value,
SymfonySetList::SYMFONY_60,
SymfonySetList::SYMFONY_61,
SymfonySetList::SYMFONY_62,
SymfonySetList::SYMFONY_63,
SymfonySetList::SYMFONY_64,
SymfonySetList::SYMFONY_70,
SymfonySetList::SYMFONY_71,
SymfonySetList::SYMFONY_72,
]);
1 change: 0 additions & 1 deletion resources/platformsh/common/4.6/.nvmrc

This file was deleted.

1 change: 1 addition & 0 deletions resources/platformsh/common/5.0/.nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v22.16.0
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Reach out to platform.sh support to get help on this and insight into your disk/memory usage.

mysqldb:
type: mariadb:10.4
type: mariadb:10.11
disk: 1024
configuration:
schemas:
Expand All @@ -24,7 +24,7 @@ mysqldb:

# For use by Symfony Cache (used by Ibexa DXP SPI Persistence Cache)
rediscache:
type: 'redis:5.0'
type: 'redis:7.2'
# For cache you might need to increase the size of your plan if your installation has a sizeable amount of content.
# Check with platform.sh staff if in doubt on this, and if it would make sense to configure larger redis size here.
# size: L
Expand All @@ -37,14 +37,14 @@ rediscache:
# If you wish to have a separate Redis instance for sessions, uncomment
# this service and the corresponding relationship in .platform.app.yaml.
#redissession:
# type: 'redis:5.0'
# type: 'redis:7.2'
# configuration:
# maxmemory_policy: allkeys-lru
#
# Alternatively if you have a requirement that sessions are persisted across server/redis restarts,
# have storage space to spare for this, and don't mind a bit slower instance type of redis
#redissession:
# type: redis-persistent:5.0
# type: redis-persistent:7.2
# Disk size should be bigger than Redis' "maxmemory" setting due to https://redis.io/topics/persistence#log-rewriting.
# The memory given to Redis depends on your plan and "size: ". Adjust "disk: " accordingly.
# disk: 512
Expand All @@ -57,7 +57,7 @@ rediscache:
# Multi core setup is currently not supported on Platform.sh. Sharding does not work as the cores are
# unable to reach each other
#solrsearch:
# type: solr:7.7
# type: solr:8.11
# disk: 512
# configuration:
# configsets:
Expand All @@ -71,10 +71,8 @@ rediscache:
# collection1:
# core: collection1

# If you wish to use elasticsearch, uncomment this service and the corresponding relationship in .platform.app.yaml.
#elasticsearch:
# type: elasticsearch:7.7
# disk: 512
# If you wish to use elasticsearch, uncomment the corresponding relationship in .platform.app.yaml
# and see documentation on how to define ES service: https://docs.upsun.com/add-services/elasticsearch.html

# Due to logic in app/config/env/platformsh.php, do not change the service name to something different than 'varnish'
varnish:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Varnish VCL for Platform.sh with:
// - Varnish 6.0 or higher (6.0LTS recommended, and is what we mainly test against)
// - Varnish xkey vmod (via varnish-modules package 0.10.2 or higher, or via Varnish Plus)
// - eZ Platform 3.x or higher with ezplatform-http-cache (this) bundle
// - Ibexa DXP 5.x or higher with ibexa/http-cache bundle
//

// Not applicable on Platform.sh:
Expand All @@ -25,7 +25,7 @@ acl debuggers {
sub vcl_recv {

// Set the backend
//set req.backend_hint = ezplatform;
//set req.backend_hint = ibexa;
// Platform.sh specific:
set req.backend_hint = app.backend();

Expand All @@ -40,7 +40,7 @@ sub vcl_recv {
}

// Trigger cache purge if needed
call ez_purge;
call ibexa_purge;

// Don't cache requests other than GET and HEAD.
if (req.method != "GET" && req.method != "HEAD") {
Expand All @@ -60,8 +60,8 @@ sub vcl_recv {
if (req.http.cookie) {
set req.http.cookie = ";" + req.http.cookie;
set req.http.cookie = regsuball(req.http.cookie, "; +", ";");
set req.http.cookie = regsuball(req.http.cookie, ";(eZSESSID[^=]*)=", "; \1=");
set req.http.cookie = regsuball(req.http.cookie, ";(ibexa-[^=]*)=", "; \1=");
set req.http.cookie = regsuball(req.http.cookie, ";(IBX_SESSION_ID[^=]*)=", "; \1=");
set req.http.cookie = regsuball(req.http.cookie, ";(ibexa[-_][^=]*)=", "; \1=");
set req.http.cookie = regsuball(req.http.cookie, ";[^ ][^;]*", "");
set req.http.cookie = regsuball(req.http.cookie, "^[; ]+|[; ]+$", "");

Expand All @@ -81,7 +81,7 @@ sub vcl_recv {
set req.url = std.querysort(req.url);

// Retrieve client user context hash and add it to the forwarded request.
call ez_user_context_hash;
call ibexa_user_context_hash;

// If it passes all these tests, do a lookup anyway.
return (hash);
Expand Down Expand Up @@ -146,13 +146,13 @@ sub vcl_backend_response {
// Handle purge
// You may add FOSHttpCacheBundle tagging rules
// See http://foshttpcache.readthedocs.org/en/latest/varnish-configuration.html#id4
sub ez_purge {
sub ibexa_purge {
// Retrieve purge token, needs to be here due to restart, match for PURGE method done within
call ez_invalidate_token;
call ibexa_invalidate_token;

# Adapted with acl from vendor/friendsofsymfony/http-cache/resources/config/varnish/fos_tags_xkey.vcl
if (req.method == "PURGEKEYS") {
call ez_purge_acl;
call ibexa_purge_acl;

# If neither of the headers are provided we return 400 to simplify detecting wrong configuration
if (!req.http.xkey-purge && !req.http.xkey-softpurge) {
Expand All @@ -175,13 +175,13 @@ sub ez_purge {

# Adapted with acl from vendor/friendsofsymfony/http-cache/resources/config/varnish/fos_purge.vcl
if (req.method == "PURGE") {
call ez_purge_acl;
call ibexa_purge_acl;

return (purge);
}
}

sub ez_purge_acl {
sub ibexa_purge_acl {
if (req.http.x-invalidate-token) {
if (req.http.x-invalidate-token != req.http.x-backend-invalidate-token) {
return (synth(405, "Method not allowed"));
Expand All @@ -192,7 +192,7 @@ sub ez_purge_acl {
}

// Sub-routine to get client user context hash, used to for being able to vary page cache on user rights.
sub ez_user_context_hash {
sub ibexa_user_context_hash {

// Prevent tampering attacks on the hash mechanism
if (req.restarts == 0
Expand Down Expand Up @@ -241,7 +241,7 @@ sub ez_user_context_hash {
}

// Sub-routine to get invalidate token.
sub ez_invalidate_token {
sub ibexa_invalidate_token {
// Prevent tampering attacks on the token mechanisms
if (req.restarts == 0
&& (req.http.accept ~ "application/vnd.ezplatform.invalidate-token"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,13 +161,17 @@ hooks:
echo "TIP: If you need to authenticate against Github/Gitlab/updates.ibexa.co, use COMPOSER_AUTH env variable"
echo "See: https://docs.platform.sh/guides/general/composer-auth.html#set-the-envcomposer_auth-project-variable"
fi

composer install --no-dev --prefer-dist --no-progress --no-interaction --optimize-autoloader

curl -fs https://get.symfony.com/cloud/configurator | bash

NODE_VERSION=v22.16.0 symfony-build

# Deploy hook, access to services & done once (per cluster, not per node), only mounts are writable at this point
# Note: Http traffic is paused while this is running, so for prod code this should finish as fast as possible, < 30s
deploy: |
set -e

symfony-deploy

if [ ! -f public/var/.platform.installed ]; then
# Configure ElasticSearch mappings
Expand All @@ -178,9 +182,10 @@ hooks:
rm -Rf var/cache/$APP_ENV/*
php bin/console cache:pool:clear cache.redis
sh bin/platformsh_prestart_cacheclear.sh
SKIP_HTTPCACHE_PURGE="1" php -d memory_limit=-1 bin/console ibexa:install
SKIP_HTTPCACHE_PURGE="1" php -d memory_limit=-1 bin/console ibexa:install --no-interaction
unset SKIP_HTTPCACHE_PURGE
php bin/console ibexa:graphql:generate-schema
# If you use GraphQL, uncomment this to generate the schema
##php bin/console ibexa:graphql:generate-schema

touch public/var/.platform.installed
fi
Expand Down
Loading
Loading