From 66ad785a6222dcb0f48b106aca6ce490d3af4fbb Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Sun, 1 Sep 2024 13:53:55 +0200 Subject: [PATCH] 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] --- .github/labeler.yml | 106 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/.github/labeler.yml b/.github/labeler.yml index 675aed5ebc76c..00807db1d135b 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -389,3 +389,109 @@ - changed-files: - any-glob-to-any-file: - 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_dfg.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' + - 'Zend/Optimizer/zend_worklist.h' + - 'ext/curl/php_curl.h' + - 'ext/date/lib/timelib.h' + - 'ext/date/lib/timelib_config.h' + - 'ext/date/php_date.h' + - 'ext/dom/dom_ce.h' + - 'ext/dom/namespace_compat.h' + - 'ext/dom/xml_common.h' + - 'ext/dom/xpath_callbacks.h' + - 'ext/filter/php_filter.h' + - 'ext/gd/libgd/*.h' + - 'ext/gd/php_gd.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_fnv.h' + - 'ext/hash/php_hash_gost.h' + - 'ext/hash/php_hash_haval.h' + - 'ext/hash/php_hash_joaat.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/hash/xxhash/xxhash.h' + - 'ext/iconv/php_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/mysqli_mysqlnd.h' + - 'ext/mysqli/php_mysqli_structs.h' + - 'ext/mysqlnd/*.h' + - 'ext/pcre/pcre2lib/*.h' + - 'ext/pcre/php_pcre.h' + - 'ext/pdo/pdo_sql_parser.h' + - 'ext/pdo/php_pdo.h' + - 'ext/pdo/php_pdo_driver.h' + - 'ext/pdo/php_pdo_error.h' + - 'ext/phar/php_phar.h' + - 'ext/random/php_random.h' + - 'ext/random/php_random_csprng.h' + - 'ext/random/php_random_uint128.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_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/expat_compat.h' + - 'ext/xml/php_xml.h' + - 'main/*.h' + - 'main/streams/*.h' + - 'sapi/cli/cli.h' + - 'sapi/embed/php_embed.h' + - 'win32/*.h'