Contributing
Thanks for helping improve Unpress.
Development setup
Clone the repo and install dependencies:
bash
git clone https://github.com/selfagency/unpress.git
cd unpress
pnpm installBuild the package locally:
bash
pnpm buildRun the local CLI during development:
bash
pnpm dev:cli -- --helpTesting
Run the full test suite:
bash
pnpm testRun coverage:
bash
pnpm test:coverageRun a specific test file:
bash
pnpm test -- tests/e2e-xml-media.test.tsLinting and formatting
Run code linting:
bash
pnpm lintRun Markdown linting:
bash
pnpm lint:mdFormat the repo:
bash
pnpm format
pnpm lint:md:fixDocumentation work
Preview docs locally:
bash
pnpm docs:devBuild docs:
bash
pnpm docs:buildEnvironment and fixtures
The published tool is designed to read .env automatically. The codebase also uses .env during local CLI testing, so create a local .env when you need real credentials.
Never commit real secrets. Use placeholder values in examples and docs.
Pull requests
Keep changes focused.
- update docs when behavior changes
- add or adjust tests for behavior changes
- avoid unrelated refactors in the same PR
- explain the user-facing impact in the PR description
Reporting issues
When filing a bug, include:
- how you ran Unpress (
pnpx,npx, or localpnpm dev:cli) - whether you used API or XML input
- whether a
.envfile was present - the command you ran
- the relevant error output
That saves everyone time, including future-you.