Skip to content

adapt wix#14969

Merged
Siedlerchr merged 18 commits intomainfrom
tryToFixBanner
Feb 22, 2026
Merged

adapt wix#14969
Siedlerchr merged 18 commits intomainfrom
tryToFixBanner

Conversation

@Siedlerchr
Copy link
Copy Markdown
Member

@Siedlerchr Siedlerchr commented Jan 30, 2026

User description

Closes #14976

I could not get the banner to work but at least this should readd the registry stuff

Steps to test

Mandatory checks


PR Type

Bug fix


Description

  • Fix WiX installer configuration paths for banner images

  • Add missing FragmentOsCondition component group reference

  • Add LaunchConditions element to install sequence

  • Simplify banner image path from relative to direct filename


Diagram Walkthrough

flowchart LR
  A["WiX Configuration"] -->|Add FragmentOsCondition| B["Feature Definition"]
  A -->|Add LaunchConditions| C["InstallExecuteSequence"]
  A -->|Simplify paths| D["Banner Image References"]
  D -->|WixUIBannerBmp| E["JabRefTopBanner.bmp"]
  D -->|WixUIDialogBmp| E
Loading

File Walkthrough

Relevant files
Bug fix
main.wxs
Update WiX installer configuration and banner paths           

jabgui/buildres/windows/main.wxs

  • Added FragmentOsCondition component group reference to DefaultFeature
  • Added LaunchConditions element before RemoveExistingProducts in
    InstallExecuteSequence
  • Changed WixUIBannerBmp path from relative path
    ..\..\..\..\buildres\windows\JabRefTopBanner.bmp to direct filename
    JabRefTopBanner.bmp
  • Added new WixUIDialogBmp variable pointing to JabRefTopBanner.bmp
+4/-1     

@Siedlerchr Siedlerchr added the dev: binaries Binary builds should be uploaded to builds.jabref.org label Jan 30, 2026
@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects Bot commented Jan 30, 2026

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 the Pseudonymization functionality available on the CLI
Implement a similar CLI experience to the consistency check
Follow the implementation pattern of the 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: 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
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects Bot commented Jan 30, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Use correct image for dialog background
Suggestion Impact:The commit removed the WixUIDialogBmp assignment that pointed to the top banner image (avoiding the stretched/tiled banner as dialog background), though it did not replace it with JabRefDialog.bmp as suggested.

code diff:

-    <WixVariable Id="WixUIBannerBmp" Value="..\..\..\..\..\buildres\windows\JabRefTopBanner.bmp" />
-    <WixVariable Id="WixUIDialogBmp" Value="..\..\..\..\..\buildres\windows\JabRefTopBanner.bmp" />
+    <WixVariable Id="WixUIBannerBmp" Value="JabRefTopBanner.bmp" />
   </Product>

Use a larger image intended for the dialog background for the WixUIDialogBmp
variable, as the current banner image will be stretched or tiled, resulting in a
poor user experience.

jabgui/buildres/windows/main.wxs [164]

-<WixVariable Id="WixUIDialogBmp" Value="..\..\..\..\..\buildres\windows\JabRefTopBanner.bmp" />
+<WixVariable Id="WixUIDialogBmp" Value="..\..\..\..\..\buildres\windows\JabRefDialog.bmp" />

[Suggestion processed]

Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies that using a banner image for the main dialog background (WixUIDialogBmp) will likely result in a poor visual experience due to incorrect image dimensions.

Low
  • Update

@Siedlerchr
Copy link
Copy Markdown
Member Author

did not work

@github-actions
Copy link
Copy Markdown
Contributor

This pull requests was closed without merging. You have been unassigned from the respective issue #14965. In case you closed the PR for yourself, you can re-open it. Please also check After submission of a pull request in CONTRIBUTING.md.

@Siedlerchr Siedlerchr reopened this Jan 31, 2026
@qodo-free-for-open-source-projects
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
🟡
🎫 #13109
🔴 Make the org.jabref.logic.pseudonymization.Pseudonymization functionality available on the
CLI
Provide a similar CLI experience to the consistency check
Implement similar to the `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: Passed

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

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

qodo-free-for-open-source-projects Bot commented Jan 31, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
General
Use a variable for file paths
Suggestion Impact:The commit simplified the file paths from relative paths to just the filename, which addresses the redundancy issue identified in the suggestion. However, instead of using a preprocessor variable as suggested, the implementation used a simpler approach by removing the relative path prefix.

code diff:

-    <WixVariable Id="WixUIBannerBmp" Value="..\..\..\..\..\buildres\windows\JabRefTopBanner.bmp" />
-    <WixVariable Id="WixUIDialogBmp" Value="..\..\..\..\..\buildres\windows\JabRefTopBanner.bmp" />
+    <WixVariable Id="WixUIBannerBmp" Value="JabRefTopBanner.bmp" />
+    <WixVariable Id="WixUIDialogBmp" Value="JabRefTopBanner.bmp" />

To avoid redundancy and improve maintainability, define the banner image path
once using a WiX preprocessor variable and reference it in both WixUIBannerBmp
and WixUIDialogBmp.

jabgui/buildres/windows/main.wxs [163-164]

-<WixVariable Id="WixUIBannerBmp" Value="..\..\..\..\..\buildres\windows\JabRefTopBanner.bmp" />
-<WixVariable Id="WixUIDialogBmp" Value="..\..\..\..\..\buildres\windows\JabRefTopBanner.bmp" />
+<WixVariable Id="WixUIBannerBmp" Value="$(var.BannerImage)" />
+<WixVariable Id="WixUIDialogBmp" Value="$(var.BannerImage)" />

[Suggestion processed]

Suggestion importance[1-10]: 5

__

Why: The suggestion correctly identifies a duplicated hardcoded path and proposes using a variable to improve maintainability, which is a valid code quality improvement.

Low
  • More

@Siedlerchr
Copy link
Copy Markdown
Member Author

no time to test this furhter, making the issue available for someone else

@Siedlerchr Siedlerchr closed this Feb 1, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 1, 2026

This pull requests was closed without merging. You have been unassigned from the respective issue #14965. In case you closed the PR for yourself, you can re-open it. Please also check After submission of a pull request in CONTRIBUTING.md.

@subhramit
Copy link
Copy Markdown
Member

no time to test this furhter, making the issue available for someone else

I'll test this, you can keep it open

@qodo-free-for-open-source-projects
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
🟡
🎫 #13109
🔴 Make the Pseudonymization class available on the CLI
Provide similar CLI experience to the consistency check
Implement similar to the 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: Passed

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

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

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Correct the scheduling of LaunchConditions

The LaunchConditions action should be scheduled after AppSearch instead of
before it to follow the standard WiX sequence and prevent potential installation
issues.

jabgui/buildres/windows/main.wxs [127]

-<LaunchConditions Before="AppSearch"/>
+<LaunchConditions After="AppSearch"/>
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies that scheduling LaunchConditions before AppSearch is against WiX best practices and could lead to incorrect installation failures, thus improving the installer's robustness.

Medium
  • More

@koppor
Copy link
Copy Markdown
Member

koppor commented Feb 22, 2026

Note that main.wxs is completely ignored at the build as of today. --> #15188 (comment)

@koppor
Copy link
Copy Markdown
Member

koppor commented Feb 22, 2026

Gemini hint: #15188 (comment)

Comment thread jabgui/buildres/windows/main.wxs Outdated
…anner

* upstream/tryToFixBanner: (194 commits)
  Enable loading of main.wxs
  Fix icon on Linux (#15188)
  chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.5 (#15178)
  New Crowdin updates (#15173)
  Reduce complexity in dependencies setup (#15169)
  Start new development cycle
  snapcraft
  snapcraft
  use snapctl
  update metadata fiels
  try with  mesa candidate
  fix snapcraft and skmanrc to use correct version
  Release v6.0-alpha.5
  chore(sbom): update CycloneDX SBOM files (#15172)
  Chore(deps): Bump jablib/src/main/resources/csl-styles (#15171)
  Added "DOI" and URL to entry preview [#14193] (#15121)
  Fix condition to check running CI in workflow
  Add maintainer permission check to workflow
  Add debug output for running checks
  Fix matrix
  ...
* main:
  Revert "Reduce complexity in dependencies setup (#15169)" (#15191)
  Fix compilation
  Fix heylogs test
@testlens-app
Copy link
Copy Markdown

testlens-app Bot commented Feb 22, 2026

✅ All tests passed ✅

🏷️ Commit: 96f283d
▶️ Tests: 11193 executed
⚪️ Checks: 61/61 completed


Learn more about TestLens at testlens.app.

@github-actions
Copy link
Copy Markdown
Contributor

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

@Siedlerchr Siedlerchr merged commit cf45f3a into main Feb 22, 2026
62 checks passed
@Siedlerchr Siedlerchr deleted the tryToFixBanner branch February 22, 2026 21:28
Siedlerchr added a commit to LoayTarek5/jabref that referenced this pull request Feb 23, 2026
…les-wizard-12709

* upstream/main: (106 commits)
  Merge common gating parts into composite action (JabRef#15197)
  Support protected institutional authors in PersonNamesChecker (JabRef#15175)
  adapt wix (JabRef#14969)
  Improve CI (JabRef#15189)
  Revert "Reduce complexity in dependencies setup (JabRef#15169)" (JabRef#15191)
  Fix compilation
  Fix heylogs test
  Fix icon on Linux (JabRef#15188)
  chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.5 (JabRef#15178)
  New Crowdin updates (JabRef#15173)
  Reduce complexity in dependencies setup (JabRef#15169)
  Start new development cycle
  snapcraft
  snapcraft
  use snapctl
  update metadata fiels
  try with  mesa candidate
  fix snapcraft and skmanrc to use correct version
  Release v6.0-alpha.5
  chore(sbom): update CycloneDX SBOM files (JabRef#15172)
  ...
RakockiW pushed a commit to RakockiW/jabref that referenced this pull request Mar 1, 2026
* adapt wix

* try to fix paths

* rever path and adapt from latest jdk 25 wix

* try with direct path

* Enable loading of main.wxs

* only banner

* add overrrides.wxi

* without banner

* with jpa config dir

* try without path

* add check for wix version

* forward slash

* comment out again

---------

Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
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 Review effort 1/5 Review effort 2/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Native messaging no longer registered upon installation

3 participants