Skip to content

Conversation

@ota-meshi
Copy link
Owner

@ota-meshi ota-meshi commented Nov 10, 2025

Summary by CodeRabbit

  • No user-facing changes
    • Internal adjustments that do not affect functionality or user experience.
  • Chores
    • CI workflows updated to control concurrent runs and improve caching/step behavior.
  • Documentation
    • Updated example URLs and sample formatting to reference an alternate schemastore host.
  • Tests
    • Added, modified, and removed test fixtures to align with updated schema references and new validation scenarios.

@changeset-bot
Copy link

changeset-bot bot commented Nov 10, 2025

⚠️ No Changeset found

Latest commit: c97ba81

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link

coderabbitai bot commented Nov 10, 2025

Walkthrough

Replaces many schemastore URLs, updates test fixtures (adds Renovate cases, removes some yarnrc fixtures), adds workflow concurrency and caching steps, minor TTL comment, a small type-cast change in findVariable, and tweaks to a docs shim (path updates, fakeRequire.resolve and default return).

Changes

Cohort / File(s) Summary
AST utils
src/utils/ast/js/utils.ts
Cast eslintUtils.findVariable return to `Variable
GitHub Actions workflows
.github/workflows/GHPages.yml, .github/workflows/NodeCI.yml, .github/workflows/Release.yml, .github/workflows/format.yml, .github/workflows/stale.yml
Added/changed concurrency blocks; NodeCI adds node_modules cache restore/save and minor step/name adjustments; Release uses lts/* node-version and removes NPM_TOKEN from one step.
Docs & Vitepress shim
docs/.vitepress/config.mts, docs/.vitepress/shim/require-from-cache.mjs, docs/.vitepress/theme/components/playground-block.vue, docs/rules/no-invalid.md
Replaced schemastore host URLs (json.schemastore.org → www.schemastore.org) across config and examples; shim path updates, added fakeRequire.resolve = () => "", and default return {} for unknown paths.
Schema utils
src/utils/schema.ts
Added inline comment for TTL constant; no behavior change.
Test fixtures — added/changed
tests/fixtures/rules/no-invalid/** (many; see diff) — includes http-test2/*, $schema-test/*, valid/*, invalid/*
Updated many $schema URL hosts, added new Renovate fixtures and corresponding expected-error files, removed several yarnrc fixtures; primarily test data/string replacements.
Tests driver
tests/src/rules/no-invalid.ts
Updated in-test strings / fixtures to reference new schemastore host URLs.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Dev as Developer pushes/run workflow
  participant GitHub as GitHub Actions
  participant Runner as Job Runner
  note over GitHub: concurrency.group = ${{ github.workflow }}-{{ github.ref }}
  Dev->>GitHub: Trigger workflow run A
  GitHub->>Runner: Start run A
  Dev->>GitHub: Trigger workflow run B (same workflow+ref)
  GitHub-->>Runner: Cancel in-progress run A (cancel-in-progress=true)
  GitHub->>Runner: Start run B
  note right of Runner: NodeCI job restores cache (if any) → runs steps → saves cache (if always)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Areas needing closer review:
    • docs/.vitepress/shim/require-from-cache.mjs (path changes, new fakeRequire.resolve, default return)
    • New/removed test fixtures under tests/fixtures/rules/no-invalid/http-test2/ (ensure expected errors align with validations)
    • Workflow concurrency and NodeCI cache steps (validate keys and cancel semantics)

Possibly related PRs

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'chore: fix ci errors' is too vague and does not accurately describe the substantial changes in this PR, which include schemastore domain migrations, GitHub Actions workflow updates, and test fixtures. Consider a more specific title that reflects the main changes, such as 'chore: migrate schemastore URLs and update GitHub Actions workflows' or similar to better convey the scope of this changeset.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-type-error

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0a5f25a and c97ba81.

📒 Files selected for processing (33)
  • .github/workflows/GHPages.yml (1 hunks)
  • .github/workflows/NodeCI.yml (2 hunks)
  • .github/workflows/Release.yml (2 hunks)
  • .github/workflows/format.yml (1 hunks)
  • .github/workflows/stale.yml (1 hunks)
  • docs/.vitepress/config.mts (1 hunks)
  • docs/.vitepress/shim/require-from-cache.mjs (1 hunks)
  • docs/.vitepress/theme/components/playground-block.vue (4 hunks)
  • docs/rules/no-invalid.md (4 hunks)
  • src/utils/ast/js/utils.ts (1 hunks)
  • src/utils/schema.ts (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/$schema-test/json-input.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/$schema-test/toml-input.toml (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/$schema-test/yaml-input.yaml (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/direct/_config.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/eslintrc-test/_config.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/_config.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/renovate-errors.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/renovate-input.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/renovate-requirements.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/renovate2-errors.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/renovate2-input.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/renovate2-requirements.json (1 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/yarnrc-errors.json (0 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/yarnrc-input.json (0 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/yarnrc2-errors.json (0 hunks)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/yarnrc2-input.json (0 hunks)
  • tests/fixtures/rules/no-invalid/valid/$schema-test/json-input.json (1 hunks)
  • tests/fixtures/rules/no-invalid/valid/$schema-test/toml-input.toml (1 hunks)
  • tests/fixtures/rules/no-invalid/valid/$schema-test/yaml-input.yaml (1 hunks)
  • tests/fixtures/rules/no-invalid/valid/test01/_config.json (1 hunks)
  • tests/fixtures/rules/no-invalid/valid/ts-config/_config.json (1 hunks)
  • tests/src/rules/no-invalid.ts (11 hunks)
💤 Files with no reviewable changes (4)
  • tests/fixtures/rules/no-invalid/invalid/http-test2/yarnrc2-errors.json
  • tests/fixtures/rules/no-invalid/invalid/http-test2/yarnrc-errors.json
  • tests/fixtures/rules/no-invalid/invalid/http-test2/yarnrc-input.json
  • tests/fixtures/rules/no-invalid/invalid/http-test2/yarnrc2-input.json
✅ Files skipped from review due to trivial changes (6)
  • src/utils/schema.ts
  • tests/fixtures/rules/no-invalid/invalid/direct/_config.json
  • tests/fixtures/rules/no-invalid/invalid/http-test2/renovate2-requirements.json
  • tests/fixtures/rules/no-invalid/valid/ts-config/_config.json
  • tests/fixtures/rules/no-invalid/invalid/http-test2/renovate-requirements.json
  • tests/fixtures/rules/no-invalid/invalid/eslintrc-test/_config.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/utils/ast/js/utils.ts
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-04-03T13:27:02.461Z
Learnt from: JounQin
Repo: ota-meshi/eslint-plugin-json-schema-validator PR: 0
File: :0-0
Timestamp: 2025-04-03T13:27:02.461Z
Learning: In the eslint-plugin-json-schema-validator repository, the package.json configuration using yarn with self-referential link:. dependency for eslint-plugin-json-schema-validator is intentional and valid. This pattern is used for local development and testing of the plugin itself.

Applied to files:

  • docs/.vitepress/config.mts
  • tests/fixtures/rules/no-invalid/valid/test01/_config.json
  • docs/.vitepress/theme/components/playground-block.vue
  • docs/rules/no-invalid.md
  • .github/workflows/Release.yml
  • tests/fixtures/rules/no-invalid/invalid/$schema-test/json-input.json
  • tests/fixtures/rules/no-invalid/invalid/http-test2/_config.json
  • tests/fixtures/rules/no-invalid/valid/$schema-test/json-input.json
  • tests/src/rules/no-invalid.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: test-and-coverage
  • GitHub Check: test-with-eslint7
  • GitHub Check: test-with-eslint6
  • GitHub Check: test-with-eslint8 (16.x)
  • GitHub Check: test-with-eslint8 (14.x)
🔇 Additional comments (20)
tests/fixtures/rules/no-invalid/invalid/http-test2/_config.json (1)

7-7: Schema reference update aligns with PR objectives.

The schema URL has been updated from yarnrc.json to the official Renovate schema, consistent with the PR's broader effort to update schemastore references across test fixtures.

.github/workflows/stale.yml (1)

10-13: Concurrency pattern aligns with PR-wide workflow standardization.

The concurrency block follows the consistent pattern introduced across multiple workflows in this PR, preventing concurrent deployments for the same workflow-ref combination. This is sound CI/CD practice.

.github/workflows/format.yml (1)

6-9: Concurrency controls added for consistency without altering format job logic.

The concurrency block matches the pattern applied across the workflow suite and appropriately cancels in-progress formatting runs to reduce resource usage.

.github/workflows/Release.yml (2)

8-11: Concurrency block aligns with PR standardization.

Consistent with other workflows in the PR—appropriately prevents concurrent releases.


24-24: Semantic change: Node.js version pinning strategy updated.

The step name change from "Setup Node.js 16" to "Setup Node.js" is appropriate, but the version change from pinned "18" to "lts/*" shifts from a fixed release version to the current LTS. This means the release process will now use whatever Node LTS version is current at runtime rather than a specific version, which could introduce variability in release builds if LTS versions have breaking changes between releases.

Verify this change is intentional and won't cause unexpected behavior during the release process.

Also applies to: 27-27

.github/workflows/GHPages.yml (1)

16-16: Concurrency group changed from static to dynamic (per-branch queues).

The concurrency group changed from pages (shared global queue) to ${{ github.workflow }}-${{ github.ref }} (separate queue per branch). This semantic change means:

  • Each branch/PR now has its own deployment queue, allowing concurrent Pages deployments across different refs
  • Multiple deployments can run simultaneously instead of a single global queue

Verify that concurrent deployments across different branches don't cause conflicts or unintended overwrites in the Pages environment.

.github/workflows/NodeCI.yml (2)

9-12: Concurrency block follows PR standardization.

Consistent with other workflows; prevents concurrent CI runs for the same workflow-ref combination.


22-25: Caching strategy is well-implemented for build efficiency.

Cache restore before dependency install and cache save after lint (with if: always() guard) follows best practices:

  • Cache restore happens before yarn install, allowing cache hit to speed up install
  • if: always() ensures cache is saved even if lint fails, preventing cache staleness
  • Cache key appropriately includes OS, package.json hash, and branch (per-branch isolation for safety)

Also applies to: 30-34

tests/fixtures/rules/no-invalid/invalid/$schema-test/yaml-input.yaml (1)

1-1: LGTM! Schema URL migration is correct.

The update from json.schemastore.org to www.schemastore.org aligns with the domain migration across all test fixtures and documentation in this PR.

tests/fixtures/rules/no-invalid/invalid/$schema-test/toml-input.toml (1)

1-1: LGTM! Consistent schema URL update.

The domain migration is correctly applied to the TOML fixture.

tests/fixtures/rules/no-invalid/invalid/http-test2/renovate-input.json (1)

1-8: LGTM! Valid invalid test fixture.

This new Renovate test case correctly includes intentionally invalid data (numeric 42 in a string array) to test schema validation. The structure follows the pattern of other invalid test fixtures in the suite.

tests/fixtures/rules/no-invalid/valid/$schema-test/yaml-input.yaml (1)

1-1: LGTM! Schema URL correctly updated.

Consistent with the domain migration across all test fixtures.

tests/fixtures/rules/no-invalid/valid/$schema-test/json-input.json (1)

2-2: LGTM! Consistent schema URL migration.

The domain update is correctly applied to the JSON valid test fixture.

tests/fixtures/rules/no-invalid/invalid/$schema-test/json-input.json (1)

2-2: LGTM! Schema URL correctly migrated.

The domain update is properly applied to the invalid JSON test fixture.

tests/fixtures/rules/no-invalid/valid/$schema-test/toml-input.toml (1)

1-1: LGTM! Domain migration correctly applied.

Consistent with the schema URL updates across all test fixtures.

docs/.vitepress/theme/components/playground-block.vue (1)

71-71: LGTM! Documentation examples updated consistently.

The schema URLs in all playground code examples (JavaScript, JSON, YAML, TOML) have been correctly updated to use the www.schemastore.org domain, maintaining consistency with the test fixtures and ensuring users see current URLs.

Also applies to: 88-88, 103-103, 113-113

tests/fixtures/rules/no-invalid/valid/test01/_config.json (1)

7-7: LGTM! Schema URL updated correctly.

The schema URL has been updated from the old json.schemastore.org domain to www.schemastore.org, which aligns with the PR objective to fix CI errors.

tests/src/rules/no-invalid.ts (3)

35-35: LGTM! Schema URLs updated consistently.

The schema URLs have been correctly updated from json.schemastore.org to www.schemastore.org across multiple test cases, maintaining consistency between valid and invalid test scenarios.

Also applies to: 61-61, 83-83


97-97: LGTM! Test code strings updated correctly.

The $schema URLs within test code strings have been consistently updated to use www.schemastore.org. The test logic and expected error assertions remain unchanged.

Also applies to: 126-126, 158-158, 187-187, 216-216, 244-244, 268-268


296-296: Schema URLs verified and accessible.

The prettierrc schema URL at line 296 has been updated correctly and is accessible (HTTP 200). All updated schema URLs in this file are functional and properly formatted.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ota-meshi ota-meshi changed the title chore: fix typing error chore: fix ci errors Nov 10, 2025
@ota-meshi ota-meshi merged commit 207eac4 into main Nov 10, 2025
0 of 11 checks passed
@ota-meshi ota-meshi deleted the fix-type-error branch November 10, 2025 08:47
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