Organisationstaridesdune-releasepull/515Build History

Build History for pull/515

Builds (3)
Warn and skip on unsupported .gitattributes pattern syntax Detect negation (`\!pattern`), escape (`\\`), quoting (`"`), and character class (`[...]`) syntax in parse_pattern and skip the pattern with a Logs.warn rather than compiling to a regex that silently matches no files. Change parse_pattern to return a t option to reflect this. Split the README "not supported" list: syntactic cases are warned-and- skipped uniformly, while case-insensitivity and subdirectory .gitattributes are documented as separate limitations. Signed-off-by: Josh Berdine <josh@berdine.net>
f87173
Update CHANGES.md Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
892f34
Support .gitattributes export-ignore in distribution archives Parse .gitattributes files and exclude paths marked with the export-ignore attribute from distribution tarballs. This is the mechanism used by git-archive to exclude files, allowing projects to exclude dev-only files like dune-workspace from releases. Supported patterns: - Exact matches: dune-workspace - Directory patterns: .github/** - Glob patterns: *.log, test_*, file?.txt - Double star: **/build, src/**/test.ml Paths are normalized before matching (handles ./ and ../). Not supported: - Escaped patterns (\\! for literal \!) - Quoted patterns ("a b" for patterns with spaces) - Case insensitivity (core.ignorecase) - Negation patterns (\!pattern) - Subdirectory .gitattributes files Testing: - Unit tests comparing behavior against git check-attr - Tests cover pattern matching and parsing edge cases - .gitattributes content is generated from test cases to ensure sync - Archive integration test verifies end-to-end exclusion without requiring git Signed-off-by: Josh Berdine <josh@berdine.net>
15f33e