Thank you for your interest in contributing! This guide covers the workflow and conventions for this project.
Before starting work on any issue, you MUST:
- Comment on the issue stating that you are claiming it
- Describe your proposed fix/approach in the same comment
- Wait for acknowledgment if the issue has significant scope
This prevents duplicate work. If an issue already has someone working on it (check comments), coordinate with them before starting your own implementation.
Example comment:
I'd like to work on this. My proposed approach:
- Change X in `file.ts` to handle Y
- Add tests for Z
Will submit a PR within [timeframe].
We use a fork-based workflow. Do not push branches directly to the upstream repo.
# 1. Fork the repo on GitHub
# 2. Clone your fork
git clone https://github.com/<your-username>/dmwork-adapters.git
cd dmwork-adapters
# 3. Add upstream remote
git remote add upstream https://github.com/dmwork-org/dmwork-adapters.git- Claim the issue (see above)
- Sync with upstream:
git fetch upstream git checkout -b fix/issue-<number>-<description> upstream/main
- Implement the fix
- Ensure no new TypeScript compilation errors
- Push to your fork:
git push origin fix/issue-<number>-<description>
- Open a PR from your fork to
dmwork-org/dmwork-adapters:main - Reference the issue in the PR description (
Fixes #<number>)
- Do not start coding immediately — open a Discussion or comment on the issue first
- Discuss the approach, scope, and potential impact
- Once the approach is agreed upon, claim the issue and proceed
- One PR = one concern. Do not mix unrelated changes
- PR title should be descriptive:
fix: resolve WebSocket reconnect on token expiry - PR description must include What, Why, How, and Testing sections (see PR template)
- CI must pass before requesting review
- Request cross-review from at least one other contributor
If you used AI tools to help write the code:
- State which tool(s) you used in the PR description
- Indicate testing level (untested / lightly tested / fully tested)
- Confirm you understand what the code does
- Bug fixes:
fix/issue-<number>-<description> - Features:
feat/<description> - Chores:
chore/<description>
- TypeScript for all source code
- English for code, comments, and documentation
- Avoid
anytypes — use specific type definitions - Use the project's existing patterns as reference
Do not open public issues for security vulnerabilities. Follow the process in SECURITY.md.