Skip to content

fix(bundler): wrap local catalog decode failures - #3902

Open
marcelsafin wants to merge 1 commit into
github:mainfrom
marcelsafin:fix/local-bundle-catalog-utf8
Open

fix(bundler): wrap local catalog decode failures#3902
marcelsafin wants to merge 1 commit into
github:mainfrom
marcelsafin:fix/local-bundle-catalog-utf8

Conversation

@marcelsafin

Copy link
Copy Markdown
Contributor

Summary

  • route plain-path and file:// bundle catalogs through the shared JSON loader
  • convert non-UTF-8 local catalog failures into the BundlerError boundary
  • cover both local source forms with regression tests

Testing

  • uvx ruff@0.15.0 check src tests
  • .venv/bin/pytest tests/unit/test_bundler_adapters.py -q (18 passed)
  • .venv/bin/pytest -q (6107 passed, 176 skipped)

AI disclosure

GitHub Copilot helped identify the bypassed shared loader and review the implementation. I reproduced the failures and validated the final change with targeted and full test suites.

Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@marcelsafin
marcelsafin requested a review from mnriem as a code owner July 31, 2026 08:30
Copilot AI review requested due to automatic review settings July 31, 2026 08:30

Copilot AI 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.

Pull request overview

Routes local bundle catalogs through the shared JSON loader so decoding failures consistently raise BundlerError.

Changes:

  • Uses load_json() for plain paths and file:// catalogs.
  • Adds regression coverage for both source forms.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/specify_cli/bundler/services/adapters.py Uses shared local JSON error handling.
tests/unit/test_bundler_adapters.py Tests non-UTF-8 local catalogs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

2 participants