Skip to content

chore: fix CI Node-20 deprecation + clear all lint debt#1

Merged
Patel230 merged 1 commit into
mainfrom
chore/fix-lint-and-ci
Jun 8, 2026
Merged

chore: fix CI Node-20 deprecation + clear all lint debt#1
Patel230 merged 1 commit into
mainfrom
chore/fix-lint-and-ci

Conversation

@Patel230

@Patel230 Patel230 commented Jun 8, 2026

Copy link
Copy Markdown
Owner

Cleans up the remaining technical debt flagged after the GitHub-stats fix.

CI

  • Bump actions/checkout and actions/setup-node v4 → v5. Node-20 actions are deprecated; GitHub forces Node-24 on 2026-06-16.

Lint — 263 warnings → 0

Root cause was an ESLint ↔ Prettier conflict: plugin:vue/vue3-recommended enables strict formatting rules (vue/max-attributes-per-line, etc.) that fight Prettier's wrapping, so --fix could never win.

  • Added eslint-config-prettier and appended 'prettier' (last) to the extends chain, disabling the conflicting formatting rules. lint:check now reports 0/0 cleanly.

Substantive fixes

  • Removed unused thumbnailRefs destructure (GallerySection.vue, GalleryView.vue)
  • Removed unused ext in vite.config.js
  • Documented the BlogView v-html as safe (post.safeBody is DOMPurify-sanitized) with a scoped eslint-disable rather than altering correct code
  • Replaced the placeholder true===true test with 8 real Icon.vue specs (also fixes its unused mount import)

Verification

lint:check ✅ 0 · format:check ✅ 0 · tests ✅ 8/8 · build

No runtime/visual changes — this is tooling + cleanup only.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests

    • Added comprehensive test suite for icon component.
    • Removed placeholder test scaffolding.
  • Chores

    • Integrated Prettier with ESLint for code formatting consistency.
    • Updated GitHub Actions workflows to latest versions.
    • Added Prettier configuration dependency.
  • Style

    • Reformatted component templates for improved readability.

CI:
- Bump actions/checkout and actions/setup-node v4 -> v5 (Node-20 actions are
  deprecated; GitHub forces Node-24 on 2026-06-16).

Lint — root cause of the 263 warnings was an ESLint/Prettier conflict
(vue/vue3-recommended formatting rules vs Prettier wrapping, fighting each other):
- Add eslint-config-prettier and append 'prettier' (last) to the extends chain,
  which disables the conflicting formatting rules. lint:check now reports 0/0.

Substantive lint fixes:
- Remove unused `thumbnailRefs` destructure in GallerySection.vue + GalleryView.vue.
- Remove unused `ext` in vite.config.js asset namer.
- Document the BlogView v-html as safe (post.safeBody is DOMPurify-sanitized) with
  a scoped eslint-disable instead of changing correct code.
- Replace the placeholder `true===true` HelloWorld test with real Icon.vue specs
  (8 tests), which also fixes its unused `mount` import.

Verified: lint:check 0, format:check 0, 8/8 tests, build all pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This PR integrates Prettier with ESLint configuration, refactors lightbox ref bindings in gallery components to use a consolidated thumbnailStripRef pattern, standardizes Vue template formatting, adds comprehensive Icon component tests, and updates CI/build infrastructure versions and configuration.

Changes

Prettier Integration & Code Quality Updates

Layer / File(s) Summary
Prettier Configuration & Dependencies
.eslintrc.cjs, package.json
ESLint configuration extends 'prettier' with explanatory comments, and eslint-config-prettier package is added to devDependencies.
Lightbox Ref Consolidation
src/sections/GallerySection.vue, src/views/GalleryView.vue
Both gallery components update lightbox refs: template markup binds thumbnailStripRef, and script destructuring removes thumbnailRefs while retaining other lightbox bindings.
Template Formatting & Linting Compliance
src/layout/NavBar.vue, src/views/BlogView.vue
NavBar router-links are reformatted to multi-line layout; BlogView title is reformatted and an ESLint disable comment suppresses vue/no-v-html for the sanitized post body.
Icon Component Test Suite
src/components/__tests__/Icon.spec.js
Vitest suite mounts Icon.vue and asserts default/custom sizing, aria-hidden="true" marking, known icon path rendering, unknown icon circle fallback, default viewBox, and conditional fill/stroke styling.
CI & Build Infrastructure Updates
.github/workflows/ci.yml, vite.config.js
GitHub Actions versions bumped to v5 for actions/checkout and actions/setup-node; Vite asset filename callback simplified by removing intermediate variable parsing.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A rabbit's verse on polish and refine:
Prettier smooths the lines so fine,
Lightbox refs now align and shine,
Icon tests in rows combine,
Build and CI—infrastructure divine! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the two main changes: addressing CI Node-20 deprecation and resolving all lint warnings.
Description check ✅ Passed The PR description is comprehensive and covers all required sections from the template with detailed context and verification results.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/fix-lint-and-ci

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.

@Patel230 Patel230 merged commit 2c8280e into main Jun 8, 2026
1 of 2 checks passed
@Patel230 Patel230 deleted the chore/fix-lint-and-ci branch June 8, 2026 09:13
Patel230 added a commit that referenced this pull request Jun 8, 2026
CI:
- Bump actions/checkout and actions/setup-node v4 -> v5 (Node-20 actions are
  deprecated; GitHub forces Node-24 on 2026-06-16).

Lint — root cause of the 263 warnings was an ESLint/Prettier conflict
(vue/vue3-recommended formatting rules vs Prettier wrapping, fighting each other):
- Add eslint-config-prettier and append 'prettier' (last) to the extends chain,
  which disables the conflicting formatting rules. lint:check now reports 0/0.

Substantive lint fixes:
- Remove unused `thumbnailRefs` destructure in GallerySection.vue + GalleryView.vue.
- Remove unused `ext` in vite.config.js asset namer.
- Document the BlogView v-html as safe (post.safeBody is DOMPurify-sanitized) with
  a scoped eslint-disable instead of changing correct code.
- Replace the placeholder `true===true` HelloWorld test with real Icon.vue specs
  (8 tests), which also fixes its unused `mount` import.

Verified: lint:check 0, format:check 0, 8/8 tests, build all pass.
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.

1 participant