Skip to content

Commit 66ad785

Browse files
committed
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] <#15682 (comment)>
1 parent a57ce05 commit 66ad785

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

.github/labeler.yml

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,3 +389,109 @@
389389
- changed-files:
390390
- any-glob-to-any-file:
391391
- sapi/phpdbg/**/*
392+
393+
"ABI break":
394+
- changed-files:
395+
- any-glob-to-any-file:
396+
- 'TSRM/*.h'
397+
- 'Zend/*.h'
398+
- 'Zend/Optimizer/zend_call_graph.h'
399+
- 'Zend/Optimizer/zend_cfg.h'
400+
- 'Zend/Optimizer/zend_dfg.h'
401+
- 'Zend/Optimizer/zend_dump.h'
402+
- 'Zend/Optimizer/zend_func_info.h'
403+
- 'Zend/Optimizer/zend_inference.h'
404+
- 'Zend/Optimizer/zend_optimizer.h'
405+
- 'Zend/Optimizer/zend_ssa.h'
406+
- 'Zend/Optimizer/zend_worklist.h'
407+
- 'ext/curl/php_curl.h'
408+
- 'ext/date/lib/timelib.h'
409+
- 'ext/date/lib/timelib_config.h'
410+
- 'ext/date/php_date.h'
411+
- 'ext/dom/dom_ce.h'
412+
- 'ext/dom/namespace_compat.h'
413+
- 'ext/dom/xml_common.h'
414+
- 'ext/dom/xpath_callbacks.h'
415+
- 'ext/filter/php_filter.h'
416+
- 'ext/gd/libgd/*.h'
417+
- 'ext/gd/php_gd.h'
418+
- 'ext/gmp/php_gmp_int.h'
419+
- 'ext/hash/php_hash.h'
420+
- 'ext/hash/php_hash_adler32.h'
421+
- 'ext/hash/php_hash_crc32.h'
422+
- 'ext/hash/php_hash_fnv.h'
423+
- 'ext/hash/php_hash_gost.h'
424+
- 'ext/hash/php_hash_haval.h'
425+
- 'ext/hash/php_hash_joaat.h'
426+
- 'ext/hash/php_hash_md.h'
427+
- 'ext/hash/php_hash_murmur.h'
428+
- 'ext/hash/php_hash_ripemd.h'
429+
- 'ext/hash/php_hash_sha.h'
430+
- 'ext/hash/php_hash_sha3.h'
431+
- 'ext/hash/php_hash_snefru.h'
432+
- 'ext/hash/php_hash_tiger.h'
433+
- 'ext/hash/php_hash_whirlpool.h'
434+
- 'ext/hash/php_hash_xxhash.h'
435+
- 'ext/hash/xxhash/xxhash.h'
436+
- 'ext/iconv/php_iconv.h'
437+
- 'ext/json/php_json.h'
438+
- 'ext/json/php_json_parser.h'
439+
- 'ext/json/php_json_scanner.h'
440+
- 'ext/libxml/php_libxml.h'
441+
- 'ext/mbstring/libmbfl/config.h'
442+
- 'ext/mbstring/libmbfl/mbfl/eaw_table.h'
443+
- 'ext/mbstring/libmbfl/mbfl/mbfilter.h'
444+
- 'ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h'
445+
- 'ext/mbstring/libmbfl/mbfl/mbfilter_pass.h'
446+
- 'ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h'
447+
- 'ext/mbstring/libmbfl/mbfl/mbfl_consts.h'
448+
- 'ext/mbstring/libmbfl/mbfl/mbfl_convert.h'
449+
- 'ext/mbstring/libmbfl/mbfl/mbfl_defs.h'
450+
- 'ext/mbstring/libmbfl/mbfl/mbfl_encoding.h'
451+
- 'ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h'
452+
- 'ext/mbstring/libmbfl/mbfl/mbfl_language.h'
453+
- 'ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h'
454+
- 'ext/mbstring/libmbfl/mbfl/mbfl_string.h'
455+
- 'ext/mbstring/mbstring.h'
456+
- 'ext/mbstring/php_mbregex.h'
457+
- 'ext/mbstring/php_onig_compat.h'
458+
- 'ext/mysqli/mysqli_mysqlnd.h'
459+
- 'ext/mysqli/php_mysqli_structs.h'
460+
- 'ext/mysqlnd/*.h'
461+
- 'ext/pcre/pcre2lib/*.h'
462+
- 'ext/pcre/php_pcre.h'
463+
- 'ext/pdo/pdo_sql_parser.h'
464+
- 'ext/pdo/php_pdo.h'
465+
- 'ext/pdo/php_pdo_driver.h'
466+
- 'ext/pdo/php_pdo_error.h'
467+
- 'ext/phar/php_phar.h'
468+
- 'ext/random/php_random.h'
469+
- 'ext/random/php_random_csprng.h'
470+
- 'ext/random/php_random_uint128.h'
471+
- 'ext/session/mod_files.h'
472+
- 'ext/session/mod_mm.h'
473+
- 'ext/session/mod_user.h'
474+
- 'ext/session/php_session.h'
475+
- 'ext/simplexml/php_simplexml.h'
476+
- 'ext/simplexml/php_simplexml_exports.h'
477+
- 'ext/sockets/php_sockets.h'
478+
- 'ext/sockets/windows_common.h'
479+
- 'ext/sodium/php_libsodium.h'
480+
- 'ext/spl/php_spl.h'
481+
- 'ext/spl/spl_array.h'
482+
- 'ext/spl/spl_directory.h'
483+
- 'ext/spl/spl_dllist.h'
484+
- 'ext/spl/spl_exceptions.h'
485+
- 'ext/spl/spl_fixedarray.h'
486+
- 'ext/spl/spl_functions.h'
487+
- 'ext/spl/spl_heap.h'
488+
- 'ext/spl/spl_iterators.h'
489+
- 'ext/spl/spl_observer.h'
490+
- 'ext/standard/*.h'
491+
- 'ext/xml/expat_compat.h'
492+
- 'ext/xml/php_xml.h'
493+
- 'main/*.h'
494+
- 'main/streams/*.h'
495+
- 'sapi/cli/cli.h'
496+
- 'sapi/embed/php_embed.h'
497+
- 'win32/*.h'

0 commit comments

Comments
 (0)