Account created on 23 February 2007, over 17 years ago
#

Merge Requests

More

Recent comments

🇫🇷France andypost

Started pipeline but the mariadbd name used only in 10.6 image, so fixed 10.6 and 10.3.22 images

🇫🇷France andypost

Follow-up could be useful, at least a test to iterate not in production

🇫🇷France andypost

I bet even start using local runner's cache can speed-up pipelines

Simplest approach is just add fallback cache https://docs.gitlab.com/ee/ci/caching/#per-cache-fallback-keys
Then tune-up push/pull policy https://docs.gitlab.com/ee/ci/caching/#use-a-variable-to-control-a-jobs-...

Alternatively, cspell for example (7.5MB) can use artifacts via https://docs.gitlab.com/ee/ci/jobs/job_artifacts.html#with-a-cicd-job-token

🇫🇷France andypost

Is there a way to test it to prevent this kind of errors? for example assert() in parser...

🇫🇷France andypost

There's only 2 child issues left, both are features so the meta could be considered fixed

🇫🇷France andypost

Added and enabled extension to 8.3-dev image and started CI using it to check if any effect

$ docker run --rm drupalci/php-8.3-apache:dev php --ri opentelemetry

opentelemetry

opentelemetry hooks => enabled
extension version => 1.0.3

Directive => Local Value => Master Value
opentelemetry.conflicts => no value => no value
opentelemetry.validate_hook_functions => On => On
opentelemetry.allow_stack_extension => Off => Off
🇫🇷France andypost

I'd better keep to throw exception for security reasons, assertions are usually disabled

🇫🇷France andypost

I'm using following config ATM for Nginx Unit

{
	"access_log": "/dev/stdout",
	"listeners": {
		"*:80": {
			"pass": "routes/main"
		}
	},

	"routes": {
		"main": [
			{
				"match": {
					"uri": [
						"!*/.well-known/*",
						"/vendor/*",
						"/core/profiles/demo_umami/modules/demo_umami_content/default_content/*",
						"*.engine",
						"*.inc",
						"*.install",
						"*.make",
						"*.module",
						"*.po",
						"*.profile",
						"*.sh",
						"*.theme",
						"*.tpl",
						"*.twig",
						"*.xtmpl",
						"*.yml",
						"*/.*",
						"*/Entries*",
						"*/Repository",
						"*/Root",
						"*/Tag",
						"*/Template",
						"*/composer.json",
						"*/composer.lock",
						"*/web.config",
						"*sql",
						"*.bak",
						"*.orig",
						"*.save",
						"*.swo",
						"*.swp",
						"*~"
					]
				},

				"action": {
					"return": 404
				}
			},
			{
				"match": {
					"uri": [
						"/core/authorize.php",
						"/core/install.php",
						"/core/modules/statistics/statistics.php",
						"~^/core/modules/system/tests/https?\\.php",
						"/core/rebuild.php",
						"/update.php",
						"/update.php/*"
					]
				},

				"action": {
					"pass": "applications/drupal/direct"
				}
			},
			{
				"match": {
					"uri": [
						"!/index.php*",
						"*.php"
					]
				},

				"action": {
					"return": 404
				}
			},
			{
				"match": {
					"uri": [
						"~^.*css_[a-zA-Z0-9-_]+\\.css(?:\\?.*)?$",
						"~^.*js_[a-zA-Z0-9-_]+\\.js(?:\\?.*)?$"
					],

					"headers": [
						{
							"Accept-Encoding": "*gzip*"
						}
					]
				},

				"action": {
					"pass": "routes/assets_gz"
				}
			},
			{
				"action": {
					"share": "/var/www/html/web$uri",
					"fallback": {
						"pass": "applications/drupal/index"
					}
				}
			}
		],

		"assets_gz": [
			{
				"action": {
					"share": "/var/www/html/web${uri}.gz",
					"response_headers": {
						"Content-Encoding": "gzip"
					},

					"fallback": {
						"pass": "routes/assets"
					}
				}
			}
		],

		"assets": [
			{
				"action": {
					"share": "/var/www/html/web${uri}",
					"fallback": {
						"pass": "applications/drupal/index"
					}
				}
			}
		]
	},

	"applications": {
		"drupal": {
			"type": "php",
			"stdout": "/dev/stdout",
			"stderr": "/dev/stderr",
			"processes": {
				"max": 4,
				"spare": 2,
				"idle_timeout": 120
			},

			"limits": {
				"timeout": 300,
				"requests": 1500
			},

			"options": {
				"admin": {
					"apc.serializer": "igbinary",
					"memory_limit": "1G",
					"opcache.jit_buffer_size": "20M"
				}
			},

			"targets": {
				"direct": {
					"root": "/var/www/html/web/"
				},

				"index": {
					"root": "/var/www/html/web/",
					"script": "index.php"
				}
			}
		}
	}
}
🇫🇷France andypost

Re-rolled and re-based https://git.drupalcode.org/project/drupal/-/merge_requests/8004 as reproducible set of commits

PS: Draft MR !7976 is just a attempt to run current state on PHP 8.4

🇫🇷France andypost

andypost changed the visibility of the branch 3427999-php-8.4-fix to hidden.

🇫🇷France andypost

is there a measurements of effect on CPU?

🇫🇷France andypost

Just a question why new conflict added to composer?

"nikic/php-parser": ">=5"
🇫🇷France andypost

No, for reason of tests

There was 1 error:
1) Drupal\Tests\contact_storage\Functional\ContactStorageTest::testContactStorage
Behat\Mink\Exception\ElementNotFoundException: Form field with id|name|label|value "field_storage[subform][settings][allowed_values]" not found.
/builds/issue/contact_storage-3158051/vendor/behat/mink/src/WebAssert.php:731
/builds/issue/contact_storage-3158051/web/core/tests/Drupal/Tests/UiHelperTrait.php:85
/builds/issue/contact_storage-3158051/web/core/modules/field_ui/tests/src/Traits/FieldUiTestTrait.php:105
/builds/issue/contact_storage-3158051/tests/src/Functional/ContactStorageTest.php:218
/builds/issue/contact_storage-3158051/vendor/phpunit/phpunit/src/Framework/TestResult.php:729
ERRORS!
Tests: 8, Assertions: 229, Errors: 1.
🇫🇷France andypost

Left review on MR - we can add proper types with deprecation message as 11.x going beta

🇫🇷France andypost

Merged current state to create minor release but it needs work to address my comments (maybe not all)

🇫🇷France andypost

+1 but does it need change record?

🇫🇷France andypost

I bet there's a few issues left mostly about upload progress (apcu, vs native)

🇫🇷France andypost

Added branch with deprecation for 10.3 and filed CR https://www.drupal.org/node/3446709

Also fixed remaining CS, except phpcs:disable Drupal.Commenting.DocComment.ShortSingleLine as DiffFormatter.php is deprecated

🇫🇷France andypost

If we gonna inject something via environment it will need policy/guards to prevent sensible information leaking, a-la contrib project/dotenv

Personally I prefer to have kind of wrapper Use symfony/runtime for less bespoke bootstrap/compatibility with varied runtime environments Active

🇫🇷France andypost

Thanks! That's another reason to have a base build of php image to produce from it shared extensions for sodium and others

🇫🇷France andypost

+1 to deprecate (not sure there's BC except magic get/set) for removal in 11.x

🇫🇷France andypost

Discussed in slack with @catch and @smushgrave and decided to not split automated fixes

The issue is postponed follow-up 📌 [8.4] Fix implicitly nullable type declarations in docblocks Postponed
That's because docblocks are not yet covered with sniffer #2572645: [Meta] Fix 'Drupal.Commenting.FunctionComment' coding standard

🇫🇷France andypost

Repurposed it as there's already started work on interface fixes

postponed on parent issue

🇫🇷France andypost

The module can just decorate FeaturesManager

🇫🇷France andypost

There's SlevomatCodingStandard.TypeHints.NullableTypeForNullDefaultValue sniffer to catch such issues

🇫🇷France andypost

It looks ready to go except renaming of public properties probably needs change record

🇫🇷France andypost

I see no reason to allow weight to be nullable

🇫🇷France andypost

Thank you! Curious if both should be mentioned as dependencies from config affects a install-from-config order

🇫🇷France andypost

+1 to provide submodule to export as recipes

🇫🇷France andypost

something is broken when rendering login and logout confirmation forms

🇫🇷France andypost

Does it mean it needs to update dump or we can just add extra fixtures to existing dumps?

🇫🇷France andypost

Created 2 MRs - both enables testing and fixes install of the module
Re-formatted according to current standards

- 1.0.x - missing property
- 1.1.x - does not get controller resolver

🇫🇷France andypost

All reported places are fixed, hope tests are green as changes makes sense

🇫🇷France andypost

Thank you, makes sense to add some test and setup CI

🇫🇷France andypost

Yes, idea is to fix places which require manual intervention in 📌 [8.4] Fix implicitly nullable type declarations for phpstan job Needs review

The rest should be done using fixer to get reproducible results

🇫🇷France andypost

still needs work to split removal of status-code checks, so probably 12.x material

🇫🇷France andypost

2 child issues left

both needs work, but 📌 Finish deprecating status code and header assertions in JS tests Active can just update for removal in 12.x

🇫🇷France andypost

It means modules should be fixed to require EventDispatcherInterface instead of specific class

🇫🇷France andypost

one test failed and I left a question for constructor's BC

Production build 0.69.0 2024