Skip to content

chore: exclude repo-only files from the source archive - #3189

Merged
blackmwk merged 1 commit into
apache:mainfrom
kevinjqliu:chore/release-hygiene-cleanups
Sep 10, 2026
Merged

blackmwk merged 1 commit into
apache:mainfrom
kevinjqliu:chore/release-hygiene-cleanups

Conversation

@kevinjqliu

@kevinjqliu kevinjqliu commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

  • N/A

What changes are included in this PR?

Trim the source tarball. We build it with git archive, which includes everything in the repo. This adds export-ignore for the repo-only files: .asf.yaml, .devcontainer, .github, .gitignore, .gitattributes, and .idea.

This came up twice in RC votes.

Everything the verify script needs stays in: .licenserc.yaml for the header check, the lint configs for make check, dev/ for tests and release scripts.

Are these changes tested?

Extracted the archive and ran the header check, make check-toml, and dev/check_license_notice.sh from it. All pass. None of the excluded paths show up in git archive HEAD | tar -t.

AI Disclosure

Drafted with Claude Code, reviewed by me.

🤖 Generated with Claude Code

Copilot AI lite review requested due to automatic review settings September 10, 2026 07:05
The release tarball is built with git archive and ships .asf.yaml,
.devcontainer, .github, .gitignore, .gitattributes, and .idea, none of
which are needed to build, test, or verify from source. Ryan raised this
in the 0.2.0 vote and Kurtis called out .idea in the 0.9.1 vote.

Files the verification scripts rely on (.licenserc.yaml, lint configs,
dev/) stay in.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@kevinjqliu
kevinjqliu force-pushed the chore/release-hygiene-cleanups branch from 809530e to 5289bba Compare September 10, 2026 07:10
@kevinjqliu kevinjqliu changed the title chore: exclude .idea from source archives chore: exclude repo-only files from the source archive Sep 10, 2026
@kevinjqliu
kevinjqliu requested review from CTTY and blackmwk September 10, 2026 07:17

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Pull request overview

Excludes IDE and repository metadata files from git archive-based release/source tarballs to keep distributed source archives focused on build/test essentials.

Changes:

  • Adds export-ignore rules for .idea/ and several repo metadata/config paths in .gitattributes
  • Documents the intent and constraints for what must remain in the source archive

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .gitattributes
@@ -1 +1,2 @@
website export-ignore

@blackmwk blackmwk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @kevinjqliu for this pr!

@blackmwk
blackmwk merged commit d6c2eb4 into apache:main Sep 10, 2026
4 checks passed
@kevinjqliu
kevinjqliu deleted the chore/release-hygiene-cleanups branch September 10, 2026 15:02
kevinjqliu pushed a commit that referenced this pull request Sep 10, 2026
* fix(ci): keep .github/actions in the source archive

`.github export-ignore` (#3189) hides `.github/actions` from repository
archives. GitHub resolves the `uses: $/...` self-repository references
introduced in #3161 by fetching such an archive, so every workflow that
uses a local composite action now fails at action resolution:

  Can't find 'action.yml', 'action.yaml' or 'Dockerfile' for action
  'apache/iceberg-rust/.github/actions/setup-builder@<sha>'

This breaks CI on main and on all open pull requests.

List the .github entries individually instead, so the repo-only files
#3189 targeted stay out of the release tarball while `.github/actions`
remains resolvable. A `-export-ignore` negation on the subdirectory does
not work: git does not descend into an export-ignored directory.

* comment
kevinjqliu added a commit that referenced this pull request Sep 10, 2026
* chore: exclude repo-only files from the source archive (#3189)

The release tarball is built with git archive and ships .asf.yaml,
.devcontainer, .github, .gitignore, .gitattributes, and .idea, none of
which are needed to build, test, or verify from source. Ryan raised this
in the 0.2.0 vote and Kurtis called out .idea in the 0.9.1 vote.

Files the verification scripts rely on (.licenserc.yaml, lint configs,
dev/) stay in.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit d6c2eb4)

* fix(ci): keep .github/actions in the source archive (#3193)

`.github export-ignore` (#3189) hides `.github/actions` from repository
archives. GitHub resolves the `uses: ./...` self-repository references by
fetching such an archive, so every workflow that uses a local composite
action fails at action resolution:

  Can't find 'action.yml', 'action.yaml' or 'Dockerfile' for action
  'apache/iceberg-rust/.github/actions/setup-builder@<sha>'

List the .github entries individually instead, so the repo-only files
#3189 targeted stay out of the release tarball while `.github/actions`
remains resolvable. A `-export-ignore` negation on the subdirectory does
not work: git does not descend into an export-ignored directory.

(cherry picked from commit 6f062aa)

---------

Co-authored-by: Kevin Liu <kevinjqliu@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Xander <zander181@googlemail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants