Thank you for your interest in contributing to RDFArchitect.
- Read the CODE_OF_CONDUCT.md.
- For security issues, do not open public issues. Follow SECURITY.md.
- For usage and support channels, see SUPPORT.md.
backend/: Spring Boot backend (Java/Maven)frontend/: SvelteKit frontend (Node/npm).github/workflows/: CI workflows for backend and frontend
cd backend
mvn clean install
mvn spring-boot:runcd frontend
npm install
npm run dev- Create focused branches from
main. - Keep changes scoped and reviewable.
- Open a pull request using
.github/pull_request_template.md. - Pull requests are merged via squash commits.
- Ensure your PR description explains:
- What changed
- Why it changed
- How it was tested
cd backend
mvn -B test
mvn -B verifyUse mvn -B spotless:apply for automatic formatting.
cd frontend
npm run test
npm run lint
npm run buildUse npm run format for automatic formatting.
CI runs these checks through GitHub Actions and must pass.
This repository includes local pre-commit hooks for the backend and frontend
checks. After installing pre-commit, enable them with:
pre-commit installBackend hooks run for staged backend changes. Frontend hooks run for staged frontend changes.
Hooks call mvn and npm directly. Make sure mvn, npm, and pre-commit are available on PATH.
- Follow existing code style and naming conventions.
- Add or update tests for behavior changes.
- Keep public behavior and API changes documented.
- Avoid unrelated refactors in feature/fix PRs.
External contributors must sign off every commit with a DCO sign-off.
Add -s to your commit command:
git commit -s -m "feat: my change"This appends a Signed-off-by: Your Name <email@example.com> to the commit message, certifying
that you wrote the change and have the right to submit it under the project license (see DCO).
For amended or rebased commits, use git commit --amend -s or git rebase --signoff.
- This repository is Apache-2.0 licensed.
- Java files are validated with license header checks in backend CI.
- Keep third-party license files current when dependencies change.
Squash commit titles should follow this format:
<type>[optional scope][!]: <description> (#<pr>, RDFA-<id>, GH-<issue>)
Examples:
feat(editor): add class filter (#123, RDFA-456, GH-78)
fix(api)!: change namespace validation rules (#124, RDFA-457, GH-79)
Notes:
typeshould befeatorfixfor product-facing changes whenever possible.#<pr>,RDFA-<id>, andGH-<issue>are optional, but should be included in squash commits if available.- Keep the description short, action-oriented, and specific.
Breaking changes are detected when either of these is present:
!in the commit header (feat!:orfeat(scope)!:)BREAKING CHANGE:in the commit body
Use one of these markers whenever the change is not backward compatible.
- Keep
CHANGELOG.mdup to date manually for notable user-facing changes. - Release versions are derived from git tags (
vX.Y.Z).
- Keep branch changes scoped to one topic.
- Ensure the squash commit title follows the required format.
- Try to use conventional commits in the feature branch to make squash commit writing easier.
- Mark breaking changes with
!orBREAKING CHANGE:. - Run required checks locally before opening/updating the PR.
- Maintainers may request changes before merge.
- PRs should be rebased/updated to resolve conflicts.
- Merges happen after approval and passing CI.