Skip to content

fix(bundle): post-merge cleanup follow-ups from #87 (upstream v0.13.0)#89

Merged
satwareAG-ironMike merged 1 commit into
main-speckfrom
fix/88-cleanup-followups-pr87
Jul 20, 2026
Merged

fix(bundle): post-merge cleanup follow-ups from #87 (upstream v0.13.0)#89
satwareAG-ironMike merged 1 commit into
main-speckfrom
fix/88-cleanup-followups-pr87

Conversation

@satwareAG-ironMike

Copy link
Copy Markdown

Summary

Post-merge cleanup items from PR #87 review (issue #88). Two minor, non-blocking items, one commit.

Changes

1. src/specify_cli/commands/bundle/__init__.py:829 - reuse hostname local

After the ValueError guard added in upstream v0.13.0, the final host-check re-accessed parsed.hostname instead of reusing the hostname local captured in the try block. The sibling fix in src/specify_cli/presets/__init__.py:2093 already uses the local consistently.

-    if not parsed.hostname:
+    if not hostname:
         raise BundlerError(f"Refusing to download {label} from URL with no host: {url}")

Behavior unchanged (ParseResult is immutable for a given URL, so a successful first access won't raise on re-access). This is a consistency cleanup to prevent drift in future refactors.

2. docs/reference/extensions.md - blank lines for CommonMark block separation

Added blank lines after the closing code fence (line 180) and after the hook-fields table (line 227) in the new "Project Extension and Hook Configuration" section introduced by upstream v0.13.0.

Verification

Acceptance criteria from #88:

  • src/specify_cli/commands/bundle/__init__.py:829 uses hostname local
  • docs/reference/extensions.md has blank lines after the closing fence (line 180) and after the hook-fields table (line 227)
  • Existing bundle tests pass: .venv/bin/python -m pytest tests/unit/test_bundle_download_url.py tests/test_workflows.py -q -> 651 passed, 1 skipped (pre-existing skip)
  • Broader regression check: .venv/bin/python -m pytest tests/ --ignore=tests/test_workflows.py -q -> 3783 passed, 113 skipped (pre-existing skips)
  • ruff check src/specify_cli/commands/bundle/__init__.py -> All checks passed
  • pre-pr privacy check -> clean

Note: the repo's scripts/daily-routine.sh pre-pr reports a failure on the check-upstream-sync.sh step, but that failure is pre-existing on main-speck itself - PR #87 was a squash merge (not a direct tag merge), so v0.13.0's commit SHA is not an ancestor of main-speck. Unrelated to this fix; tracked separately.

Disclosure

Authored and pushed by an AI agent (opencode z-ai/glm-5.2, autonomous) on behalf of @mw. The commit carries the Assisted-by: trailer per the repo's agent disclosure policy.

Closes #88

Post-merge cleanup from PR #87 (upstream v0.13.0 sync). Two minor
non-blocking items noted in review (#88):

1. src/specify_cli/commands/bundle/__init__.py:829 - use the `hostname`
   local captured in the try block instead of re-accessing
   `parsed.hostname` in the final guard, mirroring the sibling fix in
   src/specify_cli/presets/__init__.py:2093. Behavior unchanged
   (ParseResult is immutable for a given URL); this is a consistency
   cleanup to prevent drift in future refactors.

2. docs/reference/extensions.md - add blank lines after the closing
   code fence (line 180) and after the hook-fields table (line 227) in
   the new "Project Extension and Hook Configuration" section to satisfy
   CommonMark block separation.

Tests: 651 passed in tests/unit/test_bundle_download_url.py +
tests/test_workflows.py (acceptance criterion from #88).

Closes #88

Assisted-by: opencode z-ai/glm-5.2 (autonomous)
@satwareAG-ironMike
satwareAG-ironMike merged commit 8ab75fa into main-speck Jul 20, 2026
10 checks passed
@satwareAG-ironMike
satwareAG-ironMike deleted the fix/88-cleanup-followups-pr87 branch July 20, 2026 03:19
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.

Cleanup: post-merge follow-ups from PR #87 (upstream v0.13.0 sync)

1 participant