Contributing ​

Sometic is open source under MIT. Contributions are welcome via GitHub pull requests. Pushes to main are restricted; changes land through PRs with required checks and approval.

Requirements ​

  • Node.js >=20.18.0
  • pnpm 10.14.0 (see the repository root packageManager field)

Setup ​

bash
git clone https://github.com/aitistack/sometic.git
cd sometic
pnpm install
pnpm build

Common commands ​

CommandPurpose
pnpm buildBuild packages (Turbo)
pnpm lintLint
pnpm typecheckTypecheck
pnpm testUnit / package tests
pnpm test:coverageCoverage
pnpm test:e2ePlaywright e2e
pnpm sizeBundle size budgets
pnpm packages:validatePackage metadata / export checks
pnpm docs:devDocs site (VitePress)
pnpm docs:buildBuild docs
pnpm docs:checkDocs validation
pnpm format / pnpm format:checkPrettier
pnpm changesetAdd a Changeset for publishable changes
pnpm changeset:statusChangeset status

Local quality gate:

bash
pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm size && pnpm packages:validate

Maintainer local harness commands (outside this docs site) are listed in the repository root CONTRIBUTING.md.

Before you start ​

  1. Read Architecture and What’s included
  2. Prefer a focused PR (one concern) over a large mixed change
  3. Match existing package boundaries and dependency direction (adapters → features → foundation)

How to contribute ​

  1. Fork the repository (or branch, if you have write access)
  2. Create a branch from main
  3. Implement with tests and docs (FAQ/comparison for public modules)
  4. Run the local quality gate above
  5. Add a Changeset for publishable package changes: pnpm changeset
  6. Open a pull request and wait for CI + maintainer review

What we look for ​

DoAvoid
Four-space indentationTabs or two-space indent
Production TypeScriptPlaceholders or mock-as-production
Docs with the changeUndocumented public APIs
Stable issue codes for validationSchema-library lock-in in cores
Security notes on sensitive PRsPublic issues for unfixed vulns

Architecture for contributors ​

Public architecture lives under Concepts and the API package index. Decisions that affect consumers are documented on those pages and in release notes. Keep dependency direction one-way: framework adapters never leak into foundation packages, and cores must not import React/Vue/etc.

Bugs and features ​

Use GitHub issue templates (Bug report / Feature request). Include package versions, framework, and reproduction steps.

Security ​

Do not file public issues for exploitable vulnerabilities. See Security and the repo SECURITY.md.

License ​

By contributing, you agree your work is provided under the project MIT license (see Terms and License).