chore(deps-dev): bump semantic-release from 24.2.9 to 25.0.3#6
Merged
Merged
Conversation
9 tasks
strausmann
added a commit
that referenced
this pull request
May 10, 2026
When Dependabot opens a PR against main and main does not yet contain a backend/pyproject.toml (e.g. before the first feature branch lands), the existing actions/setup-python step would fail because cache: pip insists on resolving requirements.txt or pyproject.toml at checkout time. Fix by detecting the project layout up-front and: - using setup-python WITH cache when a pyproject.toml exists (in either ./backend or ./), with explicit cache-dependency-path - using setup-python WITHOUT cache otherwise, and skipping all the ruff/mypy/pytest steps with a single no-op message Also moves all working directories explicitly so we can later add a backend/ matrix entry without rewriting steps. This unblocks PRs #2-#9 (currently red on the cache step) and prevents the same class of failure for any future contributor branch that touches infrastructure but doesn't include the backend yet. Refs #2, #3, #4, #6, #7, #8, #9
Owner
|
@dependabot rebase |
7b60a6c to
f7af3a9
Compare
Owner
|
@dependabot rebase |
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 24.2.9 to 25.0.3. - [Release notes](https://github.com/semantic-release/semantic-release/releases) - [Commits](semantic-release/semantic-release@v24.2.9...v25.0.3) --- updated-dependencies: - dependency-name: semantic-release dependency-version: 25.0.3 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
f7af3a9 to
2150e45
Compare
|
🚨 This is a major version update for |
github-actions Bot
pushed a commit
that referenced
this pull request
May 10, 2026
## 1.0.0 (2026-05-10) * ci: make Python lint/test job branch-tolerant for dependabot PRs (#30) ([6ee8e16](6ee8e16)), closes [#30](#30) [2-#9](https://github.com/2-/issues/9) [#2](#2) [#3](#3) [#4](#4) [#6](#6) [#7](#7) [#8](#8) [#9](#9) * ci(deps): bump the actions-all group across 1 directory with 14 updates (#9) ([a88a027](a88a027)), closes [#9](#9) * chore: initial repository skeleton ([0319e7e](0319e7e)) * chore(deps-dev): bump @commitlint/cli from 19.8.1 to 21.0.0 (#3) ([2642b26](2642b26)), closes [#3](#3) * chore(deps-dev): bump @commitlint/config-conventional (#4) ([44be5f9](44be5f9)), closes [#4](#4) * chore(deps-dev): bump @semantic-release/exec from 6.0.3 to 7.1.0 (#2) ([a8097b0](a8097b0)), closes [#2](#2) * chore(deps-dev): bump @semantic-release/github from 11.0.6 to 12.0.8 (#8) ([098e766](098e766)), closes [#8](#8) * chore(deps-dev): bump conventional-changelog-conventionalcommits (#7) ([9f5370f](9f5370f)), closes [#7](#7) * chore(deps-dev): bump semantic-release from 24.2.9 to 25.0.3 (#6) ([306010f](306010f)), closes [#6](#6) * feat(status): add Brother 32-byte status block parser (#29) ([ced0ff8](ced0ff8)), closes [#29](#29) [#11](#11) [#19](#19) [#29](#29) * docs: refactor — ADRs in docs/decisions/, policies in docs/policies/, slim CLAUDE.md ([51c2cf1](51c2cf1)), closes [#1](#1) * docs(decisions): ADR 0006 — PT vs QL ESC i S behaviour from Phase-0 hardware test ([0d12c63](0d12c63)), closes [#12](#12) [#11](#11) * docs(decisions): ADR 0012 — layout management; clarify integration push/pull capabilities ([effcbdf](effcbdf)), closes [#17](#17) [#19](#19) * docs(decisions): ADR 0013 + cart UI spec + AI-review workflow ([c72dc85](c72dc85)), closes [#26](#26) [#27](#27) [#28](#28) * docs(docker): document image tag scheme (latest, 1.0.0, 1.0, 1) ([1f72396](1f72396)) * docs(examples): sample compose files for standalone/Traefik/Pangolin/Caddy ([a2f6f3d](a2f6f3d)) [skip ci]
9 tasks
strausmann
added a commit
that referenced
this pull request
May 10, 2026
…TRIBUTING/AI configs Captures recurring AI-reviewer findings (Gemini Code Assist + Copilot) so contributors and AI tools alike can avoid the same mistakes in the next PR. Initial entries from PR #29 (StatusBlockParser), PR #30 (CI cache fix), and PR #32 (release trigger): Python: - frozen=True dataclasses must not have mutable fields (list, dict, set) - IntFlag is the idiomatic type for combined error/flag states - IntFlag(combined_int) replaces manual bit-mapping loops - Don't include type stubs for forbidden libraries (e.g. types-requests when the project uses httpx exclusively) - Test assertions should be tight (== UNKNOWN, not 'in (A, B) or None') - Catch specific exception types (FrozenInstanceError) not bare Exception GitHub Actions: - workflow_dispatch input names: no hyphens (parsed as subtraction) - workflow_dispatch jobs publishing must have branch guards - semantic-release evaluates full history since last tag, not just 'today's' commits — be precise when describing skip behaviour Process: - Wait for AI reviewers (~1-2 min) even on small PRs; --admin merge before review forfeits the value - Side-effects must be in PR description; reviewers shouldn't have to discover them via line-by-line diff reading Cross-references added in: - CLAUDE.md (point #6 of 'Read these first') - CONTRIBUTING.md (after the §7 Code review section) - .github/copilot-instructions.md (new 'Repeated patterns' section) - .gemini/styleguide.md ('Recurring review patterns' section, asks Gemini to suggest updates to the file rather than re-flagging the same finding) The file is meant to grow: when an AI review surfaces a new recurring pattern, the rule is to add it in the same follow-up commit.
strausmann
added a commit
that referenced
this pull request
May 10, 2026
…TRIBUTING/AI configs (#33) Captures recurring AI-reviewer findings (Gemini Code Assist + Copilot) so contributors and AI tools alike can avoid the same mistakes in the next PR. Initial entries from PR #29 (StatusBlockParser), PR #30 (CI cache fix), and PR #32 (release trigger): Python: - frozen=True dataclasses must not have mutable fields (list, dict, set) - IntFlag is the idiomatic type for combined error/flag states - IntFlag(combined_int) replaces manual bit-mapping loops - Don't include type stubs for forbidden libraries (e.g. types-requests when the project uses httpx exclusively) - Test assertions should be tight (== UNKNOWN, not 'in (A, B) or None') - Catch specific exception types (FrozenInstanceError) not bare Exception GitHub Actions: - workflow_dispatch input names: no hyphens (parsed as subtraction) - workflow_dispatch jobs publishing must have branch guards - semantic-release evaluates full history since last tag, not just 'today's' commits — be precise when describing skip behaviour Process: - Wait for AI reviewers (~1-2 min) even on small PRs; --admin merge before review forfeits the value - Side-effects must be in PR description; reviewers shouldn't have to discover them via line-by-line diff reading Cross-references added in: - CLAUDE.md (point #6 of 'Read these first') - CONTRIBUTING.md (after the §7 Code review section) - .github/copilot-instructions.md (new 'Repeated patterns' section) - .gemini/styleguide.md ('Recurring review patterns' section, asks Gemini to suggest updates to the file rather than re-flagging the same finding) The file is meant to grow: when an AI review surfaces a new recurring pattern, the rule is to add it in the same follow-up commit.
github-actions Bot
pushed a commit
that referenced
this pull request
May 10, 2026
## 0.1.0 (2026-05-10) * docs: refactor — ADRs in docs/decisions/, policies in docs/policies/, slim CLAUDE.md ([51c2cf1](51c2cf1)), closes [#1](#1) * docs(ci): document mypy as hard gate; clarify CI gate policy in CONTRIBUTING (#31) ([e1e6f18](e1e6f18)), closes [#31](#31) [#30](#30) [#30](#30) [#30](#30) * docs(decisions): ADR 0006 — PT vs QL ESC i S behaviour from Phase-0 hardware test ([0d12c63](0d12c63)), closes [#12](#12) [#11](#11) * docs(decisions): ADR 0012 — layout management; clarify integration push/pull capabilities ([effcbdf](effcbdf)), closes [#17](#17) [#19](#19) * docs(decisions): ADR 0013 + cart UI spec + AI-review workflow ([c72dc85](c72dc85)), closes [#26](#26) [#27](#27) [#28](#28) * docs(docker): document image tag scheme (latest, 1.0.0, 1.0, 1) ([1f72396](1f72396)) * docs(examples): sample compose files for standalone/Traefik/Pangolin/Caddy ([a2f6f3d](a2f6f3d)) * docs(learnings): add code-review-patterns + reference from CLAUDE/CONTRIBUTING/AI configs (#33) ([0fc61d2](0fc61d2)), closes [#33](#33) [#29](#29) [#30](#30) [#32](#32) [#6](#6) * ci: make Python lint/test job branch-tolerant for dependabot PRs (#30) ([6ee8e16](6ee8e16)), closes [#30](#30) [2-#9](https://github.com/2-/issues/9) [#2](#2) [#3](#3) [#4](#4) [#6](#6) [#7](#7) [#8](#8) [#9](#9) * ci(deps): bump the actions-all group across 1 directory with 14 updates (#9) ([a88a027](a88a027)), closes [#9](#9) * ci(release): trigger releases via cron + workflow_dispatch only (#32) ([9941958](9941958)), closes [#32](#32) [#32](#32) [#32](#32) * chore(deps-dev): bump @commitlint/cli from 19.8.1 to 21.0.0 (#3) ([2642b26](2642b26)), closes [#3](#3) * chore(deps-dev): bump @commitlint/config-conventional (#4) ([44be5f9](44be5f9)), closes [#4](#4) * chore(deps-dev): bump @semantic-release/exec from 6.0.3 to 7.1.0 (#2) ([a8097b0](a8097b0)), closes [#2](#2) * chore(deps-dev): bump @semantic-release/github from 11.0.6 to 12.0.8 (#8) ([098e766](098e766)), closes [#8](#8) * chore(deps-dev): bump conventional-changelog-conventionalcommits (#7) ([9f5370f](9f5370f)), closes [#7](#7) * chore(deps-dev): bump semantic-release from 24.2.9 to 25.0.3 (#6) ([306010f](306010f)), closes [#6](#6) * chore(release): 1.0.0 ([15abeb3](15abeb3)) * feat(status): add Brother 32-byte status block parser (#29) ([ced0ff8](ced0ff8)), closes [#29](#29) [#11](#11) [#19](#19) [#29](#29) [skip ci]
strausmann
added a commit
that referenced
this pull request
May 15, 2026
Five Critical + several Important findings from a fresh-eyes review. The plan was producing tests against StatusBlock / Job / TemplateLoader APIs that don't exist in the real codebase. Add a Phase 1.5 — Domain Model Extensions — before any backend code is written: * Task 1.5.1 — StatusBlock @Property tape_empty / cover_open / loaded_tape_mm (derived from the real errors IntFlag and media_width_mm fields). Plus tests/_helpers/status.make_status_block so subsequent tests don't spell out all 18 dataclass fields. * Task 1.5.2 — TemplateNotFoundError in template_loader (subclasses KeyError; the route maps it to HTTP 404 per Acceptance #6). * Task 1.5.3 — LookupFailedError umbrella + UnknownAppError as a subclass; AppLookupService.lookup wraps any plugin runtime exception. Route maps to HTTP 502 per Acceptance #7. * Task 1.5.4 — Job carries error_code / error_message / error_detail (Acceptance #4 needs structured detail like {expected_mm, loaded_mm}). * Task 1.5.5 — PrintQueue worker catches PrinterError subclasses, populates the three new Job fields, then transitions to FAILED. TapeMismatchError gets a typed detail dict. * Task 1.5.6 — @runtime_checkable on _PrinterLike Protocol so the Phase 8 isinstance() check works. Additional fixes: * Phase 6.1 parse_status_reply delegates to the existing StatusBlockParser.parse instead of inventing a partial parser. The legacy _MEDIA_TYPE_LOOKUP table is removed. * Phase 8 commit body no longer claims "returns empty bytes" — build_print_job raises NotImplementedError, which the code already does. Stale doc text removed. * PTouchBackend._ptouch_print is now model-aware via _PTOUCH_PRINTER_ CLASSES[model_id] lookup. Previously hardcoded PTP750W defeated Extensibility Path 1 (PT-P900, PT-E550W). * PrintService no longer forwards copies to queue.submit. Multi-copy delivery is a Phase-5 follow-up; clients can post N times today. Test assertion updated to "copies not in kwargs"; commit body of the PrintService task corrected. * app/main.py snippet has `import logging` (was missing while _log = logging.getLogger(__name__) was already present). * app/api/routes/print.py snippet now has one consolidated import block — the previous "Required imports for the route module" trailing block is folded in to prevent paste mistakes. * Convention note added at the top of Phase 2 spelling out that every later test uses make_status_block(...) instead of StatusBlock(...). The implementer rewrites the six existing StatusBlock(...) call sites to make_status_block(...) accordingly. Refs #22
strausmann
added a commit
that referenced
this pull request
May 15, 2026
TDD-strict implementation plan for the First-Print pipeline, tracking docs/designs/2026-05-15-first-print.md. 17 phases, ~70 atomic tasks. Phase 1.5 (Domain Model Extensions) extends StatusBlock with derived properties, adds TemplateNotFoundError / LookupFailedError, structured error fields on Job, and the @runtime_checkable decorator on _PrinterLike — unblocking three Acceptance Criteria (#4, #6, #7). Plan covers: - Phase 0: commitlint scope (printer-backends) - Phase 1: ptouch + Brother status block + SNMP OID references - Phase 1.5: Domain model extensions - Phase 2: PrinterError hierarchy (incl. SnmpDiscoveryError + SnmpQueryError) - Phase 3: PrinterBackend Protocol - Phase 4: MockPrinterBackend - Phase 5: BackendRegistry + entry_points - Phase 6: ESC i S status query, PTouchBackend, SNMP helper - Phase 7: ModelRegistry.find_by_model_id + entry_points - Phase 8: PTP750WDriver + make_queue_printer + _PTPQueuePrinter - Phase 9: Pydantic schemas (PrintRequest, RawLabelData, etc.) - Phase 10: PrintService orchestrator - Phase 11: REST routes incl. live SNMP block while PRINTING - Phase 12: Settings (printer_backend, printer_model, discover_via_snmp, snmp_community, queue_timeout_s) - Phase 13: Lifespan with SNMP-first discovery + fallback - Phase 14: Integration tests (happy + tape mismatch + offline + SNMP discovery) - Phase 15: Hardware smoke script - Phase 16: Final verification + handoff (implementer never pushes) Went through Gemini + superpowers code-review iterations (6 + 5 + 12 findings, all addressed or explicitly deferred). CI checks all green including privacy / secret scan. Refs #22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps semantic-release from 24.2.9 to 25.0.3.
Release notes
Sourced from semantic-release's releases.
... (truncated)
Commits
f404124fix(deps): remove deprecated semver-diff (#3980)fef7e34docs: warn against using registry-url in setup-node (#4024)699d470chore(deps): update dependency lockfile-lint to v5 (#4022)c7c6f7achore(deps): update dependency tempy to v3.1.2 (#4021)1ce5088ci(action): update github/codeql-action action to v4.32.0 (#4019)9bb0d87chore(deps): lock file maintenance (#4016)490171cchore(deps): update npm to v11.8.0 (#4015)f6411e9chore(deps): update dependency prettier to v3.8.1 (#4014)c71c576chore(deps): update dependency publint to v0.3.17 (#4013)989e18cchore(deps): update dependency tempy to v3.1.1 (#4012)Maintainer changes
This version was pushed to npm by GitHub Actions, a new releaser for semantic-release since your current version.