Skip to content

Conversation

@Siedlerchr
Copy link
Member

@Siedlerchr Siedlerchr commented Jan 2, 2026

User description

Closes _____

Steps to test

Mandatory checks

  • I own the copyright of the code submitted and I license it under the MIT license
  • [.] I manually tested my changes in running JabRef (always required)
  • [.] I added JUnit tests for changes (if applicable)
  • [.] I added screenshots in the PR description (if change is visible to the user)
  • [.] I described the change in CHANGELOG.md in a way that is understandable for the average user (if change is visible to the user)
  • [.] I checked the user documentation: Is the information available and up to date? If not, I created an issue at https://github.com/JabRef/user-documentation/issues or, even better, I submitted a pull request updating file(s) in https://github.com/JabRef/user-documentation/tree/main/en.

PR Type

Enhancement


Description

  • Add embedded PostgreSQL dependencies to jabgui module

  • Include platform-specific binaries for Darwin ARM64 and Linux ARM64

  • Enable PostgreSQL testing capabilities in GUI component


Diagram Walkthrough

flowchart LR
  jabgui["jabgui module"]
  deps["Build dependencies"]
  postgres["Embedded PostgreSQL"]
  binaries["Platform binaries"]
  
  jabgui -- "adds" --> deps
  deps -- "includes" --> postgres
  postgres -- "with" --> binaries
Loading

File Walkthrough

Relevant files
Dependencies
build.gradle.kts
Add embedded PostgreSQL and platform binaries                       

jabgui/build.gradle.kts

  • Added embedded PostgreSQL core dependency for testing
  • Added Darwin ARM64v8 platform-specific PostgreSQL binaries
  • Added Linux ARM64v8 platform-specific PostgreSQL binaries
  • Dependencies inserted after Lucene dependencies section
+4/-0     

@qodo-free-for-open-source-projects
Copy link
Contributor

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🟡
🎫 #13109
🔴 Make `org.jabref.logic.pseudonymization.Pseudonymization` available on the CLI
Provide similar CLI experience to the consistency check
Implement similar to `org.jabref.cli.CheckConsistency` class
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Embedded Database Security: Adding embedded PostgreSQL dependencies for testing may introduce security risks if not
properly isolated from production code or if test databases are not properly secured.

Referred Code
implementation("io.zonky.test:embedded-postgres")
implementation("io.zonky.test.postgres:embedded-postgres-binaries-darwin-arm64v8")
implementation("io.zonky.test.postgres:embedded-postgres-binaries-linux-arm64v8")

Learn more about managing compliance generic rules or creating your own custom rules

Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@Siedlerchr Siedlerchr added dev: binaries Binary builds should be uploaded to builds.jabref.org and removed Review effort 1/5 labels Jan 2, 2026
@qodo-free-for-open-source-projects
Copy link
Contributor

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
General
Use correct dependency scope for tests

Change the dependency scope for embedded-postgres from implementation to
testImplementation to ensure these test-only libraries are not included in the
final application build.

jabgui/build.gradle.kts [67-69]

-implementation("io.zonky.test:embedded-postgres")
-implementation("io.zonky.test.postgres:embedded-postgres-binaries-darwin-arm64v8")
-implementation("io.zonky.test.postgres:embedded-postgres-binaries-linux-arm64v8")
+testImplementation("io.zonky.test:embedded-postgres")
+testImplementation("io.zonky.test.postgres:embedded-postgres-binaries-darwin-arm64v8")
+testImplementation("io.zonky.test.postgres:embedded-postgres-binaries-linux-arm64v8")
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies that test-only dependencies are being added to the implementation scope and proposes using testImplementation to avoid bloating the production artifact.

Medium
  • More

@github-actions
Copy link
Contributor

github-actions bot commented Jan 2, 2026

The build of this PR is available at https://builds.jabref.org/pull/14779/merge.

@Siedlerchr Siedlerchr closed this Jan 2, 2026
@Siedlerchr
Copy link
Member Author

does not work

@koppor
Copy link
Member

koppor commented Jan 3, 2026

does not work

Sure, because jabgui requires JabLib requires postgres. Should be then be loaded automatically.

GUI does not rely on Postgres. It relies on JabLib.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev: binaries Binary builds should be uploaded to builds.jabref.org

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants