Skip to content

Latest commit

 

History

History
120 lines (69 loc) · 2.21 KB

File metadata and controls

120 lines (69 loc) · 2.21 KB

Contributing to gradiente

Thank you for your interest in contributing to gradiente.

gradiente is a lightweight, renderer-agnostic gradient toolkit for modern rendering systems. The project aims to provide a robust and composable foundation for gradient processing across platforms.

Please read this document before contributing.

Before Contributing

Review the project direction and architecture guidelines first:

Contributions should align with the project's architecture and long-term vision.

Development Setup

Install dependencies:

pnpm install --frozen-lockfile

Run development build:

pnpm dev

Run tests:

pnpm test

Run type checks:

pnpm typecheck

Build package:

pnpm build

Contribution Guidelines

Keep Changes Focused

  • One PR / commit should address one concern
  • Avoid bundling unrelated fixes/refactors/features together

Match Project Philosophy

gradiente prioritizes:

  • Renderer-agnostic core architecture
  • Lightweight design
  • Minimal public API surface
  • Composable functional utilities
  • Strong TypeScript typings

Tests Are Expected

When practical:

  • New features should include tests
  • Bug fixes should include regression coverage
  • Parser/serializer changes should include roundtrip validation

Public API Changes

Be thoughtful when changing public exports or API contracts.

Public API additions should provide:

  • Broad usefulness
  • Architectural value
  • Clear composability benefits

Avoid unnecessary API surface expansion.

Coding Standards

  • Use TypeScript with strict typing
  • Avoid any unless absolutely necessary
  • Prefer pure functions over class-heavy abstractions
  • Keep files focused and reasonably small
  • Add comments for non-obvious math or logic

Documentation

If your change affects public behavior or API:

  • Update relevant documentation
  • Update examples when applicable
  • Add changelog entries for notable user-facing changes

Questions / Discussion

For major architectural ideas or breaking changes, open an issue before implementing.

Early discussion is preferred over large speculative PRs.

Thank you for helping improve gradiente.