Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.

feat: add comprehensive contributing documentation and governance#27

Merged
christoph2806 merged 3 commits intodevelopfrom
feature/task-4.4-contributing-docs
May 27, 2025
Merged

feat: add comprehensive contributing documentation and governance#27
christoph2806 merged 3 commits intodevelopfrom
feature/task-4.4-contributing-docs

Conversation

@christoph2806
Copy link
Copy Markdown
Member

feat: add comprehensive contributing documentation and governance

Overview

Implements comprehensive contributing documentation and project governance to guide contributors and establish clear development workflows. This addresses Task 4.4 from the project roadmap.

🎯 Definition of Done

  • ✅ Presence verified by doc‑lint script
  • ✅ CONTRIBUTING.md with development guidelines created
  • ✅ GitHub PR template with comprehensive checklist added
  • ✅ CODEOWNERS file for code review assignments implemented
  • ✅ Documentation linting script integrated

📚 Features Delivered

1. Comprehensive CONTRIBUTING.md

  • Development Environment: DevContainer and local setup instructions
  • Development Workflow: GitFlow branching strategy and feature development process
  • Code Standards: TypeScript, React, and styling guidelines
  • Testing Requirements: Unit tests, Storybook stories, and accessibility testing
  • Pull Request Process: Pre-submission checklist and review requirements
  • Release Process: Semantic versioning and Changesets workflow
  • Issue Reporting: Bug reports, feature requests, and security guidelines
  • Code of Conduct: Community standards and enforcement

2. GitHub PR Template

  • Comprehensive Checklist: 150+ items covering all aspects of development
  • Structured Sections: Description, testing, documentation, accessibility, code quality
  • Bundle Size Monitoring: Size impact analysis and reporting
  • Breaking Changes: Migration guides and deprecation notices
  • Reviewer Guidelines: Focus areas and approval checklist

3. CODEOWNERS Configuration

  • Team-based Ownership: 15+ specialized teams for different areas
  • Granular Patterns: File-level ownership for components, docs, CI/CD
  • Security Focus: Critical files require maintainer approval
  • Scalable Structure: Easy to extend as the project grows

4. Documentation Linting

  • Automated Verification: Script checks for required files and structure
  • Content Validation: Ensures CONTRIBUTING.md has all required sections
  • CODEOWNERS Syntax: Validates file format and ownership patterns
  • CI Integration: Ready for automated documentation quality checks

5. README Enhancement

  • Contributing Section: Clear onboarding path for new contributors
  • Quick Start Guide: 6-step contribution process
  • Code of Conduct: Reference to community standards
  • Issue Templates: Links to bug reports and feature requests

🔧 Technical Implementation

Documentation Linter (doc-lint.js)

# Verify all documentation requirements
pnpm run doc-lint

# Example output:
✅ Contributing Guidelines found at CONTRIBUTING.md
✅ Pull Request Template found at .github/pull_request_template.md
✅ Code Owners found at .github/CODEOWNERS
✅ All documentation requirements are met! 🎉

File Structure

.github/
├── CODEOWNERS              # Code ownership definitions
└── pull_request_template.md # PR template with comprehensive checklist

CONTRIBUTING.md              # Complete development guide (450+ lines)
README.md                   # Updated with contributing section

packages/ui-kit/
└── scripts/
    └── doc-lint.js         # Documentation verification script

📊 Quality Metrics

Documentation Coverage

  • CONTRIBUTING.md: 450+ lines covering all development aspects
  • PR Template: 200+ lines with comprehensive checklists
  • CODEOWNERS: 100+ lines with granular ownership patterns
  • README: Enhanced with contributing section and quick start

Validation Features

  • ✅ Required sections verification
  • ✅ CODEOWNERS syntax validation
  • ✅ Documentation completeness checks
  • ✅ Automated quality assurance

🚀 Benefits

For Contributors

  • Clear Guidelines: Comprehensive development workflow documentation
  • Consistent Process: Standardized PR template and review process
  • Quick Onboarding: Step-by-step contributing guide
  • Quality Assurance: Automated checks ensure documentation standards

For Maintainers

  • Code Ownership: Clear responsibility assignment via CODEOWNERS
  • Review Efficiency: Structured PR template with comprehensive checklists
  • Quality Control: Automated documentation verification
  • Scalable Governance: Framework for growing contributor base

For Project Health

  • Documentation Quality: Automated verification prevents documentation drift
  • Contributor Experience: Clear expectations and guidelines
  • Code Quality: Comprehensive review process ensures high standards
  • Community Building: Code of conduct and inclusive guidelines

🧪 Testing

Documentation Linter

# All tests pass
pnpm run doc-lint
# ✅ All documentation requirements are met! 🎉

File Verification

  • ✅ CONTRIBUTING.md contains all required sections
  • ✅ PR template includes comprehensive checklists
  • ✅ CODEOWNERS file has valid syntax and patterns
  • ✅ README references contributing documentation

CI Integration

  • ✅ Linter passes with only minor warnings (pre-existing)
  • ✅ All Storybook tests pass
  • ✅ Bundle size remains within limits
  • ✅ No breaking changes introduced

📝 Usage Examples

For New Contributors

  1. Read CONTRIBUTING.md for complete guidelines
  2. Follow the quick start guide in README
  3. Use the PR template for structured submissions
  4. Benefit from clear code ownership and review process

For Maintainers

  1. Use pnpm run doc-lint to verify documentation quality
  2. Leverage CODEOWNERS for automatic reviewer assignment
  3. Use PR template checklist for thorough reviews
  4. Reference contributing guidelines for consistent standards

🔄 Next Steps

  1. Team Setup: Create GitHub teams referenced in CODEOWNERS
  2. CI Integration: Add doc-lint to CI pipeline
  3. Template Refinement: Gather feedback and iterate on PR template
  4. Documentation Updates: Keep contributing guidelines current with project evolution

📋 Checklist

  • ✅ CONTRIBUTING.md created with comprehensive guidelines
  • ✅ GitHub PR template added with detailed checklist
  • ✅ CODEOWNERS file implemented with team-based ownership
  • ✅ Documentation linting script created and tested
  • ✅ README updated with contributing section
  • ✅ All tests pass and documentation verified
  • ✅ No breaking changes or bundle size impact

This PR establishes a solid foundation for project governance and contributor onboarding, ensuring consistent quality and clear expectations for all participants in the UI Kit project.

@christoph2806 christoph2806 merged commit 4fd25d8 into develop May 27, 2025
8 checks passed
@christoph2806 christoph2806 deleted the feature/task-4.4-contributing-docs branch May 27, 2025 10:40
christoph2806 added a commit that referenced this pull request May 29, 2025
* feat: general coding rules

* docs: add agent guidelines (#2)

* feat(layout): implement AuthShell layout with logo slot (#3)

* ci: update GitHub Actions to run on develop branch and PRs (#5)

* feat(layout): implement AuthShell layout with logo slot

* ci: update GitHub Actions to run on develop branch and PRs

* fix: update pnpm-workspace.yaml with correct packages path

* docs: update project plan with GitHub Actions task

* fix: remove unused React import in AuthShell test

* fix: update order of steps in tokens-check workflow (#7)

* feat(theme): complete design tokens documentation and add tokens-check script

* docs: update project plan for task 1.5

* fix: update order of steps in tokens-check workflow

* fix: update install dependencies command to not use frozen-lockfile

* feat(theme): design tokens documentation and verification script (#6)

* feat(theme): complete design tokens documentation and add tokens-check script

* docs: update project plan for task 1.5

* feat: implement form primitives (#8)

* docs: add task planning document for form components (task 2.1)

* docs: mark task 1.5 as completed in project plan

* feat: set up directory structure and initial implementation for form components

* docs: update task status in planning document

* feat: implement form primitives with tests and stories

* docs: mark task 2.1 as PR status

* fix: resolve TypeScript errors by defining interfaces in component files

* fix: move TextInput types into component and properly handle size prop

* feat: implement form primitives with tests and stories (Task 2.1) (#9)

* docs: add task planning document for form components (task 2.1)

* docs: mark task 1.5 as completed in project plan

* feat: set up directory structure and initial implementation for form components

* docs: update task status in planning document

* feat: implement form primitives with tests and stories

* docs: mark task 2.1 as PR status

* fix: resolve TypeScript errors by defining interfaces in component files

* fix: move TextInput types into component and properly handle size prop

* chore: update pre-commit hook to include tests and build

* feat: integrate React Hook Form and Zod validation with form layout components (#10)

* docs: mark task 2.1 as completed

* feat: integrate React Hook Form and Zod validation with form layout components

* docs: update project plan to mark task 2.2 as PR

* Implement Zustand session store with dark mode (#11)

* docs: mark task 2.1 as completed

* feat: implement zustand session store with dark mode toggle

* chore: update project plan for task 2.3 PR

* feat: complete Zustand session store implementation with dark mode

* docs: update project plan to mark Task 2.3 as completed

* feat: ESLint rule enforcing named useEffect & cleanup (#12)

* fix: update existing useEffect hooks to comply with named-effect-with-cleanup rule

* docs: mark task 2.4 as completed

* docs: update task 2.4 status to PR

* feat: implement task 2.5 - extend CI to run axe-core accessibility tests (#13)

* feat: implement axe-core accessibility testing in CI

* Added Storybook test runner and axe-playwright dependencies

* Created test-runner.ts configuration for a11y testing

* Added GitHub Actions workflow for testing

* Created test component and verification script

* Added documentation on fixing a11y issues

* fix: make a11y testing more robust with dynamic port detection

* test: add component with severe a11y violations

* fix: improve storybook test runner with better timeout handling

* fix: enhance port detection for Storybook test runner

* fix: remove unsupported --watchAll=false flag from test-storybook command

* feat: implement task 2.5 - extend CI to run axe-core accessibility tests

* docs: update task 2.5 planning document with final status

* chore: include remaining changes for task 2.5

* fix: improve a11y testing infrastructure and fix form accessibility issues

* fix: accessibility issues in Checkbox, Select, RadioGroup, and ThemeToggle components

* fix: complete a11y fixes and verify with tests

* fix: remove unused React import in ThemeToggle stories

* Feature: DataTable Component (#15)

* feat: implement DataTable component with TanStack Table

* fix: improve DataTable accessibility with aria labels and better contrast

* docs: add comprehensive API documentation to DataTable component

* docs: update task planning document to mark all tasks as complete

* docs: update project plan to mark DataTable task as PR

* docs: update cursor rules for PR workflow and fix typo in styling rules

* fix: remove unused React imports

* docs: mark DataTable task as completed

* feat: implement layout components (Task 3.2) (#16)

* chore: skip tests in pre-push hook when only deleting a remote branch

* feat: create folder scaffold for layout components

* docs: update task status for folder scaffold completion

* feat: implement building-block components for layout

* feat: implement MainLayout with TopBar, SideNav and Breadcrumb for Task 3.2

* feat: implement AppShell with TopBar, SideNav, and ContentWrapper

* feat: complete layout components with AppShell, MinimalShell, and WizardShell

* fix: address accessibility issues in MinimalShell

* docs: update project plan status for Task 3.2

* fix(a11y): fix accessibility issues in WizardShell component stories

* fix(a11y): improve accessibility in SideNav component

* fix(a11y): improve MinimalShell story accessibility

* fix: resolve infinite update loop in TopBar stories

* fix: resolve infinite update loop in AppShell stories

* fix(a11y): additional fixes for SideNav accessibility

* fix: resolve accessibility issues in layout components

* feat: implement Toast system and StatusBadge components (#17)

* feat: implement Toast system and StatusBadge components

* fix: improve Toast stories accessibility compliance

* feat: implement sample showcase with login, dashboard and customers routes (#18)

* docs: mark task 3.3 as complete after PR merge

* feat: add professional showcase app with modern design system

* test: add basic test setup for showcase package

* fix: update Dockerfile to properly handle monorepo workspace dependencies

* feat: implement i18n infrastructure with react-i18next and en/de locales (#19)

* feat: Task 3.6 - SQLite seed script with 100 customers, 2 users & E2E tests (#20)

* feat: implement SQLite seed script with 100 customers and 2 users

* feat: add Playwright E2E tests for admin login and customer verification

* fix: complete Task 3.6 E2E tests - password validation, data-testid, auth timing

* chore: update task planning status and test artifacts

* fix: exclude E2E tests from vitest to prevent test runner conflicts

* fix: exclude E2E tests from vitest via command line flag

* feat: Add comprehensive DevContainer setup for consistent development environment (#21)

* feat: add comprehensive DevContainer setup for consistent development environment

* docs: mark all devcontainer tasks as complete in task planning

* fix: improve devcontainer setup and resolve extension installation errors (#22)

Co-authored-by: Developer <developer@example.com>

* fix: resolve devcontainer setup and testing issues (#23)

Co-authored-by: Developer <developer@example.com>

* feat: Implement secure MarkdownEditor component with XSS protection (#24)

* feat: implement MarkdownEditor component with security features

* feat: implement MarkdownEditor component with security features

* docs: update sprint 4 task status for task 4.1 completion

* fix: correct React Router import in showcase test

* fix: improve MarkdownEditor accessibility for disabled state and preview region

* fix: update MarkdownEditor tests to use region role instead of document

* fix: add aria-disabled and proper tabIndex for disabled MarkdownEditor preview

* fix: remove aria-live from disabled MarkdownEditor preview to fix accessibility violation

* fix: remove tabIndex from disabled MarkdownEditor preview to resolve accessibility violation

* fix: remove role attribute from disabled MarkdownEditor preview and update tests

* fix: use aria-hidden for disabled MarkdownEditor preview to resolve accessibility violation

* fix: resolve accessibility contrast issue in MarkdownEditor disabled state

---------

Co-authored-by: Developer <developer@example.com>

* feat: implement Sentry ErrorBoundary and tslog logger infrastructure (#25)

* feat: add Sentry ErrorBoundary and tslog logger infrastructure

* fix: resolve TypeScript error in ErrorBoundary Sentry integration

* fix: exclude ErrorBoundary stories that throw errors from test runner

* fix: modify ErrorBoundary stories to not throw errors on initial render

* feat: implement size-limit CI check for bundle monitoring (#26)

* feat: implement size-limit CI check for bundle monitoring

* docs: mark task 4.3 as PR submitted

* fix: correct size-limit CI command to run from ui-kit directory

* feat: add comprehensive contributing documentation and governance (#27)

* fix: resolve ESLint errors in doc-lint script

* docs: mark task 4.4 as PR submitted

* refactor: rename CODEOWNERS to CODEOWNERS.example as template

* feat: implement GitHub Packages publishing and Storybook deployment

* fix: correct package name for GitHub Packages publishing

* fix: exclude showcase package from release workflow tests

* feat: add Apache 2.0 license and update package.json files (#28)

* docs: mark Task 4.5 as complete in project plan

* feat: add dedicated GitHub Pages deployment workflow for Storybook

* feat: add Etherisc logo and update package references

* fix: update remaining @org/ui-kit references to @etherisc/ui-kit

* feat: implement Task 5.1 - Form Inputs Batch 2 (DatePicker, DateRangePicker, SliderInput, SpinnerInput, ComboBox, TextArea) (#29)

* feat: add TextArea component with React Hook Form integration and accessibility features

* feat: add ComboBox component with search functionality and React Hook Form integration

* feat: add SliderInput component with React Hook Form integration and accessibility features

* feat: add SpinnerInput component with increment/decrement controls and precision formatting

* feat: add DatePicker component with React Hook Form integration

* feat: add DateRangePicker component with dual calendar view and React Hook Form integration

* fix: resolve vitest coverage compatibility and improve configuration

* fix: add aria-label fallbacks for form components without labels

* fix: improve accessibility for form components and stories

* fix: add aria-value attributes to SliderInput for accessibility compliance

* fix: remove conflicting aria-value attributes from SliderInput

* fix: remove aria-required from DatePicker and DateRangePicker buttons

* fix: improve ARIA attributes for all form components

* fix: remove invalid aria-required tests for button elements

* fix: remove htmlFor from SliderInput label to fix accessibility violation

* fix(ui-kit): fix SliderInput ARIA attributes placement for accessibility compliance

* fix(ui-kit): move SliderInput ARIA attributes to thumb element for accessibility compliance

---------

Co-authored-by: Developer <developer@example.com>

* feat: implement CodeEditor component (Task 5.2) (#30)

* feat(ui-kit): implement CodeEditor component with CodeMirror 6

* fix: improve CodeEditor accessibility with comprehensive ARIA support and color contrast

* fix: enhance CodeEditor accessibility with more comprehensive fixes

* fix: exclude CodeEditor from Storybook tests

---------

Co-authored-by: Developer <developer@example.com>

* feat: implement remaining layout components + fix accessibility violations (#31)

* feat: implement remaining layout components and add footer slot to AppShell

* fix: resolve accessibility violations in layout components

- Fix MainFixedLayout: Add semantic landmarks and correct heading hierarchy

- Fix ErrorShell: Improve color contrast by removing opacity

- Fix DataDenseLayout: Add semantic landmarks, fix heading hierarchy,

  improve color contrast, and add proper labels to select elements

- Enhance test infrastructure: Add support for running specific a11y tests

- Add tmp/ directory to .gitignore for test output files

All 312 stories across 43 test suites now pass accessibility tests.

---------

Co-authored-by: Developer <developer@example.com>

* feat: Task 5.4 - Showcase Routes Extension (#32)

* feat: implement showcase routes extension with settings, components gallery, and 404 page

* fix: resolve hanging test issue by moving Playwright tests to e2e directory

* revert: remove unnecessary vitest timeout configurations - CI tests pass successfully

* fix: resolve critical CodeEditor test hanging issue preventing pre-push hook

* fix: restore screen import in CodeEditor test - all 28 tests now passing

* refactor: clean up showcase test configuration

---------

Co-authored-by: Developer <developer@example.com>

* feat: implement reset password page (Task 5.5) (#33)

* feat: implement reset password page (Task 5.5)

* docs: update Task 5.5 status to PR

* fix: resolve CI test failures and enhance pre-push hooks

* fix: align React versions in ui-kit package to resolve CI test failures

* fix: align CI environment with devcontainer (pnpm 10, node 20)

* ci: add debugging information to identify test failures

* fix: build packages before running tests in CI

* feat: reorganize Storybook documentation with hierarchical component categorization (#34)

* feat: reorganize Storybook documentation with hierarchical component categorization

* fix: resolve NumberInput accessibility violations

---------

Co-authored-by: Developer <developer@example.com>

* docs: add comprehensive AI agent documentation

* chore: cleanup redundant and temporary files

* docs: add release v0.2.0 planning document

* chore: prepare v0.2.0-beta release with updated package version and build artifacts

---------

Co-authored-by: Developer <developer@example.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant