Skip to content

[VarExporter] Dump implicit-nullable types as explicit to prevent the corresponding deprecation #34782

[VarExporter] Dump implicit-nullable types as explicit to prevent the corresponding deprecation

[VarExporter] Dump implicit-nullable types as explicit to prevent the corresponding deprecation #34782

Workflow file for this run

name: Verify Packages
on:
pull_request:
paths:
- src/**
permissions:
contents: read
jobs:
verify:
name: Verify Packages
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Fetch branch from where the PR started
run: git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
- name: Find packages
id: find-packages
run: echo "packages=$(php .github/get-modified-packages.php $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | grep -v src/Symfony/Component/Intl/Resources/emoji |jq -R -s -c 'split("\n")[:-1]') $(git diff --name-only origin/${{ github.base_ref }} HEAD | grep src/ | jq -R -s -c 'split("\n")[:-1]'))" >> $GITHUB_OUTPUT
- name: Verify meta files are correct
run: |
ok=0
_file_exist() {
if [ ! -f "${1}" ]; then
echo "File ${1} does not exist"
return 1
fi
}
_file_not_exist() {
if [ -f "${1}" ]; then
echo "File ${1} should not be here"
return 1
fi
}
_correct_license_file() {
FIRST_LINE="Copyright (c) $(date +"%Y")-present Fabien Potencier"
PACKAGE_FIRST_LINE=$(head -1 ${1})
if [[ "$FIRST_LINE" != "$PACKAGE_FIRST_LINE" ]]; then
echo "First line of the license file is wrong. Maybe it is the wrong year?"
return 1
fi
TEMPLATE=$(tail -n +2 LICENSE)
PACKAGE_LICENSE=$(tail -n +2 ${1})
if [[ "$TEMPLATE" != "$PACKAGE_LICENSE" ]]; then
echo "Wrong content in license file"
return 1
fi
}
json='${{ steps.find-packages.outputs.packages }}'
for package in $(echo "${json}" | jq -r '.[] | @base64'); do
_jq() {
echo ${package} | base64 --decode | jq -r ${1}
}
DIR=$(_jq '.directory')
NAME=$(_jq '.name')
echo "::group::$NAME"
TYPE=$(_jq '.type')
localExit=0
if [ $TYPE != 'contract' ] && [ $TYPE != 'contracts' ]; then
_file_exist $DIR/.gitattributes || localExit=1
fi
_file_exist $DIR/.gitignore || localExit=1
_file_exist $DIR/CHANGELOG.md || localExit=1
_file_exist $DIR/LICENSE || localExit=1
if [ $TYPE != 'contract' ]; then
_file_exist $DIR/phpunit.xml.dist || localExit=1
fi
_file_exist $DIR/README.md || localExit=1
_file_not_exist $DIR/phpunit.xml || localExit=1
if [ $(_jq '.new') == true ]; then
echo "Verifying new package"
_correct_license_file $DIR/LICENSE || localExit=1
if [ $TYPE != 'component_bridge' ]; then
if [ ! $(cat composer.json | jq -e ".replace.\"$NAME\"|test(\"self.version\")") ]; then
echo "Composer.json's replace section needs to contain $NAME"
localExit=1
fi
fi
fi
ok=$(( $localExit || $ok ))
echo ::endgroup::
if [ $localExit -ne 0 ]; then
echo "::error::$NAME failed"
fi
done
exit $ok
- name: Verify symfony/deprecation-contracts requirements
run: |
set +e
ok=0
json='${{ steps.find-packages.outputs.packages }}'
for package in $(echo "${json}" | jq -r '.[] | @base64'); do
_jq() {
echo ${package} | base64 --decode | jq -r ${1}
}
NAME=$(_jq '.name')
if [[ $NAME = 'symfony/deprecation-contracts' || $NAME = 'symfony/contracts' ]]; then
continue
fi
echo "::group::$NAME"
DIR=$(_jq '.directory')
localExit=0
grep -rq 'trigger_deprecation(' --include=*.php --exclude-dir=Tests/ --exclude-dir=Bridge/ $DIR
triggersDeprecation=$?
if [[ $triggersDeprecation -eq 0 && $(_jq '.requires_deprecation_contracts') == false ]]; then
errorMessage="::error::$NAME does not require symfony/deprecation-contracts but triggers at least one deprecation"
localExit=1
elif [[ $triggersDeprecation -eq 1 && $(_jq '.requires_deprecation_contracts') == true ]]; then
errorMessage="::error::$NAME requires symfony/deprecation-contracts but does not trigger any deprecation"
localExit=1
elif [[ $triggersDeprecation -ne 0 && $triggersDeprecation -ne 1 ]]; then
echo "::error::grep failed"
exit 2
fi
ok=$(( $localExit || $ok ))
echo ::endgroup::
if [ $localExit -ne 0 ]; then
echo $errorMessage
fi
done
exit $ok
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy