Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
481e581
chore(deps): bump @tiptap/core from 2.27.2 to 3.30.4
dependabot[bot] Sep 3, 2026
6c9db08
build(deps): patch transitive security advisories
seonghobae Sep 4, 2026
a334084
build(deps): migrate TipTap stack to v3
seonghobae Sep 4, 2026
87b5fef
docs: record the editor security migration
seonghobae Sep 4, 2026
870c2c3
fix(ci): preserve Python boundary coverage
seonghobae Sep 4, 2026
93fd077
fix(ci): restore full Python PR matrix
seonghobae Sep 4, 2026
84bc0e2
Merge remote-tracking branch 'origin/main' into codex/security-transi…
seonghobae Sep 4, 2026
d942322
test(ci): cover event-specific Python matrix
seonghobae Sep 4, 2026
ca31a26
test(ci): bind Python matrix to event
seonghobae Sep 4, 2026
6b059f2
fix(deps): repair TipTap React declarations
seonghobae Sep 4, 2026
3d4efaa
repair(ci): keep security lane out of Python policy
seonghobae Sep 4, 2026
378e030
test(office): align Python support contract with event matrix
seonghobae Sep 4, 2026
2f7455d
chore(ci): join security prerequisite for verification
seonghobae Sep 4, 2026
4378877
chore(ci): join TipTap security prerequisite
seonghobae Sep 4, 2026
6207d78
chore(ci): synchronize protected main
seonghobae Sep 4, 2026
85c7765
fix(types): isolate packed declarations from TipTap React
seonghobae Sep 4, 2026
b444332
docs(tiptap): tighten migration evidence
seonghobae Sep 4, 2026
202084d
fix(collaboration): declare v3 runtime binding
seonghobae Sep 4, 2026
d1f2753
fix(collaboration): ship y-tiptap peer runtime
seonghobae Sep 4, 2026
b229572
feat!: version the TipTap 3 migration
seonghobae Sep 4, 2026
6d51f5c
docs: align 0.7 release authority
seonghobae Sep 4, 2026
ac0b7bd
fix: identify TipTap v3 in demo
seonghobae Sep 4, 2026
637b910
test: tighten release contract guards
seonghobae Sep 4, 2026
7a769c7
test(office): reject unsupported CI matrix values
seonghobae Sep 7, 2026
740ffb4
test(office): resolve the CI matrix instead of pinning its syntax
seonghobae Sep 7, 2026
a7f8109
test(ci): resolve the office matrix contract instead of pinning its text
seonghobae Sep 7, 2026
8f39454
Merge remote-tracking branch 'origin/fix/office-python-event-matrix-c…
seonghobae Sep 7, 2026
95b2c63
test(ci): bind Office matrix payloads to the PR event predicate
seonghobae Sep 8, 2026
f44b588
test(office): reject unsupported matrix event predicates
seonghobae Sep 8, 2026
6352283
test(ci): inherit resolved Office matrix contracts
seonghobae Sep 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ${{ github.event_name == 'pull_request' && fromJSON('["3.14"]') || fromJSON('["3.11", "3.12", "3.13", "3.14"]') }}
python-version: ${{ github.event_name == 'pull_request' && fromJSON('["3.11", "3.14"]') || fromJSON('["3.11", "3.12", "3.13", "3.14"]') }}
defaults:
run:
working-directory: office
Expand Down
14 changes: 10 additions & 4 deletions office/tests/test_python_support_contract.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
"""Cross-file contract for the Python versions advertised by Inkspan Office."""

from pathlib import Path
import json
import re
import tomllib


REPOSITORY_ROOT = Path(__file__).resolve().parents[2]
SUPPORTED_PYTHON_VERSIONS = ("3.11", "3.12", "3.13", "3.14")
PULL_REQUEST_PYTHON_VERSIONS = ("3.11", "3.14")
PYTHON_312_LXML_LINUX_SHA256 = (
"bc783ee3147e60a25aa0445ea82b3e8aabb83b240f2b95d32cb75587ff781814"
)
Expand All @@ -33,7 +35,7 @@ def _workflow_job_block(workflow: str, job_name: str) -> str:


def test_python_support_range_matches_classifiers_and_ci_matrix() -> None:
"""Require package metadata and the Office CI job to cover the same minors."""
"""Require PR boundary coverage and full protected-main compatibility coverage."""

pyproject = tomllib.loads(_repository_text("office/pyproject.toml"))
project = pyproject["project"]
Expand All @@ -50,10 +52,14 @@ def test_python_support_range_matches_classifiers_and_ci_matrix() -> None:
office_job = _workflow_job_block(workflow, "office")
assert "runs-on: ubuntu-24.04" in office_job
assert "runs-on: ubuntu-latest" not in office_job
matrix_match = re.search(r'python-version:\s*\[([^\]]+)\]', office_job)
matrix_match = re.search(
r"python-version:\s*\$\{\{\s*github\.event_name == 'pull_request'\s*"
r"&&\s*fromJSON\('([^']+)'\)\s*\|\|\s*fromJSON\('([^']+)'\)\s*\}\}",
office_job,
)
assert matrix_match is not None
matrix_versions = tuple(re.findall(r'"(3\.\d+)"', matrix_match.group(1)))
assert matrix_versions == SUPPORTED_PYTHON_VERSIONS
assert tuple(json.loads(matrix_match.group(1))) == PULL_REQUEST_PYTHON_VERSIONS
Comment thread
seonghobae marked this conversation as resolved.
Outdated
assert tuple(json.loads(matrix_match.group(2))) == SUPPORTED_PYTHON_VERSIONS


def test_python_support_documentation_matches_the_fixed_ci_environment() -> None:
Expand Down
2 changes: 1 addition & 1 deletion src/workflowExactHead.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ describe('exact-head CI workflow contract', () => {
);
expect(workflow).toContain('cancel-in-progress: true');
expect(officeJob).toContain(
"python-version: ${{ github.event_name == 'pull_request' && fromJSON('[\"3.14\"]') || fromJSON('[\"3.11\", \"3.12\", \"3.13\", \"3.14\"]') }}",
"python-version: ${{ github.event_name == 'pull_request' && fromJSON('[\"3.11\", \"3.14\"]') || fromJSON('[\"3.11\", \"3.12\", \"3.13\", \"3.14\"]') }}",
);
expect(releaseWorkflow).toContain(
'group: ${{ github.workflow }}-${{ github.repository }}-${{ github.ref_name }}',
Expand Down
Loading