chore: declare and verify Rust MSRV - #52
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR formalizes and enforces a Rust MSRV contract for the crate by documenting Rust 1.85.0 as the MSRV, declaring it in package metadata, and updating CI and tests to verify the contract remains upheld.
Changes:
- Add RFC 0110 documenting Rust 1.85.0 as the project’s MSRV and update scope/README references accordingly.
- Declare
rust-version = "1.85"inCargo.tomland add a test that verifies the manifest exposes it. - Run CI on both Rust 1.85.0 and stable; adjust lexer code to avoid newer APIs.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
tests/rfc_index.rs |
Adds a test to verify Cargo.toml declares the documented MSRV. |
src/lexer.rs |
Replaces a newer integer API with an MSRV-safe equivalent. |
RFCs/0110-rust-msrv-contract.md |
Introduces the MSRV contract and CI/test acceptance criteria. |
RFCs/0000-project-scope.md |
Updates scope RFC to include RFC 0110 in the implemented RFC range. |
README.md |
Updates RFC range reference and documents the Rust 1.85+ build requirement. |
Cargo.toml |
Declares rust-version = "1.85" in crate metadata. |
.github/workflows/ci.yml |
Runs CI checks against both MSRV (1.85.0) and stable. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Base automatically changed from
perf/qbench-core-suite
to
test/qtest-showcase-corpus
August 22, 2026 17:51
tiye
force-pushed
the
chore/msrv-contract
branch
from
August 22, 2026 18:08
a18671b to
73b0533
Compare
tiye
force-pushed
the
test/qtest-showcase-corpus
branch
from
August 22, 2026 18:08
802278c to
2f0e417
Compare
tiye
force-pushed
the
chore/msrv-contract
branch
from
August 22, 2026 18:32
73b0533 to
ba62c10
Compare
tiye
force-pushed
the
test/qtest-showcase-corpus
branch
2 times, most recently
from
August 22, 2026 18:34
ee00101 to
5a30282
Compare
tiye
force-pushed
the
chore/msrv-contract
branch
from
August 22, 2026 18:34
ba62c10 to
6528d38
Compare
tiye
force-pushed
the
test/qtest-showcase-corpus
branch
from
August 22, 2026 18:47
5a30282 to
c083d85
Compare
tiye
force-pushed
the
chore/msrv-contract
branch
from
August 22, 2026 18:52
6528d38 to
271321b
Compare
tiye
force-pushed
the
test/qtest-showcase-corpus
branch
from
August 23, 2026 06:22
c083d85 to
bc590b7
Compare
tiye
force-pushed
the
chore/msrv-contract
branch
from
August 23, 2026 06:23
d0dbfa7 to
000adad
Compare
tiye
force-pushed
the
test/qtest-showcase-corpus
branch
2 times, most recently
from
August 23, 2026 06:27
987a9e7 to
f71eecc
Compare
Base automatically changed from
test/qtest-showcase-corpus
to
feat/program-fingerprint
August 23, 2026 06:28
tiye
force-pushed
the
chore/msrv-contract
branch
2 times, most recently
from
August 23, 2026 06:29
29c04e0 to
dcbb35c
Compare
tiye
force-pushed
the
chore/msrv-contract
branch
from
August 23, 2026 06:32
dcbb35c to
0873beb
Compare
tiye
added a commit
that referenced
this pull request
Aug 23, 2026
* feat: add strict string escapes * feat: add interactive qcoffee session * feat: support comma-free multiline collections * feat: support indented map literals * feat: support constrained implicit calls * feat: expose embedding execution stats * feat: add CLI execution statistics * feat: add qtest execution statistics * perf: cache shared program verification * merge: retain string escape coverage on integration line * merge: integrate string escapes and interactive CLI * fix: avoid stale REPL execution stats * feat: iterate over Unicode strings * feat: support array pattern rest bindings * feat: support Unicode string indexing * fix: optimize Unicode slicing and docs * fix: bound untrusted destructuring patterns * chore: regenerate generated manual output * feat: add dynamic destructuring pattern defaults * feat: support map literal spread * feat: add map destructuring rest patterns * fix: address review comments * fix: address review comments * RFC 0076: negative array and string indexing (#7) * feat: support negative sequence indexing * docs: record negative indexing benchmark * docs: document map rest and negative indexing in Chinese syntax * fix: regenerate map spread manual * chore: regenerate classical Chinese manual * feat: add machine-readable qtest JSON output * docs: add qtest JSON examples to all manuals * test: assert qtest JSON line structure * docs: align core RFC index with implemented extensions * feat: expose deterministic bytecode fingerprints * docs: document program fingerprints in all manuals * test: add qtest TAP output Resolves the reviewed TAP output feature after portable path coverage and passing Actions. * feat: expose bytecode fingerprints in qcoffee Resolves all review feedback; CLI tests and Actions pass. * feat: add machine-readable qbench runner All review feedback is resolved; CLI tests, clippy, and GitHub Actions pass. * feat: canonicalize bytecode fingerprints Fixed fixed-width i32 encoding review feedback; regression tests and Actions pass. * feat: add qdocco Markdown output All review feedback was resolved; qdocco tests, clippy, and Actions pass. * feat: add mutable Context fuel control Resolved review coverage for retained native callbacks; tests, clippy, and Actions pass. * feat: add executable Rust embedding example Review feedback is resolved; example, tests, clippy, and Actions pass. * chore: add crate publishing metadata Resolved publication metadata validation feedback; checks and Actions pass. * feat: add consistent CLI version reporting No outstanding review comments; CLI version test, clippy, and Actions pass. * test: verify public embedding API externally Resolved review feedback; embedding API tests, clippy, and Actions pass. * docs: enforce complete public API documentation No outstanding review comments; public docs, embedding API tests, clippy, and Actions pass. * feat: forward named arguments in do iifes Resolved allocation and coverage feedback; RFC tests, clippy, and Actions pass. * test: enforce RFC index consistency Resolved path anchoring and RFC wording feedback; tests, clippy, and Actions pass. * feat: support bang as not alias Resolved runtime, lexer, and membership-alias feedback; tests, clippy, and Actions pass. * feat: support signed by iteration steps Resolved string iteration traversal feedback; RFC tests, clippy, and Actions pass. * fix: make qtest multi-input order deterministic Resolved JSON sorting/dedup coverage feedback; CLI tests, clippy, and Actions pass. * fix: reject conflicting qcoffee source modes Resolved diagnostic completeness feedback; CLI tests, clippy, and Actions pass. * perf: record RFC 0100 benchmark sample Resolved reproducibility metadata feedback; qbench validation and Actions pass. * perf: cover signed by in core benchmark Resolved benchmark iteration consistency feedback; core benchmark check, qbench, and Actions pass. * fix: protect qdocco source files Resolved symlink overwrite coverage feedback; CLI tests, clippy, and Actions pass. * fix: ignore heredoc markers in comments Resolved closing-line heredoc boundary feedback; lexer tests, clippy, and Actions pass. * fix: write qdocco outputs atomically Resolved cross-platform replacement, directory durability, and non-UTF-8 path feedback; tests, clippy, and Actions pass. * fix: deduplicate qtest files by canonical path Resolved collection path diagnostics feedback; CLI tests, clippy, and Actions pass. * feat: version qbench machine output Resolves the per-record text-output contract review and refreshes the branch on the current baseline. * chore: gate checks on cargo package Uses cargo publish --dry-run to validate and build the isolated release package without uploading. * test: add executable qtest showcase corpus Keeps the showcase corpus portable and preserves the latest package and qdocco safeguards. * chore: declare and verify Rust MSRV (#52) * feat: add chainable embedding context setup (#57) * feat: add chainable embedding context setup * fix: permit generated docs during package verification * docs: regenerate literate manual markdown
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.
Summary
rust-versionin package metadata and keep the lexer free of newer APIsValidation
make checkon stablecargo metadata --locked --no-deps --format-version 1reportsrust_version: 1.85git diff --checkThe stable Clippy run caught and fixed an API introduced after the declared MSRV. This PR is stacked on PR #51 and should remain unmerged with the existing chain.