One word everywhere: ReplyPier in UI copy, package and image names, the replypier.site domains (app/api/docs/help), REPLYPIER_* settings and the --rp-* design tokens. - public widget API is window.ReplyPier with replypierId / replypierBaseUrl / replypierConfig / replypierToken, loader at webclient/replypier.min.js; both bundles rebuilt from source - NOTICE, llms.txt, CONTRIBUTING, HELP_CENTER_INFRA and the demo runtime config rewritten; the demo config ships no third-party keys - migration adds the ReplyPier managed model value to the AI model enum - local compose project, database, role, volume and Docker network carry the same name
2.7 KiB
Contributing to ReplyPier
Thanks for your interest in contributing! This document explains how to get your changes accepted.
License
The ReplyPier open-source core is licensed under the Apache License 2.0. By contributing, you agree that your contributions will be licensed under Apache-2.0.
Developer Certificate of Origin (DCO)
We use the Developer Certificate of Origin (DCO 1.1) instead of a CLA. It is a lightweight way for you to certify that you wrote, or otherwise have the right to submit, the code you are contributing.
Every commit must be signed off. Add a Signed-off-by trailer to each
commit message with:
git commit -s -m "your message"
This appends a line like:
Signed-off-by: Your Name <your.email@example.com>
The name and email must match your git config user.name and
user.email, and must be your real identity (no anonymous or pseudonymous
contributions).
The DCO app runs on every pull request and verifies that all commits are signed off. PRs with unsigned commits will fail the check.
Fixing commits that are not signed off
- Last commit:
git commit --amend -s --no-edit - A whole branch:
git rebase --signoff main
Then force-push your branch (git push --force-with-lease).
Tip: never forget -s
You can make sign-off the default for this repo with a git hook:
cat > .git/hooks/prepare-commit-msg <<'EOF'
#!/bin/sh
NAME=$(git config user.name)
EMAIL=$(git config user.email)
grep -qs "^Signed-off-by:" "$1" || printf "\nSigned-off-by: %s <%s>\n" "$NAME" "$EMAIL" >> "$1"
EOF
chmod +x .git/hooks/prepare-commit-msg
Development workflow
- Fork the repository and create a feature branch:
git checkout -b feature/amazing-feature - Make your changes. Follow the existing code style (PEP 8 for Python, type hints where practical; the project conventions for Vue/TypeScript on the frontend).
- Add or update tests for your change and make sure the suite passes. If it changes something a user does, add or update the end-to-end spec too (see e2e/AUTHORING.md).
- Commit with sign-off (
git commit -s). - Push and open a Pull Request, filling out the PR template.
License headers
New source files should carry the standard Apache-2.0 header. You can apply or refresh headers across the codebase by running:
python relicense_headers.py
This is idempotent — it only changes files whose header is missing or outdated.
Enterprise features
Advanced/enterprise capabilities live in separate, proprietary modules and are not covered by the Apache-2.0 license. Contributions in this repository apply to the open-source core only.