Skip to content

Chore: add dependency-management.md#15278

Merged
subhramit merged 7 commits into
mainfrom
add-dependency-management.md
Mar 5, 2026
Merged

Chore: add dependency-management.md#15278
subhramit merged 7 commits into
mainfrom
add-dependency-management.md

Conversation

@jjohannes

Copy link
Copy Markdown
Collaborator

Related issues and pull requests

Documents the new process of adding/modifying dependencies as follow up to #15194

PR Description

Steps to test

Checklist

  • 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 added a screenshot in the PR description showing a library with a single entry with me as author and as title the issue number
  • [.] I described the change in CHANGELOG.md in a way that can be understood by the average user (if change is visible to the user)
  • [.] I checked the user documentation for up to dateness and submitted a pull request to our user documentation repository

@jjohannes jjohannes self-assigned this Mar 5, 2026
@qodo-free-for-open-source-projects

Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Add dependency management documentation guide

📝 Documentation

Grey Divider

Walkthroughs

Description
• Adds comprehensive guide for managing dependencies in JabRef
• Documents Java Module System (JPMS) dependency declarations
• Explains test-only dependencies and whitebox testing setup
• Covers 3rd party module versioning and patching procedures
Diagram
flowchart LR
  A["Dependency Management Guide"] --> B["JPMS Dependencies"]
  A --> C["Test-Only Dependencies"]
  A --> D["3rd Party Versioning"]
  A --> E["Module Patching"]
  B --> F["module-info.java requires statements"]
  C --> G["build.gradle.kts testModuleInfo"]
  D --> H["versions/build.gradle.kts BOM"]
  E --> I["Extra Java Module Info Plugin"]
  E --> J["Component Metadata Rules"]
Loading

Grey Divider

File Changes

1. docs/code-howtos/dependency-management.md 📝 Documentation +82/-0

Comprehensive dependency management documentation

• New documentation file explaining how to add and modify dependencies in JabRef
• Covers JPMS module dependencies using requires statements in module-info.java
• Documents test-only dependencies configuration in build.gradle.kts for whitebox testing
• Explains 3rd party dependency versioning through the Gradle platform in
 versions/build.gradle.kts
• Details patching procedures for non-JPMS compatible libraries using Gradle plugins

docs/code-howtos/dependency-management.md


Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (4) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Broken docs source links🐞 Bug ✓ Correctness
Description
The new doc links to source files using repo-root relative paths (e.g., ../../jabgui/...), which
will be broken on the published developer documentation site because the site is built/served from
the docs/ directory only. Readers won’t be able to navigate to the referenced code/build files
from the rendered docs.
Code

docs/code-howtos/dependency-management.md[R8-13]

+With the _Java Module System (JPMS)_, dependencies between modules are
+defined in the [src/main/java/module-info.java](../../jabgui/src/main/java/module-info.java) file
+that each module contains. A dependency to another module is defined by a `requires` statement and the other module
+is identified by its _Module Name_ there. For example, a dependency to the
+[jablib](../../jablib/src/main/java/module-info.java) module is expressed by `requires org.jabref.jablib`.
+A dependency to the 3rd party library `tools.jackson.databind` is expressed by `requires tools.jackson.databind`.
Evidence
The new page contains multiple ../..//... links pointing outside docs/. The docs site build
context copies only the docs directory into the Jekyll container, so jabgui/, jablib/,
versions/, build-logic/ are not present at those relative URLs on the rendered site. Existing
docs pages typically link to source using GitHub blob/tree URLs, which work from the rendered
site.

docs/code-howtos/dependency-management.md[8-13]
docs/code-howtos/dependency-management.md[23-34]
docs/code-howtos/dependency-management.md[44-58]
docs/Dockerfile[9-14]
docs/_config.yml[27-32]
docs/code-howtos/http-server.md[7-12]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`docs/code-howtos/dependency-management.md` links to files outside the `docs/` directory using `../../...` relative paths. Because the developer docs site is built from `docs/` only, these links will be broken for readers.
### Issue Context
Other pages in `docs/code-howtos/` typically link to source using `https://github.com/JabRef/jabref/blob/main/...` or `.../tree/main/...`.
### Fix Focus Areas
- docs/code-howtos/dependency-management.md[8-13]
- docs/code-howtos/dependency-management.md[23-34]
- docs/code-howtos/dependency-management.md[44-58]
### Suggested change
Convert each `../../<path>` link to the equivalent GitHub link, for example:
- `../../jabgui/src/main/java/module-info.java` -> `https://github.com/JabRef/jabref/blob/main/jabgui/src/main/java/module-info.java`
- `../../jabgui/src/test/java` -> `https://github.com/JabRef/jabref/tree/main/jabgui/src/test/java`
- `../../build-logic/src/main/kotlin/org.jabref.gradle.base.dependency-rules.gradle.kts` -> `https://github.com/JabRef/jabref/blob/main/build-logic/src/main/kotlin/org.jabref.gradle.base.dependency-rules.gradle.kts`

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. analysis should be analyzes📘 Rule violation ✓ Correctness
Description
The documentation contains a grammar error (analysis used as a verb), which reduces
professionalism and clarity for users following the dependency process. This violates the
requirement that user-facing text be typo-free and grammatically correct.
Code

docs/code-howtos/dependency-management.md[R17-18]

+Then execute `./gradlew checkAllModuleInfo` which runs a _dependency scope check_ that analysis the code to determine
+which Java types are visible (and should be visible) to which modules. If the check fails, it will advise you how to
Evidence
PR Compliance ID 25 requires user-facing text to be typo-free and grammatically correct; the added
sentence uses analysis instead of the correct verb form analyzes.

docs/code-howtos/dependency-management.md[17-18]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The documentation sentence uses `analysis` incorrectly as a verb (should be `analyzes`), reducing clarity and professionalism.
## Issue Context
This is user-facing documentation about dependency management.
## Fix Focus Areas
- docs/code-howtos/dependency-management.md[17-18]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Missing a in sentence📘 Rule violation ✓ Correctness
Description
The documentation is missing an article in treat tests as separate module, which is grammatically
incorrect and may confuse readers. This violates the requirement that user-facing text be
grammatically correct.
Code

docs/code-howtos/dependency-management.md[28]

+However, it is not possible to treat tests as separate module if they break the encapsulation of the _main_ module.
Evidence
PR Compliance ID 25 requires grammatically correct user-facing text; the added line is missing an
article (a) before separate module.

docs/code-howtos/dependency-management.md[28-28]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A grammar error exists in the docs: `treat tests as separate module` is missing an article.
## Issue Context
This is user-facing documentation.
## Fix Focus Areas
- docs/code-howtos/dependency-management.md[28-28]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


4. lke typo in docs📘 Rule violation ✓ Correctness
Description
The documentation contains a typo (lke instead of like), which reduces professionalism and can
distract readers. This violates the requirement that user-facing text be typo-free.
Code

docs/code-howtos/dependency-management.md[43]

+If you use a 3rd party module lke `tools.jackson.databind`, a version for that module needs to
Evidence
PR Compliance ID 25 requires typo-free user-facing text; the added line contains lke which is a
misspelling of like.

docs/code-howtos/dependency-management.md[43-43]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A typo exists in user-facing documentation: `lke` should be `like`.
## Issue Context
This is in the dependency management how-to documentation.
## Fix Focus Areas
- docs/code-howtos/dependency-management.md[43-43]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View more (1)
5. Sentence starts with lowercase📘 Rule violation ✓ Correctness
Description
A new sentence starts with lowercase if, which is grammatically incorrect and reduces readability.
This violates the requirement that user-facing text be grammatically correct and professional.
Code

docs/code-howtos/dependency-management.md[60]

+if an issue in this area occurs after modifying dependency versions, you will see an error like this:
Evidence
PR Compliance ID 25 requires grammatically correct user-facing text; the added sentence begins with
lowercase if after a paragraph break.

docs/code-howtos/dependency-management.md[60-60]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A sentence in the documentation starts with lowercase `if` and should be capitalized.
## Issue Context
This is user-facing documentation.
## Fix Focus Areas
- docs/code-howtos/dependency-management.md[60-60]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Comment thread docs/code-howtos/dependency-management.md
@testlens-app

This comment has been minimized.

Corrected spelling of 'Gradle-base' to 'Gradle-based'.
@testlens-app

testlens-app Bot commented Mar 5, 2026

Copy link
Copy Markdown

✅ All tests passed ✅

🏷️ Commit: 7d8fa23
▶️ Tests: 10126 executed
⚪️ Checks: 59/59 completed


Learn more about TestLens at testlens.app.

@subhramit subhramit enabled auto-merge March 5, 2026 18:42
@subhramit subhramit added this pull request to the merge queue Mar 5, 2026
@github-actions github-actions Bot added the status: to-be-merged PRs which are accepted and should go into the merge-queue. label Mar 5, 2026
Merged via the queue into main with commit ec0abf6 Mar 5, 2026
60 checks passed
@subhramit subhramit deleted the add-dependency-management.md branch March 5, 2026 19:13
Siedlerchr added a commit that referenced this pull request Mar 5, 2026
…rg.openrewrite.recipe-rewrite-recipe-bom-3.25.0

* upstream/main: (35 commits)
  Chore: add dependency-management.md (#15278)
  Chore(deps): Bump dev.langchain4j:langchain4j-bom in /versions (#15277)
  New Crowdin updates (#15274)
  Chore(deps): Bump actions/upload-artifact from 6 to 7 (#15271)
  Chore(deps): Bump actions/download-artifact from 7 to 8 (#15270)
  Chore(deps): Bump docker/login-action from 3 to 4 (#15268)
  Fix threading issues in citations relations tab (#15233)
  Fix: Citavi XML importer now preserves citation keys (#14658) (#15257)
  Preserve no break spaces in Latex to Unicode conversion (#15174)
  Fix: open javafx.scene.control.skin to controlsfx (#15260)
  Reduce complexity in dependencies setup (restore) (#15194)
  New translations jabref_en.properties (French) (#15256)
  Fix: exception dialog shows up when moving sidepanel down/up (#15248)
  Implement reset for Name Display Preferences (#15136)
  Chore(deps): Bump net.bytebuddy:byte-buddy in /versions (#15252)
  Chore(deps): Bump io.zonky.test.postgres:embedded-postgres-binaries-bom (#15253)
  Chore(deps): Bump io.zonky.test:embedded-postgres in /versions (#15254)
  Chore(deps): Bump net.ltgt.errorprone from 5.0.0 to 5.1.0 in /jablib (#15251)
  New Crowdin updates (#15247)
  Refined the "Select files to import" page in "Search for unlinked local files" dialog (#15110)
  ...
Siedlerchr added a commit to statxc/jabref that referenced this pull request Mar 10, 2026
* upstream/main: (59 commits)
  Fix 15000 identifier (JabRef#15286)
  Chore(deps): Bump dev.langchain4j:langchain4j-bom in /versions (JabRef#15305)
  Supress JavaFX VirtualFlow Info log noise for large libraries (10k+). (JabRef#15298)
  Chore(deps): Bump commons-logging:commons-logging in /versions (JabRef#15304)
  Fix merge dialog closing immediately when only one PDF importer returns metadata (JabRef#15127) (JabRef#15287)
  Fixed nullable eventhandlers (JabRef#15288)
  New Crowdin updates (JabRef#15285)
  Fix the ESC key for GlobalSearchResultDialog (JabRef#15259)
  Remove jbang plugin banner (JabRef#15282)
  Chore(deps): Bump org.apache.httpcomponents.core5:httpcore5 in /versions (JabRef#15281)
  Udpate to latest gradle master (JabRef#15279)
  Migrate to GemsFX Notifications (JabRef#14762)
  Chore(deps): Bump JetBrains/junie-github-action from 0 to 1 (JabRef#15272)
  Chore(deps): Bump docker/setup-qemu-action from 3 to 4 (JabRef#15269)
  Feature/citation count dropdown (JabRef#15216)
  Update dependency org.apache.maven.plugins:maven-resources-plugin to v3.5.0 (JabRef#15275)
  Chore(deps): Bump jablib/src/main/resources/csl-styles (JabRef#15273)
  Fix more security
  Fix pr_body leakage
  Chore: add dependency-management.md (JabRef#15278)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: to-be-merged PRs which are accepted and should go into the merge-queue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants