From b5d41443e01130ee6553eaa790f03770145b8313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robson=20J=C3=BAnior?= Date: Tue, 28 Jul 2026 14:48:36 -0300 Subject: [PATCH] docs(webkit): refresh GOVERNANCE_IMPLEMENTATION for release-please and the current CI pipeline The doc (shipped to npm via files: docs) still described the semantic-release/.releaserc mechanism deleted by #798 and an 8-job CI. Rewritten against the current tree: publish-workflow d.ts generation, 12-job governance pipeline with main-only triggers, plain pnpm audit, current scripts/hooks/config locations, and a historical release-automation migration note. --- .../webkit/docs/GOVERNANCE_IMPLEMENTATION.md | 406 ++++++++++-------- 1 file changed, 226 insertions(+), 180 deletions(-) diff --git a/packages/webkit/docs/GOVERNANCE_IMPLEMENTATION.md b/packages/webkit/docs/GOVERNANCE_IMPLEMENTATION.md index bcef0b708..953791c36 100644 --- a/packages/webkit/docs/GOVERNANCE_IMPLEMENTATION.md +++ b/packages/webkit/docs/GOVERNANCE_IMPLEMENTATION.md @@ -1,15 +1,17 @@ # Governance Pipeline Implementation -**Date:** 2026-04-13 **Package:** @aziontech/webkit **Framework:** Vue 3 + TypeScript **CI/CD:** GitHub Actions +**Implemented:** 2026-04-13 · **Last refreshed:** 2026-07-28 (release-please model, current job set) --- ## Overview -This document details the implementation of a comprehensive governance pipeline for the `@aziontech/webkit` Vue 3 component library. The pipeline enforces code quality, security, accessibility, and type safety standards on every commit and CI/CD run. +This document details the implementation of the governance pipeline for the `@aziontech/webkit` Vue 3 component library. The pipeline enforces code quality, security, accessibility, and type safety standards on every commit and CI/CD run. + +The construction standards themselves (props, styling, testing, …) are catalogued in [`STYLEGUIDE.md`](./STYLEGUIDE.md) and digested in [`GUIDELINES.md`](./GUIDELINES.md); the full process map is [`PROCESS.md`](./PROCESS.md). This document covers the **tooling**: what runs, where it runs, and why each piece exists. --- @@ -21,7 +23,7 @@ This document details the implementation of a comprehensive governance pipeline 4. [Type Coverage](#4-type-coverage) 5. [Prettier Ignore](#5-prettier-ignore) 6. [Package Scripts](#6-package-scripts) -7. [Pre-commit Hooks](#7-pre-commit-hooks) +7. [Git Hooks](#7-git-hooks) 8. [GitHub Actions Workflow](#8-github-actions-workflow) 9. [Dependencies](#9-dependencies) @@ -29,31 +31,31 @@ This document details the implementation of a comprehensive governance pipeline ## 1. ESLint Configuration -**File:** `/packages/webkit/eslint.config.js` +**File:** root [`eslint.config.js`](../../../eslint.config.js) — the repo-wide flat config. `packages/webkit/eslint.config.js` is a one-line re-export of it, so running ESLint from the package resolves the exact same rule set. ### What Was Implemented -Migrated from `.eslintrc.*` to ESLint 9 flat config format (`eslint.config.js`) with comprehensive Vue 3 + TypeScript rules. +ESLint 9 flat config (`eslint.config.js`) with Vue 3 + TypeScript rules, migrated from the legacy `.eslintrc.*` format. ### Reasoning -| Rule/Feature | Reason | -| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **ESLint 9 flat config** | ESLint 9+ requires the new `eslint.config.js` format. The legacy `.eslintrc.*` format is deprecated and will be removed in future versions. This ensures forward compatibility. | -| **`vue/vue3-recommended`** | Provides Vue 3 Composition API-specific rules. Upgraded from `essential` to `recommended` for stricter enforcement of Vue best practices (e.g., proper lifecycle hooks, template syntax). | -| **`@typescript-eslint`** | TypeScript-specific linting catches type errors at lint time rather than build time. Rules like `no-explicit-any` prevent unsafe `any` usage that undermines type safety. | -| **`vue/no-v-html` (error)** | Prevents XSS vulnerabilities. `v-html` allows arbitrary HTML injection which can lead to cross-site scripting attacks. Components should use text interpolation or sanitize HTML. | -| **`vue/require-default-prop` (error)** | Ensures all optional props have default values. This prevents `undefined` runtime errors and makes component behavior predictable. Required for zero warnings policy. | -| **`vue/require-explicit-emits` (error)** | Forces explicit declaration of emitted events via `defineEmits`. This improves component API documentation, enables IDE autocomplete, and catches typos in event names. | -| **`vuejs-accessibility` plugin** | Vue-specific accessibility rules (not React's `jsx-a11y`). Catches a11y violations like missing alt text, improper ARIA attributes, and click handlers without keyboard support. Critical for WCAG compliance. | -| **`simple-import-sort`** | Automatically sorts imports alphabetically. Prevents merge conflicts in teams, makes diffs cleaner, and improves code readability. | -| **`unused-imports`** | Removes unused imports during auto-fix. Dead imports increase bundle size and indicate incomplete refactoring. | -| **`import/no-duplicates`** | Prevents importing the same module multiple times. Redundant imports can lead to initialization side effects running twice. | -| **`no-console` (error)** | Prevents `console.log` statements in production code. Console statements can leak sensitive information and degrade performance. Developers should use proper logging libraries or remove debug code. | -| **`no-debugger` (error)** | Prevents `debugger` statements. These halt execution in production and should never be committed. | -| **`prefer-const` (error)** | Enforces `const` for variables that are never reassigned. Signals intent clearly and prevents accidental reassignment. | -| **`vue-eslint-parser`** | Parses `.vue` single-file components with `