Skip to content

Prepare syntax, syntax_flutter, and syntax_noir 0.0.1 - #11

Merged
leoafarias merged 5 commits into
mainfrom
cursor/public-readiness-5389
Oct 24, 2026
Merged

leoafarias merged 5 commits into
mainfrom
cursor/public-readiness-5389

Conversation

@leoafarias

@leoafarias leoafarias commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Public-readiness cleanup and 0.0.1 publish prep for the three libraries. Nothing was uploaded to pub.dev, and the GitHub repo was not made public.

Leo’s call: syntax_noir ships in the first 0.0.1 wave with syntax and syntax_flutter. The architecture decision records are removed from this repo.

  • syntax, syntax_flutter, and syntax_noir are version 0.0.1. publish_to: none is removed from those three only.
  • The workspace root (syntax_workspace) and the example app (syntax_example) stay publish_to: none.
  • Dependents use syntax: ^0.0.1, which is >=0.0.1 <0.1.0. Publish syntax first, then syntax_flutter and syntax_noir in either order after that.
  • Homepage on all three is https://github.com/btwld/syntax-dart until a site exists. Repository fields already point at that repo (.../tree/main/packages/<name>). GitHub visibility stays private.
  • Local path pins live in pubspec_overrides.yaml and are listed in .pubignore, so they are in git for CI and absent from the pub archive.
  • The example is no longer a workspace member. After syntax 0.0.1 is on pub.dev, flutter pub get in the published example resolves syntax from pub and syntax_flutter from path: ../.
  • The three decision records under docs/decisions/ are deleted. The root README and packages/syntax/README.md no longer link to them. There is no AGENTS.md, contributing guide, cursor rule, or CI check that mentioned them.

CI

check, deploy-demo, and minimum-sdk run flutter pub get in packages/syntax_flutter/example before the workspace flutter pub get. On Flutter 3.35, root flutter pub get passes --example and then fails with dependencies for syntax_example missing unless that example already has a package config (flutter/flutter#175650). The example stays out of the workspace. That order was green on 6cc61f7; this push re-runs CI.

Publish order

From a clean checkout of the merged commit. dart pub publish was not run.

  1. dart pub login if needed.
  2. dart pub publish --directory packages/syntax --dry-run
  3. dart pub publish --directory packages/syntax
  4. Wait until https://pub.dev/packages/syntax shows 0.0.1. Names syntax, syntax_flutter, and syntax_noir returned HTTP 404 when this PR was opened.
  5. dart pub publish --directory packages/syntax_flutter --dry-run
  6. dart pub publish --directory packages/syntax_flutter
  7. dart pub publish --directory packages/syntax_noir --dry-run
  8. dart pub publish --directory packages/syntax_noir

Do not publish packages/syntax_flutter/example or the workspace root.

syntax_noir dry-run prints one hint: pubspec_overrides.yaml overrides the non-dev dependency syntax. That file is not in the archive. The published dependency is hosted syntax: ^0.0.1. Confirm the file list, then publish. noir: ^0.0.4 resolved to noir 0.0.5 here (>=0.0.4 <0.1.0).

^0.0.1 accepts later 0.0.x releases and rejects 0.1.0. A 0.1.0 of syntax needs a constraint bump in syntax_flutter and syntax_noir before those packages can depend on it.

resolution: workspace stays on syntax and syntax_flutter. Pub ignores it when the package is a dependency, and dry-run does not warn. dart pub get in an unpacked package directory fails until dart pub unpack clears it. The published example does not use workspace resolution.

Dry-run on this branch

Package Archive Result
syntax 290 KB. Includes LICENSE, CHANGELOG, NOTICE. 0 warnings
syntax_flutter 243 KB. Includes example/pubspec.yaml, LICENSE, CHANGELOG. Omits example/pubspec_overrides.yaml. 0 warnings
syntax_noir 16 KB. Omits pubspec_overrides.yaml. 0 warnings, 1 hint (local syntax override)

A copy of the example with the override removed fails flutter pub get only because syntax is not on pub.dev yet (could not find package syntax). It does not fail on workspace resolution.

What else changed

  • Example and package descriptions, the web manifest, and the changelog describe read-only highlighting. The editor topic is gone from syntax_flutter.
  • The docs/internal gitignore note is gone. That directory was never committed. No secrets in the tree. History was not rewritten.
  • syntax_noir no longer publishes path: ../syntax. CI and this checkout still resolve the sibling package through pubspec_overrides.yaml.

Left as-is on purpose:

  • highlightedTextSpan, editorColorOf, renderHtml, and renderAnsi stay public.
  • The cacheExtent ignore on IndexedCodeViewport stays. The package floor is Flutter >=3.35, and CI is 3.47, where that parameter is deprecated.
  • Remote branches were not deleted.
  • Homepage and repository stay on https://github.com/btwld/syntax-dart. No visibility change.

Tests

  • dart test in packages/syntax: 265 passed (before this docs-only commit)
  • flutter test in packages/syntax_flutter: 67 passed
  • dart test in packages/syntax_noir: passed, including the noir driver
  • dart format clean on the CI set
  • dart analyze --fatal-infos / flutter analyze --fatal-infos clean for syntax, syntax_flutter, the example, and syntax_noir
  • Local Flutter 3.35.7: example flutter pub get, then root flutter pub get, then the syntax and syntax_flutter tests minimum-sdk runs
  • CI on 6cc61f7: check, minimum-sdk, syntax-noir, and generated-files passed

Still manual

  1. Merge this PR.
  2. Publish syntax 0.0.1, then syntax_flutter 0.0.1 and syntax_noir 0.0.1.
  3. Before changing the GitHub repo to public, decide what to do with unmerged remotes. These still contain SyntaxTextEditingController (and, on the first, the editor and review implementation):
    • origin/virtualize-large-file-views (editor.dart, patch_controller.dart, syntax_text_controller.dart)
    • origin/ci/deploy-demo
    • origin/feat/syntax-noir
    • origin/perf/virtualized-highlighted-code
      These mention the old controller only in docs or the changelog:
    • origin/feat/diff
    • origin/feat/viewer
    • origin/feat/engine-adr-0003
  4. When a real homepage exists, replace homepage: https://github.com/btwld/syntax-dart on the three packages. Until then that URL is the placeholder.
  5. GitHub Settings → Danger zone → Change repository visibility → Public, when you want it public. Pages source stays GitHub Actions. deploy-demo.yml already uses the configure-pages base path, so the public site path /syntax-dart/ does not need a workflow edit.
Open in Web Open in Cursor 

cursoragent and others added 2 commits October 24, 2026 20:50
Set the three libraries to 0.0.1 and drop publish_to so they can be
uploaded in that order. Keep the example and the workspace root
unpublished. Pin local syntax checkouts in pubspec_overrides.yaml,
which pub does not archive. Drop editor claims from the public docs.

Co-authored-by: Leo Farias <leoafarias@users.noreply.github.com>
Stop gitignoring the checked-in pubspec_overrides.yaml files. Pub warns
when a tracked file is gitignored. .pubignore keeps those pins out of
the syntax_flutter and syntax_noir archives.

Co-authored-by: Leo Farias <leoafarias@users.noreply.github.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T20:53:25.667466Z eec7425 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@leoafarias leoafarias left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Nuclear Review — Request changes

(Posted as COMMENT: the connected account authored this PR, so GitHub blocks REQUEST_CHANGES from this identity. Nuclear verdict is still Request changes.)

Head eec7425 · agent bc-9a30cb2c (Argon high)

Blocking

  1. minimum-sdk fails at root flutter pub get (.github/workflows/ci.yml, pubspec.yaml workspace)

    • Cause: example left the workspace, so root flutter pub get on Flutter 3.35.7 dies on package_graph.json / missing syntax_example deps.
    • Residual: on 3.35.x, running example pub get after root (mirroring check) still fails — Flutter walks up from the example during ensureReadyForPlatformSpecificTooling. Resolve the example before root flutter pub get, or use dart pub get at the workspace root. (check on 3.47.5 is green for a reason.)
  2. In-place body edits to Accepted ADRs (docs/decisions/0001-…, 0002-…)

    • **Amended by:** ADR-0003 metadata is fine.
    • Rewriting the Accepted ## Decision bodies (dropping SyntaxTextEditingController / editor claims) is not — keep the history in 0001/0002 and leave the correction in ADR-0003 unless Leo waives.

Suggestions

  • Pre-publish narration in published READMEs (syntax_noir, example, root “not on pub.dev yet”) will read stale the moment 0.0.1 lands — trim or move to root Development.

Slop/Artifacts

None. .pubignore for overrides looks right; no plan/temp Markdown.

Verdict

Request changes

Ship lock noted: syntax → syntax_flutter → syntax_noir @ 0.0.1; repo stays private. Architect consolidates; no merge from Nuclear.

cursoragent and others added 2 commits October 24, 2026 20:59
Flutter 3.35 fails workspace pub get when a member's example has no
package config. Get the example first in minimum-sdk. Leave it out of
the workspace.

Co-authored-by: Leo Farias <leoafarias@users.noreply.github.com>
Flutter 3.35 fails workspace pub get unless the example already has a
package config, so check, deploy-demo, and minimum-sdk resolve it
first. ADR-0001 and ADR-0002 keep their Amended by lines and their
original Decision text.

Co-authored-by: Leo Farias <leoafarias@users.noreply.github.com>

@leoafarias leoafarias left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Nuclear Review (re-pass) — Approve

(Posted as COMMENT: connected account authored this PR, so GitHub blocks APPROVE from this identity. Nuclear verdict is Approve.)

Head 6cc61f7 · agent bc-6dcc54b9 (Argon high)

Blocking

None. Prior blockers cleared:

  1. minimum-sdk / Flutter 3.35 — example flutter pub get runs before root in check, minimum-sdk, and deploy-demo; example stays out of the workspace.
  2. ADR-0001 / ADR-0002 — Decision bodies restored; only Amended by: ADR-0003 added. ADR-0003 Accepted + Amends.

Suggestions

  • Pre-publish “After syntax is on pub.dev…” / “not on pub.dev yet” lines in published READMEs — trim after the 0.0.1 wave.

Slop/Artifacts

None.

Verdict

Approve

Architect consolidates; no merge from Nuclear. CI was still finishing check at review time — merge gate is green CI + Leo.

Delete the three decision files and drop the README links to them.
The packages stay read-only highlighters, and the 0.0.1 publish prep
is unchanged.

Co-authored-by: Leo Farias <leoafarias@users.noreply.github.com>

@leoafarias leoafarias left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Nuclear Review (re-pass) — Approve

(Posted as COMMENT: connected account authored this PR, so GitHub blocks APPROVE from this identity. Nuclear verdict is Approve.)

Head 08e8d6e · agent bc-bef9eed7 (Argon high)

Prior Approve @ 6cc61f7 voided by this head (ADR wipe + publish prep).

Blocking

None.

  • ADR wipe — Leo authorized. All three under docs/decisions/ gone; README / package README links cleared; no dangling refs or plan leftovers.
  • 0.0.1 publish set — syntax / syntax_flutter / syntax_noir at 0.0.1; publish_to: none only on workspace root + example; path overrides in .pubignore-excluded pubspec_overrides.yaml; read-only scope preserved.
  • CI — example flutter pub get before root still in place; check, minimum-sdk, syntax-noir, generated-files green.

Suggestions

  • Pre-publish “not on pub.dev yet” / “After syntax is on pub.dev…” lines in root / example / syntax_noir READMEs — trim after the 0.0.1 wave.

Slop/Artifacts

None.

Verdict

Approve

Architect consolidates; no merge from Nuclear.

@leoafarias
leoafarias merged commit ffb67eb into main Oct 24, 2026
4 checks passed
@leoafarias
leoafarias deleted the cursor/public-readiness-5389 branch October 24, 2026 21:41
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