Skip to content

fix: packaging issue for generated /sync files - #646

Merged
ttypic merged 1 commit into
mainfrom
fix/uv-packaging
Dec 5, 2025
Merged

fix: packaging issue for generated /sync files#646
ttypic merged 1 commit into
mainfrom
fix/uv-packaging

Conversation

@ttypic

@ttypicttypic commented Dec 5, 2025

Copy link
Copy Markdown
Contributor

UV respects .gitgnore by default and excludes generated /sync files from built packages.

In this PR we explicitly specify files that should be packed and ignore vcs

Summary by CodeRabbit

  • Chores
    • Enhanced source-distribution packaging with explicit include/exclude controls and VCS-ignoring for more precise builds.
    • Narrowed repository ignore patterns to target specific paths instead of broad recursive patterns.
    • Improved release workflow diagnostics to list archive contents when expected files are missing, aiding failure investigation.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 5, 2025

Copy link
Copy Markdown

Walkthrough

Refines .gitignore patterns to target top-level ably/sync/, adds an SDIST build target and wheel packaging tweaks in pyproject.toml (ignore-vcs, include/exclude lists, packages), and augments the release workflow to list archive contents when ably/sync/ is missing from wheel or tarball.

Changes

Cohort / File(s)Summary
Version control configuration
\.gitignore
Replaces broad ignore **/ably/sync/*** with specific ably/sync/** and test/ably/sync/**, limiting ignored paths to top-level locations.
Build system configuration
pyproject.toml
Adds [tool.hatch.build.targets.sdist] with ignore-vcs = true plus explicit include and exclude lists; updates wheel target to set ignore-vcs = true and packages = ["ably"].
CI / Release workflow
.github/workflows/release.yml
When a wheel or tarball lacks ably/sync/, the workflow now runs unzip -l "$WHEEL" or tar -tzf "$TARBALL" respectively to list archive contents before exiting with an error.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Check .gitignore pattern scope for unintended exclusions (.gitignore).
  • Verify pyproject.toml include/exclude entries and wheel packages setting.
  • Confirm release.yml added listing commands use correct variables and handle errors safely.

"I hopped through lines of git and code,
I trimmed the paths where shadows strode.
I told the tar and zip, 'Let me see!'
Then danced with joy—a small rabbit, free. 🥕"

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'fix: packaging issue for generated /sync files' accurately summarizes the main change - fixing a packaging issue where UV was excluding generated sync files from built packages.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/uv-packaging

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 75ca2e3 and 65e5bc1.

📒 Files selected for processing (3)
  • .github/workflows/release.yml (2 hunks)
  • .gitignore (1 hunks)
  • pyproject.toml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • pyproject.toml
  • .github/workflows/release.yml
  • .gitignore
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: check (3.9)
  • GitHub Check: check (3.8)
  • GitHub Check: check (3.7)
  • GitHub Check: check (3.12)
  • GitHub Check: check (3.13)
  • GitHub Check: check (3.11)
  • GitHub Check: check (3.10)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@owenpearsonowenpearson left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

good find, lgtm 👍

@github-actions
github-actionsBottemporarily deployed to staging/pull/646/features December 5, 2025 12:36 Inactive
@github-actions
github-actionsBottemporarily deployed to staging/pull/646/features December 5, 2025 12:41 Inactive

@sacOO7sacOO7 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.

I think we should include the previous note regarding usage of the sync REST API in README.md.
https://github.com/ably/ably-python/tree/v2.0.9?tab=readme-ov-file#using-the-rest-api
Seems usage for the same not present in official doc : \ (You can double check)

UV respects `.gitgnore` by default and excludes generated `/sync` files from built packages.
In this PR we explicitly specify files that should be packed and ignore vcs
@ttypic
ttypic merged commit 9005b4e into mainDec 5, 2025
12 of 13 checks passed
@ttypic
ttypic deleted the fix/uv-packaging branch December 5, 2025 13:33
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ttypic@sacOO7@owenpearson