Skip to content

docs: establish community contribution process#340

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

docs: establish community contribution process#340
marythought wants to merge 1 commit intomainfrom
dspx-2421-community-process

Conversation

@marythought
Copy link
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 owners February 19, 2026 22:21
@marythought marythought force-pushed the dspx-2421-community-process branch from 8bc25cb to 805da62 Compare February 19, 2026 22:23
@opentdf opentdf deleted a comment from gemini-code-assist bot Feb 19, 2026
@marythought
Copy link
Contributor Author

/gemini review

@github-actions
Copy link

X-Test Failure Report

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

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.ConnectException e) {
            if (e.getCode() == com.connectrpc.Code.NOT_FOUND) {
                return false;
            }
            throw new SDKException("checking attribute existence: " + e.getMessage(), e);
        } catch (Exception e) {
            throw new SDKException("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.ConnectException e) {
            throw new SDKException("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.

     * {@link AttributeNotFoundException} is thrown by {@link #validateAttributes(List)}
     * when one or more attributes or values are not found on the platform.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

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

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 marythought force-pushed the dspx-2421-community-process branch from 805da62 to fff3530 Compare February 20, 2026 01:13
@sonarqubecloud
Copy link

@github-actions
Copy link

X-Test Results

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

Sign up for free to 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