Files
Stirling-PDF/CONTRIBUTING.md
ConnorYoh 702f4e5c2c Add Taskfile for unified dev workflow across all components (#6080)
## Add Taskfile for unified dev workflow

### Summary
- Introduces [Taskfile](https://taskfile.dev/) as the single CLI entry
point for all development workflows across backend, frontend, engine,
Docker, and desktop
- ~80 tasks organized into 6 namespaces: `backend:`, `frontend:`,
`engine:`, `docker:`, `desktop:`, plus root-level composites
- All CI workflows migrated to use Task
- Deletes `engine/Makefile` and `scripts/build-tauri-jlink.{sh,bat}` —
replaced by Task equivalents
- Removes redundant npm scripts (`dev`, `build`, `prep`, `lint`, `test`,
`typecheck:all`) from `package.json`
- Smart dependency caching: `sources`/`status`/`generates`
fingerprinting, CI-aware `npm ci` vs `npm install`, `run: once` for
parallel dep deduplication

### What this does NOT do
- Does not replace Gradle, npm, or Docker — Taskfile is a thin
orchestration wrapper
- Does not change application code or behavior

### Install
```
npm install -g @go-task/cli    # or: brew install go-task, winget install Task.Task
```

### Quick start
```
task --list       # discover all tasks
task install      # install all deps
task dev          # start backend + frontend
task dev:all      # also start AI engine
task test         # run all tests
task check        # quick quality gate (local dev)
task check:all    # full CI quality gate
```

### Test plan
- [ ] Install `task` CLI and run `task --list` — verify all tasks
display
- [ ] Run `task install` — verify frontend + engine deps install
- [ ] Run `task dev` — verify backend + frontend start, Ctrl+C exits
cleanly
- [ ] Run `task frontend:check` — verify typecheck + lint + test pass
- [ ] Run `task desktop:dev` — verify jlink builds are cached on second
run
- [ ] Verify CI passes on all workflows

---------

Co-authored-by: James Brunton <jbrunton96@gmail.com>
2026-04-15 14:16:57 +00:00

3.5 KiB

Contributing to Stirling-PDF

Thank you for your interest in contributing to Stirling-PDF! There are many ways to contribute other than writing code. For example, reporting bugs, creating suggestions, and adding or modifying translations.

Issue Guidelines

Issues can be used to report bugs, request features, or ask questions. If you have a question, you could also ask us in our Discord.

Before opening an issue, please check to make sure someone hasn't already opened an issue about it.

Pull Requests

Before you start working on an issue, please comment on (or create) the issue and wait for it to be assigned to you. If someone has already been assigned but didn't have the time to work on it lately, please communicate with them and ask if they're still working on it. This is to avoid multiple people working on the same issue.

Once you have been assigned an issue, you can start working on it. When you are ready to submit your changes, open a pull request. For a detailed pull request tutorial, see this guide.

Development Quick Start

This project uses Task as a unified command runner. After cloning:

  1. Install the task CLI: https://taskfile.dev/installation/
  2. Run task install to install all dependencies
  3. Run task dev to start backend + frontend
  4. Run task check before submitting a PR

Run task --list to see all available commands.

Pull Request Guidelines

Please make sure your Pull Request adheres to the following guidelines:

  • Use the PR template provided.
  • Keep your Pull Request title succinct, detailed, and to the point.
  • Keep commits atomic. One commit should contain one change. If you want to make multiple changes, submit multiple Pull Requests.
  • Commits should be clear, concise, and easy to understand.
  • References to the Issue number in the Pull Request and/or Commit message.

Translations

If you would like to add or modify a translation, please see How to add new languages to Stirling-PDF. Also, please create a Pull Request so others can use it!

Docs

Documentation for Stirling-PDF is handled in a separate repository. Please see Docs repository or use the "edit this page"-button at the bottom of each page at https://docs.stirlingpdf.com/.

Fixing Bugs or Adding a New Feature

First, make sure you've read the section Pull Requests.

If, at any point in time, you have a question, please feel free to ask in the same issue thread or in our Discord.

Developer Documentation

For technical guides, setup instructions, and development resources:

For configuration and usage guides, see:

License

By contributing to this project, you agree that your contributions will be licensed under the MIT License.