From 170230f29b619165eef2724e817dd1c3f1481319 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Sun, 1 Sep 2024 13:53:55 +0200 Subject: [PATCH] [ci skip] Add labels to PRs with potential ABI breaks ABI breaks are not supposed to happen after feature freeze, i.e. when the PHP API numbers have been bumped. To make it easier to notice inadvertent ABI breaks, we automatically add an "ABI break" label to all PRs which modify public (aka. installed) header files. Some of these modifications do not constitute an ABI break (e.g. adding a comment to a header file), but we rely on natural intelligence to sort that out. That means these labels should be removed manually, if they are not appropriate, but if they are, the PR should not be merged into any stable branch. For the master branch, where ABI breaks are permissible, the labels should still be removed if irrelevant, but kept when the PR is merged. Since tests are futile[1], we leave that to further (test) PRs. [1] Closes GH-15682. --- .github/labeler.yml | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/.github/labeler.yml b/.github/labeler.yml index ddab4850089..14a6ed9610d 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -241,3 +241,95 @@ "SAPI: phpdbg": - sapi/phpdbg/**/* + +"ABI break": + - changed-files: + - any-glob-to-any-file: + - 'TSRM/*.h' + - 'Zend/*.h' + - 'Zend/Optimizer/zend_call_graph.h' + - 'Zend/Optimizer/zend_cfg.h' + - 'Zend/Optimizer/zend_dump.h' + - 'Zend/Optimizer/zend_func_info.h' + - 'Zend/Optimizer/zend_inference.h' + - 'Zend/Optimizer/zend_optimizer.h' + - 'Zend/Optimizer/zend_ssa.h' + - 'ext/curl/php_curl.h' + - 'ext/date/lib/timelib.h' + - 'ext/date/lib/timelib_config.h' + - 'ext/date/php_date.h' + - 'ext/dom/xml_common.h' + - 'ext/filter/php_filter.h' + - 'ext/gd/*.h' + - 'ext/gd/libgd/*.h' + - 'ext/gmp/php_gmp_int.h' + - 'ext/hash/php_hash.h' + - 'ext/hash/php_hash_adler32.h' + - 'ext/hash/php_hash_crc32.h' + - 'ext/hash/php_hash_gost.h' + - 'ext/hash/php_hash_haval.h' + - 'ext/hash/php_hash_md.h' + - 'ext/hash/php_hash_murmur.h' + - 'ext/hash/php_hash_ripemd.h' + - 'ext/hash/php_hash_sha.h' + - 'ext/hash/php_hash_sha3.h' + - 'ext/hash/php_hash_snefru.h' + - 'ext/hash/php_hash_tiger.h' + - 'ext/hash/php_hash_whirlpool.h' + - 'ext/hash/php_hash_xxhash.h' + - 'ext/iconv/*.h' + - 'ext/json/php_json.h' + - 'ext/json/php_json_parser.h' + - 'ext/json/php_json_scanner.h' + - 'ext/libxml/php_libxml.h' + - 'ext/mbstring/libmbfl/config.h' + - 'ext/mbstring/libmbfl/mbfl/eaw_table.h' + - 'ext/mbstring/libmbfl/mbfl/mbfilter.h' + - 'ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h' + - 'ext/mbstring/libmbfl/mbfl/mbfilter_pass.h' + - 'ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h' + - 'ext/mbstring/libmbfl/mbfl/mbfl_consts.h' + - 'ext/mbstring/libmbfl/mbfl/mbfl_convert.h' + - 'ext/mbstring/libmbfl/mbfl/mbfl_defs.h' + - 'ext/mbstring/libmbfl/mbfl/mbfl_encoding.h' + - 'ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h' + - 'ext/mbstring/libmbfl/mbfl/mbfl_language.h' + - 'ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h' + - 'ext/mbstring/libmbfl/mbfl/mbfl_string.h' + - 'ext/mbstring/mbstring.h' + - 'ext/mbstring/php_mbregex.h' + - 'ext/mbstring/php_onig_compat.h' + - 'ext/mysqli/php_mysqli_structs.h' + - 'ext/mysqlnd/*.h' + - 'ext/pcre/pcre2lib/*.h' + - 'ext/pcre/php_pcre.h' + - 'ext/pdo/php_pdo.h' + - 'ext/pdo/php_pdo_driver.h' + - 'ext/pdo/php_pdo_error.h' + - 'ext/random/php_random.h' + - 'ext/session/mod_files.h' + - 'ext/session/mod_mm.h' + - 'ext/session/mod_user.h' + - 'ext/session/php_session.h' + - 'ext/simplexml/php_simplexml.h' + - 'ext/simplexml/php_simplexml_exports.h' + - 'ext/sockets/php_sockets.h' + - 'ext/sockets/windows_common.h' + - 'ext/sodium/php_libsodium.h' + - 'ext/spl/php_spl.h' + - 'ext/spl/spl_array.h' + - 'ext/spl/spl_directory.h' + - 'ext/spl/spl_dllist.h' + - 'ext/spl/spl_engine.h' + - 'ext/spl/spl_exceptions.h' + - 'ext/spl/spl_fixedarray.h' + - 'ext/spl/spl_functions.h' + - 'ext/spl/spl_heap.h' + - 'ext/spl/spl_iterators.h' + - 'ext/spl/spl_observer.h' + - 'ext/standard/*.h' + - 'ext/xml/*.h' + - 'main/*.h' + - 'main/streams/*.h' + - 'sapi/embed/php_embed.h' + - 'win32/*.h' \ No newline at end of file