Skip to content

Commit 8bc25cb

Browse files
committed
docs: establish community contribution process
Replaces bare DCO-only CONTRIBUTING.md with a full guide covering code of conduct, community feedback channels, contribution workflow, branch naming, commit message format, PR guidelines, and DCO. Closes DSPX-2421 Signed-off-by: Mary Dickson <mary.dickson@virtru.com>
1 parent d757fab commit 8bc25cb

1 file changed

Lines changed: 112 additions & 21 deletions

File tree

CONTRIBUTING.md

Lines changed: 112 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,94 @@
1+
# Contributing to opentdf/java-sdk
2+
3+
Thank you for your interest in contributing to OpenTDF! This document describes
4+
how to engage with the community, report issues, request features, and contribute
5+
code.
6+
7+
## Code of Conduct
8+
9+
This project is governed by the OpenTDF [Code of Conduct](https://github.com/opentdf/platform/blob/main/CODE_OF_CONDUCT.md).
10+
By participating, you are expected to uphold this code.
11+
12+
## Community Feedback
13+
14+
| Goal | Where to go |
15+
|---|---|
16+
| Report a bug | [Open an issue](https://github.com/opentdf/java-sdk/issues/new/choose) |
17+
| Request a feature or share an idea | [Start a Discussion](https://github.com/opentdf/platform/discussions) |
18+
| Ask a question | [GitHub Discussions — Q&A](https://github.com/opentdf/platform/discussions/categories/q-a) |
19+
| Suggest a docs improvement | [Open an issue in opentdf/docs](https://github.com/opentdf/docs/issues/new) |
20+
21+
Feature requests and questions from all OpenTDF repos are welcome in platform
22+
Discussions, the central community space for the project.
23+
24+
## How to Contribute
25+
26+
1. **Check first**: look at [open issues](https://github.com/opentdf/java-sdk/issues)
27+
and [Discussions](https://github.com/opentdf/platform/discussions) to avoid
28+
duplicating effort.
29+
2. **Align before building**: for anything non-trivial, open an issue or Discussion
30+
to agree on approach before investing in a PR.
31+
3. **Fork and branch**: fork the repository and create a branch from `main`
32+
(see [Branch Naming](#branch-naming) below).
33+
4. **Make your changes**: follow the dev setup and code style below.
34+
5. **Sign off your commits**: see [DCO](#developer-certificate-of-origin-dco) below.
35+
6. **Open a pull request**: a [CODEOWNER](CODEOWNERS) will review and merge.
36+
37+
## Development Setup
38+
39+
See [README.md](README.md) for prerequisites and build instructions.
40+
41+
## Branch Naming
42+
43+
Use `<type>/<short-description>`:
44+
45+
| Type | When to use |
46+
|---|---|
47+
| `feat` | New feature or capability |
48+
| `fix` | Bug fix |
49+
| `chore` | Maintenance, dependency updates, CI |
50+
| `docs` | Documentation only |
51+
| `refactor` | Code restructuring without behavior change |
52+
| `test` | Adding or updating tests |
53+
54+
If the branch is tied to a ticket, you may prefix it with the ticket ID:
55+
`feat/DSPX-1234-short-description`.
56+
57+
Examples: `feat/collection-encryption`, `fix/sdk-exception-wrapping`, `docs/contributing-guide`
58+
59+
## Commit Messages
60+
61+
This project follows [Conventional Commits](https://www.conventionalcommits.org/):
62+
63+
```
64+
<type>(<scope>): <short description>
65+
66+
[optional body]
67+
68+
[optional footer(s)]
69+
```
70+
71+
- **type**: same values as branch naming above
72+
- **scope**: optional, the subsystem affected (e.g., `sdk`, `tdf`, `policy`)
73+
- **description**: present tense, lowercase, no trailing period
74+
- **body**: explain *why*, not *what* — the diff shows what changed
75+
76+
Examples:
77+
```
78+
feat(sdk): add collection encryption support
79+
80+
fix(tdf): handle missing attribute value in policy
81+
82+
docs: add branch naming and commit format guide
83+
```
84+
85+
## Pull Request Guidelines
86+
87+
- Reference the relevant issue or Discussion in the PR description.
88+
- Keep PRs focused — one logical change per PR is easier to review and revert.
89+
- Update documentation for any interface or behavior changes.
90+
- Ensure all CI checks pass before requesting review.
91+
192
## Developer Certificate of Origin (DCO)
293

394
To ensure that contributions are properly licensed and that the project has the right to distribute them, this project requires that all contributions adhere to the Developer Certificate of Origin (DCO).
@@ -24,44 +115,44 @@ This automatically appends the Signed-off-by line to your commit message using t
24115

25116
By adding the Signed-off-by line, you are certifying to the following (from [developercertificate.org](https://developercertificate.org/)):
26117

27-
> Developer Certificate of Origin
28-
> Version 1.1
29-
>
30-
> Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
31-
>
32-
> Everyone is permitted to copy and distribute verbatim copies of this
33-
> license document, but changing it is not allowed.
118+
> Developer Certificate of Origin
119+
> Version 1.1
120+
>
121+
> Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
122+
>
123+
> Everyone is permitted to copy and distribute verbatim copies of this
124+
> license document, but changing it is not allowed.
125+
>
126+
>
127+
> Developer's Certificate of Origin 1.1
128+
>
129+
> By making a contribution to this project, I certify that:
34130
>
35-
>
36-
> Developer's Certificate of Origin 1.1
37-
>
38-
> By making a contribution to this project, I certify that:
39-
>
40131
> (a) The contribution was created in whole or in part by me and I
41132
> have the right to submit it under the open source license
42-
> indicated in the file; or
43-
>
133+
> indicated in the file; or
134+
>
44135
> (b) The contribution is based upon previous work that, to the best
45136
> of my knowledge, is covered under an appropriate open source
46137
> license and I have the right under that license to submit that
47138
> work with modifications, whether created in whole or in part
48139
> by me, under the same open source license (unless I am
49140
> permitted to submit under a different license), as indicated
50-
> in the file; or
51-
>
141+
> in the file; or
142+
>
52143
> (c) The contribution was provided directly to me by some other
53144
> person who certified (a), (b) or (c) and I have not modified
54-
> it.
55-
>
145+
> it.
146+
>
56147
> (d) I understand and agree that this project and the contribution
57148
> are public and that a record of the contribution (including all
58149
> personal information I submit with it, including my sign-off) is
59150
> maintained indefinitely and may be redistributed consistent with
60151
> this project or the open source license(s) involved.
61152
62-
### Using Your Real Name
153+
### Using Your Real Name
63154

64-
Please use your real name (not a pseudonym or anonymous contributions) in the Signed-off-by line.
155+
Please use your real name (not a pseudonym or anonymous contributions) in the Signed-off-by line.
65156

66157
### What if I forgot to sign off my commits?
67158

@@ -79,4 +170,4 @@ git rebase -i --signoff HEAD~N # Replace N with the number of commits to rebase
79170
```
80171
Follow the instructions during the interactive rebase. You might need to force-push (git push --force-with-lease) your changes if you've already pushed the branch. Be careful when force-pushing, especially on shared branches.
81172

82-
We appreciate your contributions and your adherence to this process ensures the legal integrity of the project for everyone involved. If you have any questions about the DCO, please don't hesitate to ask.
173+
We appreciate your contributions and your adherence to this process ensures the legal integrity of the project for everyone involved. If you have any questions about the DCO, please don't hesitate to ask.

0 commit comments

Comments
 (0)