Skip to content

Enhanced the contribution guide using IntelliJ IDEA#15022

Merged
koppor merged 8 commits into
JabRef:mainfrom
ZiadAbdElFatah:fix-for-issue-15012
Feb 8, 2026
Merged

Enhanced the contribution guide using IntelliJ IDEA#15022
koppor merged 8 commits into
JabRef:mainfrom
ZiadAbdElFatah:fix-for-issue-15012

Conversation

@ZiadAbdElFatah

@ZiadAbdElFatah ZiadAbdElFatah commented Feb 3, 2026

Copy link
Copy Markdown
Collaborator

User description

Closes #15012

Enhanced the contribution guide for developers using intillij.

Just open the new contribution guide.

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

Documentation


Description

  • Updated test example from BibEntryTest to LocalizationConsistencyTest

  • Replaced outdated screenshot filenames with generic placeholders

  • Modernized IntelliJ setup guide with current test class references


Diagram Walkthrough

flowchart LR
  A["Old Test Example<br/>BibEntryTest"] -- "Replace with" --> B["New Test Example<br/>LocalizationConsistencyTest"]
  C["Specific Screenshots<br/>12-08, 12-09, etc."] -- "Replace with" --> D["Generic Placeholders<br/>img.png, img_1.png, etc."]
  B --> E["Updated Documentation"]
  D --> E
Loading

File Walkthrough

Relevant files
Documentation
intellij-12-build.md
Updated IntelliJ test example documentation                           

docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md

  • Changed example test class from BibEntryTest to
    LocalizationConsistencyTest throughout the guide
  • Updated test method references from testDefaultConstructor to
    testfindMissingLocalizationKeys
  • Replaced specific screenshot filenames (12-08-locate-BibEntryTest.png,
    etc.) with generic placeholders (img.png, img_1.png, etc.)
  • Updated all figure captions and alt text to reflect the new test class
    name
+17/-17 

@github-actions github-actions Bot added the good first issue An issue intended for project-newcomers. Varies in difficulty. label Feb 3, 2026
@ZiadAbdElFatah ZiadAbdElFatah marked this pull request as ready for review February 3, 2026 22:16
@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Feb 3, 2026

Copy link
Copy Markdown
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
🟡
🎫 #15012
🟢 Rework the 'Final build system checks' section in the IntelliJ build documentation
Locate and run `LocalizationConsistencyTest` instead of the existing test
Use test method `findMissingLocalizationKeys` instead of the other one
Update both text and screenshots in the documentation
Use Greenshot or Flameshot for screenshots
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: Passed

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

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

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

qodo-free-for-open-source-projects Bot commented Feb 3, 2026

Copy link
Copy Markdown
Contributor

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Learned
best practice
Fix typo in figure caption

The caption contains a typographical error: "However" should be "Hover". Correct
this to maintain documentation clarity and professionalism.

docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md [170-174]

 Hover on the green play button on `findMissingLocalizationKeys`:
 
-{% figure caption:"However on green play button" %}
-![However on green play button](img_1.png)
+{% figure caption:"Hover on green play button" %}
+![Hover on green play button](img_1.png)
 {% endfigure %}
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Fix typographical errors in documentation to maintain professionalism and clarity

Low
General
Fix inconsistent test method name
Suggestion Impact:The documentation was updated to use "Run LocalizationConsistencyTest.findMissingLocalizationKeys" and the corresponding figure caption was adjusted accordingly; related screenshot references were also updated.

code diff:

 Hover on the green play button on `findMissingLocalizationKeys`:
 
 {% figure caption:"However on green play button" %}
-![However on green play button](img_1.png)
+![However on green play button](12-09-run-single-test.png)
 {% endfigure %}
 
 Then, click on it.
 A popup menu opens.
-Choose the first entry "Run LocalizationConsistencyTest.testfindMissingLocalizationKeys" and click on it.
-
-{% figure caption:"Run LocalizationConsistencyTest.testfindMissingLocalizationKeys" %}
-![Popup menu - Run testfindMissingLocalizationKeys](img_2.png)
+Choose the first entry "Run LocalizationConsistencyTest.findMissingLocalizationKeys" and click on it.
+
+{% figure caption:"Run LocalizationConsistencyTest.findMissingLocalizationKeys" %}
+![Popup menu - Run testfindMissingLocalizationKeys](12-10-run-single-test-launch-config.png)
 {% endfigure %}

Standardize the test method name to findMissingLocalizationKeys throughout the
document to resolve an inconsistency.

docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md [170-182]

 Hover on the green play button on `findMissingLocalizationKeys`:
 
 {% figure caption:"However on green play button" %}
 ![However on green play button](img_1.png)
 {% endfigure %}
 
 Then, click on it.
 A popup menu opens.
-Choose the first entry "Run LocalizationConsistencyTest.testfindMissingLocalizationKeys" and click on it.
+Choose the first entry "Run LocalizationConsistencyTest.findMissingLocalizationKeys" and click on it.
 
-{% figure caption:"Run LocalizationConsistencyTest.testfindMissingLocalizationKeys" %}
-![Popup menu - Run testfindMissingLocalizationKeys](img_2.png)
+{% figure caption:"Run LocalizationConsistencyTest.findMissingLocalizationKeys" %}
+![Popup menu - Run findMissingLocalizationKeys](img_2.png)
 {% endfigure %}

[Suggestion processed]

Suggestion importance[1-10]: 5

__

Why: The suggestion correctly identifies an inconsistency (findMissingLocalizationKeys vs. testfindMissingLocalizationKeys) introduced by the PR, and the proposed change improves the clarity and correctness of the documentation.

Low
  • Update


{% figure caption:"However on green play button" %}
![However on green play button](12-09-run-single-test.png)
![However on green play button](img_1.png)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Keep the original file pattern please.

@github-actions github-actions Bot added the status: changes-required Pull requests that are not yet complete label Feb 4, 2026
Then, the "Search for classes dialog" pops up.
Enter `bibentrytest`.
Now, `BibEntryTest` should appear first:
Enter `LocalizationConsistencyTest`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Please do lower case - to show that one does not need to spell out in right case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

OK, not sure how I should react on this.

I commented on line 161

You changed line 162


I commented on the search string

You changed the search result.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I am really sorry for this. My apologies.

Now, `LocalizationConsistencyTest` should appear first:

{% figure caption:"IntelliJ search for class “BibEntryTest”" %}
![IntelliJ search for class "BibEntryTest"](12-08-locate-BibEntryTest.png)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Remove non-linked images


Press <kbd>Enter</kbd> to jump to that class.

Hover on the green play button on `defaultConstructor`:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think, this was intended --> execute whole class.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I think the whole doc intends to guide the user to execute a single test from the test file.

@ZiadAbdElFatah ZiadAbdElFatah requested a review from koppor February 4, 2026 12:55
@github-actions github-actions Bot removed the status: changes-required Pull requests that are not yet complete label Feb 4, 2026

@koppor koppor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Last round - either we get my comment addressed - or we close this PR and leave it for someone else.

Then, the "Search for classes dialog" pops up.
Enter `bibentrytest`.
Now, `BibEntryTest` should appear first:
Enter `LocalizationConsistencyTest`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

OK, not sure how I should react on this.

I commented on line 161

You changed line 162


I commented on the search string

You changed the search result.


{% figure caption:"Run BibEntryTest.testDefaultConstructor" %}
![Popup menu - Run testDefaultConstructor](12-10-run-single-test-launch-config.png)
{% figure caption:"Run LocalizationConsistencyTest.testfindMissingLocalizationKeys" %}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why is the wrong test name put as figure caption?

Then, click on it.
A popup menu opens.
Choose the first entry "Run BibEntryTest.testDefaultConstructor" and click on it.
Choose the first entry "Run LocalizationConsistencyTest.testfindMissingLocalizationKeys" and click on it.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why is the test name wrong?

Please take updates on documentation all newcomers read, seriously.

I can understand that careful work is hard these days. But I cannot lower quality requirements here.

As a reminder: The test method is findMissingLocalizationKeys without test prefix:

void findMissingLocalizationKeys() throws IOException {

Comment on lines +186 to +187
{% figure caption:"Run Tasks for findMissingLocalizationKeys" %}
![Run Tasks for findMissingLocalizationKeys](12-11-run-task-for-test.png)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Wrong method names

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I think these are right I took a copy from the test file and they are still the same.

The tests are green after the run.
You can also use the play button there to re-execute the tests.
A right-click on "BibEntryTests" enables the debugger to start.
A right-click on "findMissingLocalizationKeys" enables the debugger to start.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Well done! Correct method name put!

@github-actions github-actions Bot added the status: changes-required Pull requests that are not yet complete label Feb 7, 2026
@ZiadAbdElFatah ZiadAbdElFatah requested a review from koppor February 7, 2026 13:17
@github-actions github-actions Bot removed the status: changes-required Pull requests that are not yet complete label Feb 7, 2026
@testlens-app

testlens-app Bot commented Feb 7, 2026

Copy link
Copy Markdown

✅ All tests passed ✅

🏷️ Commit: ba71174
▶️ Tests: 11185 executed
🟡 Checks: 54/55 completed


Learn more about TestLens at testlens.app.

@koppor koppor changed the title Enhanced the contribution guide using intillij Enhanced the contribution guide using IntelliJ IDEA Feb 8, 2026
@jabref-machine

Copy link
Copy Markdown
Collaborator

Note that your PR will not be reviewed/accepted until you have gone through the mandatory checks in the description and marked each of them them exactly in the format of [x] (done), [ ] (not done yet) or [/] (not applicable). Please adhere to our pull request template.

@koppor koppor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I im a good mood today. I should close the PR. You did appearantly not double check it.

See

Image

What is wrong there??

The casing!!!!!!!!!!!!!!!!!!!!!!!!!! I said to you: Fix the casing. You fixed the casing, but did not think, where it could appear elsewhere.

This was an easy one, because it was at the same screenshot.

At real software, it might be somewhere else.


Please, fix the casing AND REMOVE THE SPACES. See comment below.

If you feel, spaces are easier for noobs, you can leave the spaces in - BUT MAKE THE SCREENSHOT CONSISTENT TO THE TEXT.

Then, the "Search for classes dialog" pops up.
Enter `bibentrytest`.
Now, `BibEntryTest` should appear first:
Enter `localization consistency test`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Remove the spaces

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I am really sorry for that, and thank you for your patience.

@github-actions github-actions Bot added the status: changes-required Pull requests that are not yet complete label Feb 8, 2026
@koppor koppor enabled auto-merge February 8, 2026 21:02
@ZiadAbdElFatah

Copy link
Copy Markdown
Collaborator Author

Thank you again for your patience and sorry for the noise I made to you but it's my first time to work on docs @koppor .

@koppor koppor added this pull request to the merge queue Feb 8, 2026
@github-actions github-actions Bot added the status: to-be-merged PRs which are accepted and should go into the merge-queue. label Feb 8, 2026
Merged via the queue into JabRef:main with commit 008cf01 Feb 8, 2026
55 checks passed
@ZiadAbdElFatah ZiadAbdElFatah deleted the fix-for-issue-15012 branch February 8, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

good first issue An issue intended for project-newcomers. Varies in difficulty. Review effort 2/5 status: changes-required Pull requests that are not yet complete 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.

Update DevDocs: run test

3 participants