-
-
Notifications
You must be signed in to change notification settings - Fork 0
chore(deps): master version-bump consolidation (closes #313, #314, #315) #316
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
fcb4bd6
chore(deps)(deps): bump the production-dependencies group with 9 updates
dependabot[bot] 8e2a86a
chore(deps)(deps): bump lz4_flex from 0.13.1 to 0.14.0
dependabot[bot] c475787
chore(ci): bump actions/setup-python from 6 to 7
doublegate 61b0205
chore(deps): cargo update — tokio 1.53.1, clap/clap_derive 4.6.3
doublegate a9bd6eb
docs(changelog): record the deps master-bump consolidation
doublegate c06c8df
fix(deps): request lz4_flex's alloc feature for the no_std build
doublegate 981f9a9
docs(changelog): fix tokio's actual before-version + note lz4_flex alloc
doublegate 6a82141
chore(coderabbit): switch to assertive profile, tailor to actual stack
doublegate 355dfab
fix(coderabbit): shrink tone_instructions under the 250-char limit
doublegate File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,292 @@ | ||
| # CodeRabbit configuration for RustyNES. | ||
| # https://docs.coderabbit.ai/reference/configuration | ||
| # | ||
| # Alternate PR review bot alongside gemini-code-assist and | ||
| # copilot-pull-request-reviewer (project convention: reply-and-resolve every | ||
| # bot review thread before merge — see docs/dev/CONTRIBUTING.md and the | ||
| # HARD MERGE-GATE ceremony this project follows). | ||
| # | ||
| # profile: assertive — deliberately more thorough than the "chill" default. | ||
| # This project treats accuracy/determinism regressions and no_std/unsafe | ||
| # boundary mistakes as high-cost (they can silently break AccuracyCoin or a | ||
| # save-state/movie format), so a few extra nitpicks are worth it in exchange | ||
| # for not missing the one comment that matters. | ||
|
|
||
| language: en-US | ||
|
|
||
| tone_instructions: >- | ||
| Precise, technical language. No emojis or poems. Prioritize determinism | ||
| and no_std/unsafe-boundary correctness in rustynes-* chip crates over | ||
| style nits clippy/rustfmt/markdownlint already catch in CI. | ||
|
|
||
| reviews: | ||
| profile: assertive | ||
| request_changes_workflow: false | ||
| high_level_summary: true | ||
| sequence_diagrams: true | ||
| estimate_code_review_effort: true | ||
| assess_linked_issues: true | ||
| related_issues: true | ||
| related_prs: true | ||
| suggested_labels: true | ||
| auto_apply_labels: false | ||
| suggested_reviewers: true | ||
| auto_assign_reviewers: false | ||
| poem: false | ||
| review_status: true | ||
| collapse_walkthrough: true | ||
| changed_files_summary: true | ||
| slop_detection: | ||
| enabled: true | ||
| auto_review: | ||
| enabled: true | ||
| auto_incremental_review: true | ||
| drafts: false | ||
| ignore_title_keywords: | ||
| - "WIP" | ||
| - "DO NOT REVIEW" | ||
| finishing_touches: | ||
| docstrings: | ||
| enabled: true | ||
| unit_tests: | ||
| enabled: true | ||
| autofix: | ||
| enabled: true | ||
| simplify: | ||
| # Off deliberately: hot-path chip code (Cpu::tick/Ppu::tick/mapper | ||
| # register access) is intentionally allocation-free and | ||
| # abstraction-light per project convention — an auto-"simplify" | ||
| # suggestion is more likely to fight that than help it. | ||
| enabled: false | ||
| pre_merge_checks: | ||
| title: | ||
| mode: warning | ||
| description: | ||
| mode: warning | ||
| issue_assessment: | ||
| mode: warning | ||
| docstrings: | ||
| mode: warning | ||
| threshold: 80 | ||
| custom_checks: | ||
| - name: "Docs-as-spec sync" | ||
| mode: warning | ||
| instructions: > | ||
| If this PR changes observable behavior in crates/rustynes-cpu, | ||
| crates/rustynes-ppu, crates/rustynes-apu, or crates/rustynes-mappers | ||
| (not just internal refactoring), the matching docs/<subsystem>.md | ||
| file should be updated in the same PR. Fail if a chip-behavior | ||
| change has no corresponding docs change and the PR body doesn't | ||
| explain why one isn't needed. | ||
| - name: "CHANGELOG entry for user-visible changes" | ||
| mode: warning | ||
| instructions: > | ||
| If this PR changes user-visible behavior, adds a feature, or fixes | ||
| a user-facing bug, CHANGELOG.md should gain an entry under | ||
| [Unreleased]. Pass for pure-internal refactors, dependency-only | ||
| bumps with no behavior change, or CI/tooling-only changes. | ||
| - name: "No unwrap/expect/panic on untrusted input" | ||
| mode: warning | ||
| instructions: > | ||
| Flag any new `.unwrap()`, `.expect()`, or `panic!()` applied to | ||
| data parsed from an external/untrusted source (ROM/save-state/ | ||
| movie file bytes, network/netplay messages, user-supplied paths) | ||
| outside of #[cfg(test)] code. These boundaries must return a typed | ||
| Result/error instead. Pass if the unwrap/expect is on a value the | ||
| code just constructed or an invariant already checked nearby. | ||
| - name: "SAFETY comment on new unsafe blocks" | ||
| mode: warning | ||
| instructions: > | ||
| Every new `unsafe { ... }` block or `unsafe fn` must have an | ||
| adjacent `// SAFETY:` comment explaining the invariant the caller | ||
| upholds. Fail if a new unsafe block has no such comment nearby. | ||
| path_filters: | ||
| - "!ref-proj/**" | ||
| - "!ref-docs/**" | ||
| - "!docs/archive/**" | ||
| - "!to-dos/archive/**" | ||
| - "!Cargo.lock" | ||
| - "!crates/rustynes-cheevos/vendor/**" | ||
| path_instructions: | ||
| - path: "crates/rustynes-cpu/**" | ||
| instructions: > | ||
| This is a #![no_std] deterministic 6502 core validated against | ||
| nestest and the blargg/kevtris/AccuracyCoin test-ROM suites. | ||
| Flag anything that could introduce non-determinism (wall-clock, | ||
| OS RNG, unordered iteration) or break cycle-accuracy. | ||
| - path: "crates/rustynes-ppu/**" | ||
| instructions: > | ||
| PPU-dot-resolution lockstep timing is load-bearing (see | ||
| docs/scheduler.md). Flag any change that could shift sub-instruction | ||
| PPU event timing without an accompanying test-ROM justification. | ||
| - path: "crates/rustynes-apu/**" | ||
| instructions: > | ||
| Audio synthesis must stay byte-identical to the golden vectors in | ||
| tests/golden/ unless the PR explicitly re-blesses them. | ||
| - path: "crates/rustynes-core/**" | ||
| instructions: > | ||
| The Bus owns all mutable subsystem state; the CPU/PPU/APU each see | ||
| only the narrow trait (PpuBus/ApuBus) they need. Flag any change | ||
| that widens a crate's access beyond that, or that could break | ||
| save-state / TAS movie / netplay-replay format compatibility | ||
| without an accompanying format-version bump (see ADR 0028). | ||
| - path: "crates/*/Cargo.toml" | ||
| instructions: > | ||
| This workspace pins a single compatible egui/wgpu/winit/naga/ | ||
| accesskit tier (currently egui 0.35 / wgpu 29 / winit 0.30.13 / | ||
| accesskit 0.24.1). Flag a version bump to any one of these crates | ||
| that isn't accompanied by matching bumps to the others, or that | ||
| would require two incompatible major versions of the same | ||
| transitive dependency to coexist. | ||
| - path: "android/**/*.kt" | ||
| instructions: > | ||
| Kotlin/Compose Android app. Flag Compose recomposition footguns | ||
| (unstable lambdas/params causing unnecessary recomposition) and | ||
| any direct filesystem/SharedPreferences access that bypasses the | ||
| existing UniFFI bridge to rustynes-mobile. | ||
| - path: "**/*.swift" | ||
| instructions: > | ||
| SwiftUI/Metal iOS app calling into rustynes-mobile via UniFFI- | ||
| generated bindings. Flag force-unwraps (`!`) on values that | ||
| originate from the Rust bridge or from user/file I/O. | ||
| - path: "scripts/**/*.py" | ||
| instructions: > | ||
| One-off developer tooling, not shipped product code. Prioritize | ||
| correctness and clear error messages over style; don't ask for | ||
| packaging/type-hints polish unless it affects correctness. | ||
| - path: ".github/workflows/**" | ||
| instructions: > | ||
| Flag unpinned third-party actions (should be pinned to a version | ||
| tag or commit SHA, not a branch), missing least-privilege | ||
| `permissions:` blocks, and secrets echoed into logs. | ||
| - path: "**/*.md" | ||
| instructions: > | ||
| Docs are the spec here, not a changelog. Flag documentation that | ||
| drifts from the code it describes rather than just prose nits. | ||
| This repo's markdownlint gate is pinned to v0.39.0 via pre-commit | ||
| (see CLAUDE.md) — don't flag rules that version doesn't have. | ||
|
|
||
| tools: | ||
| clippy: | ||
| enabled: true | ||
| ast-grep: | ||
| essential_rules: true | ||
| semgrep: | ||
| enabled: true | ||
| opengrep: | ||
| enabled: true | ||
| gitleaks: | ||
| enabled: true | ||
| trufflehog: | ||
| enabled: true | ||
| osvScanner: | ||
| enabled: true | ||
| actionlint: | ||
| enabled: true | ||
| zizmor: | ||
| enabled: true | ||
| yamllint: | ||
| enabled: true | ||
| markdownlint: | ||
| enabled: true | ||
| shellcheck: | ||
| enabled: true | ||
| hadolint: | ||
| enabled: true | ||
| checkmake: | ||
| enabled: true | ||
| detekt: | ||
| enabled: true | ||
| swiftlint: | ||
| enabled: true | ||
| ruff: | ||
| enabled: true | ||
| luacheck: | ||
| enabled: true | ||
| clang: | ||
| enabled: true | ||
| cppcheck: | ||
| enabled: true | ||
| # Off: no real content for these ecosystems in this repo (Rust/Kotlin/ | ||
| # Swift/Python/Lua/C/shell/YAML/Markdown/GH-Actions/Docker cover the | ||
| # actual stack — see the language footprint check that motivated this | ||
| # list). Left explicit rather than silently defaulted-on so the config | ||
| # documents the stack instead of just inheriting ~50 tools' worth of | ||
| # noise for languages this project doesn't use. | ||
| pylint: | ||
| enabled: false # redundant with ruff, avoid duplicate findings | ||
| flake8: | ||
| enabled: false # redundant with ruff, avoid duplicate findings | ||
| fbinfer: | ||
| enabled: false # Java/C static analysis; our first-party C is tiny and | ||
| # already covered by clang+cppcheck, vendored C is path-filtered out | ||
| pmd: | ||
| enabled: false # Java — project has none (Android app is Kotlin) | ||
| phpstan: | ||
| enabled: false | ||
| phpcs: | ||
| enabled: false | ||
| phpmd: | ||
| enabled: false | ||
| rubocop: | ||
| enabled: false | ||
| brakeman: | ||
| enabled: false | ||
| prismaLint: | ||
| enabled: false | ||
| sqlfluff: | ||
| enabled: false | ||
| squawk: | ||
| enabled: false | ||
| checkov: | ||
| enabled: false | ||
| tflint: | ||
| enabled: false | ||
| buf: | ||
| enabled: false | ||
| regal: | ||
| enabled: false | ||
| oasdiff: | ||
| enabled: false | ||
| circleci: | ||
| enabled: false | ||
| reactDoctor: | ||
| enabled: false | ||
| emberTemplateLint: | ||
| enabled: false | ||
| shopifyThemeCheck: | ||
| enabled: false | ||
| smartyLint: | ||
| enabled: false | ||
| htmlhint: | ||
| enabled: false | ||
| stylelint: | ||
| enabled: false | ||
| dotenvLint: | ||
| enabled: false | ||
| psscriptanalyzer: | ||
| enabled: false | ||
| blinter: | ||
| enabled: false | ||
|
|
||
| chat: | ||
| auto_reply: true | ||
|
|
||
| knowledge_base: | ||
| opt_out: false | ||
| web_search: | ||
| enabled: true | ||
| code_guidelines: | ||
| enabled: true | ||
| filePatterns: | ||
| - "**/AGENTS.md" | ||
| - "**/CLAUDE.md" | ||
| - "docs/dev/CONTRIBUTING.md" | ||
| - "docs/testing-strategy.md" | ||
| - "docs/architecture.md" | ||
| learnings: | ||
| scope: auto | ||
| issues: | ||
| scope: auto | ||
| pull_requests: | ||
| scope: auto |
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.