Issue:
While using the available includes features some limitations were found when trying to exclude patterns (due to glob). For example when using ! on a character group, each letter is ignored instead of the group:
This will exclude sub-project/F*, sub-project/o*, sub-project/o*, sub-project/P*, etc from being processed. This issue also causes significant toil when trying excluding multiple paths.
Proposed Solution:
To get around this and not change how includes works, I suggest implementing an excludes attribute. This attribute would array_diff on the includes and allow refined excludes patterns.
Issue: While using the available
includes
features some limitations were found when trying to exclude patterns (due toglob
). For example when using!
on a character group, each letter is ignored instead of the group:This will exclude
sub-project/F*
,sub-project/o*
,sub-project/o*
,sub-project/P*
, etc from being processed. This issue also causes significant toil when trying excluding multiple paths.Proposed Solution: To get around this and not change how
includes
works, I suggest implementing an excludes attribute. This attribute wouldarray_diff
on theincludes
and allow refined excludes patterns.Pull Request: https://github.com/wikimedia/composer-merge-plugin/pull/258