Skip to content

chore(docs): establish community contribution process - #340

Open
marythought wants to merge 1 commit into
mainfrom
dspx-2421-community-process
Open

chore(docs): establish community contribution process#340
marythought wants to merge 1 commit into
mainfrom
dspx-2421-community-process

Conversation

@marythought

Copy link
Copy Markdown
Contributor

Summary

  • Replaces the bare DCO-only CONTRIBUTING.md with a full community contribution guide
  • Adds Code of Conduct link (canonical CoC lives in opentdf/platform)
  • Documents community feedback channels (bugs → issues, features/questions → platform Discussions)
  • Adds contribution workflow, branch naming conventions, commit message format (Conventional Commits), and PR guidelines
  • Retains full DCO section unchanged

Test plan

  • Review rendered Markdown on GitHub
  • Verify all links resolve correctly

Closes DSPX-2421

@marythought
marythought requested review from a team as code ownersFebruary 19, 2026 22:21
@marythought
marythoughtforce-pushed the dspx-2421-community-process branch from 8bc25cb to 805da62CompareFebruary 19, 2026 22:23
@opentdfopentdf deleted a comment from gemini-code-assistBotFeb 19, 2026
@marythought

Copy link
Copy Markdown
ContributorAuthor

/gemini review

@github-actions

Copy link
Copy Markdown
Contributor

X-Test Failure Report

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a comprehensive community contribution guide and adds new discovery-related methods to the Java SDK. The documentation changes in CONTRIBUTING.md are well-structured and clear. The new SDK methods are a valuable addition for developers. My review focuses on improving the new SDK functionality. I've provided suggestions to make the listAttributes API less ambiguous, improve the robustness of error handling in attributeExists and attributeValueExists by avoiding brittle string matching on error messages, and to correct a minor inaccuracy in a Javadoc.

I am having trouble creating individual review comments. Click here to see my feedback.

sdk/src/main/java/io/opentdf/platform/sdk/SDK.java (334-340)

high

Relying on string matching (msg.contains("not_found")) for error handling is brittle and can easily break if server error messages change. It's much more robust to check for a specific error code.

The connect-java library throws a com.connectrpc.ConnectException which contains a structured error code. You should catch this specific exception and check for com.connectrpc.Code.NOT_FOUND.

 } catch (com.connectrpc.ConnectExceptione) {
if (e.getCode() == com.connectrpc.Code.NOT_FOUND) {
returnfalse;
}
thrownewSDKException("checking attribute existence: " + e.getMessage(), e);
} catch (Exceptione) {
thrownewSDKException("checking attribute existence: " + e.getMessage(), e);
}

sdk/src/main/java/io/opentdf/platform/sdk/SDK.java (217-221)

medium

The method signature with varargs String... namespace is misleading because only the first element is ever used. Any additional arguments are silently ignored. This could lead to developer confusion and bugs. To make the API explicit about accepting at most one namespace, consider changing the signature to not use varargs. Callers can pass null for an unfiltered list. An overload for listAttributes() could be added for convenience.

 public List<Attribute> listAttributes(String namespace) {
ListAttributesRequest.Builder reqBuilder = ListAttributesRequest.newBuilder();
if (namespace != null) {
reqBuilder.setNamespace(namespace);
}

sdk/src/main/java/io/opentdf/platform/sdk/SDK.java (367-369)

medium

Catching Exception is too broad. It can hide programming errors like NullPointerException or other unexpected runtime exceptions. It's better to catch the specific exception(s) you expect to be thrown from the service call, such as com.connectrpc.ConnectException for network or server errors.

 } catch (com.connectrpc.ConnectExceptione) {
thrownewSDKException("checking attribute value existence: " + e.getMessage(), e);
}

sdk/src/main/java/io/opentdf/platform/sdk/SDK.java (480-483)

medium

The Javadoc for AttributeNotFoundException is inaccurate. It references validateAttributeExists(String) and validateAttributeValue(String, String), which are not defined in this class. The methods that were added in this PR, attributeExists and attributeValueExists, return booleans and do not throw this exception. Please update the documentation to accurately reflect which methods can throw this exception.

 * {@linkAttributeNotFoundException} isthrownby {@link #validateAttributes(List)}
* when oneormoreattributesorvaluesarenotfoundontheplatform.

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request significantly enhances the CONTRIBUTING.md file by replacing a bare DCO-only document with a comprehensive community contribution guide. This includes sections on the Code of Conduct, community feedback channels, contribution workflow, branch naming conventions, commit message format (Conventional Commits), and PR guidelines. The DCO section has been retained and integrated into the new structure. The changes are well-structured and provide clear guidance for contributors.

@github-actions

Copy link
Copy Markdown
Contributor

X-Test Results

✅ go-main
✅ js-main
✅ java-main

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>
@marythought
marythoughtforce-pushed the dspx-2421-community-process branch from 805da62 to fff3530CompareFebruary 20, 2026 01:13
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

X-Test Results

✅ js-main
✅ go-main
✅ java-main

@marythoughtmarythought changed the title docs: establish community contribution processchore(docs): establish community contribution processApr 9, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@marythought