From 57f80d1a7f44a93ff534ea1fc8173b487b476a92 Mon Sep 17 00:00:00 2001 From: Conor Bronsdon Date: Tue, 11 Aug 2026 16:48:34 -0700 Subject: [PATCH] Migrate to released Mojo 1.0 and cut 0.2.0 Re-pin pixi to the max channel and mojo >=1.0,<2; CI installs mojo==1.0.0 from PyPI instead of the nightly index with --prerelease allow. The weekly drift check still runs against the latest nightly. No source changes were needed. README test counts and measured figures re-checked against a full run on Mojo 1.0. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/docs.yaml | 6 ++---- .github/workflows/test.yml | 16 +++++++--------- CHANGELOG.md | 11 +++++++++++ README.md | 8 ++++---- pixi.toml | 6 +++--- recipe.yaml | 4 ++-- 6 files changed, 29 insertions(+), 22 deletions(-) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 01a7295..52f24df 100755 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -17,7 +17,7 @@ concurrency: env: # Keep in step with test.yml's pin -- docs runs `mojo doc`, which compiles the # sources and so breaks on the same stdlib changes the tests do. - MOJO_VERSION: "1.0.0b3.dev2026073014" + MOJO_VERSION: "1.0.0" jobs: build-deploy: @@ -35,9 +35,7 @@ jobs: - name: Install Mojo run: | uv venv - uv pip install "mojo==$MOJO_VERSION" \ - --index https://whl.modular.com/nightly/simple/ \ - --prerelease allow + uv pip install "mojo==$MOJO_VERSION" - name: Generate API reference run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d7bdee2..72777f0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,11 +12,11 @@ on: workflow_dispatch: env: - # The nightly this repo is known to build and pass on. CI installs exactly - # this for pushes and PRs, so upstream churn cannot turn a green repo red - # without a commit. Bump it when the weekly drift check goes green on a newer - # one, or after fixing whatever it caught. - MOJO_VERSION: "1.0.0b3.dev2026073014" + # The released Mojo this repo is known to build and pass on. CI installs + # exactly this for pushes and PRs, so upstream churn cannot turn a green repo + # red without a commit. Bump it when the weekly drift check goes green on a + # newer one, or after fixing whatever it caught. + MOJO_VERSION: "1.0.0" jobs: test: @@ -40,9 +40,7 @@ jobs: --index https://whl.modular.com/nightly/simple/ \ --prerelease allow else - uv pip install "mojo==$MOJO_VERSION" \ - --index https://whl.modular.com/nightly/simple/ \ - --prerelease allow + uv pip install "mojo==$MOJO_VERSION" fi .venv/bin/mojo --version @@ -72,7 +70,7 @@ jobs: Run: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID Fix the breakage, then bump MOJO_VERSION in .github/workflows/test.yml - and .github/workflows/docs.yaml to the nightly that passes. + and .github/workflows/docs.yaml to the release that passes. EOF ) existing=$(gh issue list --repo "$GITHUB_REPOSITORY" --state open \ diff --git a/CHANGELOG.md b/CHANGELOG.md index 44725bc..6b89fb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 0.2.0 — 2026-08-11 + +- **Builds on released Mojo 1.0.** The pixi channel moved from + `max-nightly` to `max` and the dependency pin from `>=1.0.0b3.dev…` to + `>=1.0,<2`; CI installs `mojo==1.0.0` from PyPI instead of the nightly + index with `--prerelease allow`. The weekly drift check still runs + against the latest nightly, so the repo still reports when the language + moves under it. No source changes were needed. +- README test count corrected: 32 → 34. Robustness re-checked with 600 + mutated inputs — zero crashes, zero hangs. + ## 0.1.0 — 2026-07-05 Initial release. Pure-Mojo line diffing mirroring Python's `difflib` API: diff --git a/README.md b/README.md index 0bd8a5e..346096b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ **Text diffing in pure Mojo, mirroring Python's difflib. No Python dependencies, no FFI.** [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE) -[![Mojo](https://img.shields.io/badge/Mojo-1.0.0b3%2B_nightly-orange?style=flat-square)](https://mojolang.org) +[![Mojo](https://img.shields.io/badge/Mojo-1.0-orange?style=flat-square)](https://mojolang.org) [![Podcast](https://img.shields.io/badge/Podcast-Chain_of_Thought-purple?style=flat-square)](https://chainofthought.show/?utm_source=github&utm_medium=referral&utm_campaign=repo-readme&utm_content=mojo-diff) [![X](https://img.shields.io/badge/X-@ConorBronsdon-black?style=flat-square&logo=x)](https://x.com/ConorBronsdon) @@ -82,11 +82,11 @@ Or with uv: ```bash uv venv -uv pip install mojo --index https://whl.modular.com/nightly/simple/ --prerelease allow +uv pip install mojo .venv/bin/mojo run -I src test/test_diff.mojo ``` -Requires a Mojo nightly (`>=1.0.0b3`). +Requires Mojo 1.0 or newer. ## Usage @@ -127,7 +127,7 @@ difflib's opcodes. pixi run test ``` -32 tests cover opcode generation, matching blocks, ratio calculation, and +34 tests cover opcode generation, matching blocks, ratio calculation, and `splitlines_keepends`, plus 11/11 unified-diff fixtures matching Python's difflib byte-for-byte (identical inputs, single-line files, multi-hunk diffs at multiple context widths, content-to-empty and diff --git a/pixi.toml b/pixi.toml index 6492576..d479b8c 100644 --- a/pixi.toml +++ b/pixi.toml @@ -1,10 +1,10 @@ [workspace] authors = ["Conor Bronsdon "] -channels = ["https://conda.modular.com/max-nightly", "conda-forge"] +channels = ["https://conda.modular.com/max", "conda-forge"] name = "mojo-diff" description = "Pure-Mojo text diffing library mirroring Python's difflib API" platforms = ["linux-64", "osx-arm64"] -version = "0.1.0" +version = "0.2.0" [tasks] test = "mojo run -I src test/test_diff.mojo" @@ -15,4 +15,4 @@ fmt = "mojo format src/ test/ examples/ bench/" docs = "mojo doc -o docs/api.json -I src src/diff && python3 docs/render_api.py docs/api.json docs/api.html" [dependencies] -mojo = ">=1.0.0b3.dev0,<2" +mojo = ">=1.0,<2" diff --git a/recipe.yaml b/recipe.yaml index 1c5f508..57c00f6 100755 --- a/recipe.yaml +++ b/recipe.yaml @@ -11,7 +11,7 @@ # Build locally with: rattler-build build --recipe recipe.yaml context: - version: "0.1.0" + version: "0.2.0" package: name: mojo-diff @@ -29,7 +29,7 @@ build: requirements: run: - - mojo >=1.0.0b3.dev0,<2 + - mojo >=1.0,<2 about: homepage: https://github.com/conorbronsdon/mojo-diff