Skip to content

Dev: Getting Started

We welcome contributions from everyone!
This guide explains how to fork the repo, prepare your branch, run repo-specific checks, and submit a pull request.

Prerequisites

  • Git
  • Node.js (supported version is >=22.0.0)
  • Python 3.10+
  • An active GitHub account

1. Fork and clone

Important

All contributions should be made against the dev branch, which is the main development branch for SD.Next.

Select branch

Dev: https://github.com/vladmandic/sdnext/tree/dev

Create fork

Create a fork of the repository on GitHub. In the top-right corner of the repository page, select Fork.

Clone your fork

Clone your fork locally:

git clone https://github.com/<your-username>/sdnext.git
cd sdnext
git checkout dev

Optional: Create a branch

Creating a feature branch is optional but recommended, especially if you plan to work on multiple PRs or want to keep your changes organized.

Tip

Good branch names are feature/your-feature-name or fix/issue-description.
Avoid generic names like my-changes or update-code.

git checkout -b my-feature-branch

2. Install dependencies

Install the project dependencies:

Tip

pnpm is recommended for faster installs, but default npm also works:

npm install

3. Make your changes

Edit only the files needed for your contribution. Avoid unrelated changes and do not include submodule updates unless they are part of your work.

4. Review your scope

Check the files you changed:

git status

Confirm that your branch includes only the intended changes and does not contain unrelated edits or submodule updates. If you see any unintended changes, you can reset them before committing.

5. Lint and validate

SD.Next has a comprehensive linting and validation workflow to ensure code quality. Run the following command to check your changes:

Run the project lint workflow before submitting your PR:

Important

Make sure to fix any linting errors before submitting your PR.

npm run lint

This command runs: - precommit for formatting and pre-commit checks - eslint for JavaScript/TypeScript linting - tsc for TypeScript type checks - ruff for Python linting - pylint for Python static analysis

6. Commit and submit

  • Commit your changes with a clear message
  • Push your branch to your fork
  • Open a PR against dev.

Your PR will be reviewed and, once approved, merged into dev. Changes merged to dev are included in the next main release.