Skip to content

Commit 2e01a24

Browse files
committed
Merge remote-tracking branch 'origin/auto-relativize-file-paths'
2 parents de348cc + 019500f commit 2e01a24

File tree

241 files changed

+5251
-2291
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

241 files changed

+5251
-2291
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Link the issue that will be closed, e.g., "Closes #333". If your PR closes a kop
99
-->
1010

1111
- [x] I own the copyright of the code submitted and I licence it under the [MIT license](https://github.com/JabRef/jabref/blob/main/LICENSE)
12-
- [ ] Change in `CHANGELOG.md` described in a way that is understandable for the average user (if applicable)
12+
- [ ] Change in `CHANGELOG.md` described in a way that is understandable for the average user (if change is visible to the user)
1313
- [ ] Tests created for changes (if applicable)
1414
- [ ] Manually tested changed features in running JabRef (always required)
1515
- [ ] Screenshots added in PR description (for UI changes)

.github/ghprcomment.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,8 @@
3434
message: |
3535
While the PR was in progress, a new version of JabRef has been released.
3636
You have to merge `upstream/main` and move your entry in `CHANGELOG.md` up to the section `## [Unreleased]`.
37+
- jobName: 'Unit tests'
38+
message: |
39+
JUnit tests are failing. In the area "Some checks were not successful", locate "Tests / Unit tests (pull_request)" and click on "Details". This brings you to the test output.
40+
41+
You can then run these tests in IntelliJ to reproduce the failing tests locally. We offer a quick test running howto in the section [Final build system checks](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.html#final-build-system-checks) in our setup guide.

.github/workflows/on-labeled-issue.yml

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,34 @@ on:
66
- labeled
77

88
jobs:
9+
Assigned:
10+
# Triggered when manually assigned the label "📍 Assigned" to trigger the automatic unassignment after 30 days
11+
name: "📍 Assigned"
12+
if: ${{ github.event.label.name == '📍 Assigned' }}
13+
runs-on: ubuntu-latest
14+
permissions:
15+
issues: write
16+
steps:
17+
- name: Move Issue to "Free to take" Column in "Candidates for University Projects"
18+
uses: m7kvqbe1/github-action-move-issues@feat/skip-if-not-in-project-flag
19+
with:
20+
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
21+
project-url: "https://github.com/orgs/JabRef/projects/3"
22+
target-labels: "📍 Assigned"
23+
target-column: "Free to take"
24+
ignored-columns: ""
25+
default-column: "Free to take"
26+
skip-if-not-in-project: true
27+
- name: Move Issue to "Free to take" Column in "Good First Issues"
28+
uses: m7kvqbe1/github-action-move-issues@feat/skip-if-not-in-project-flag
29+
with:
30+
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
31+
project-url: "https://github.com/orgs/JabRef/projects/5"
32+
target-labels: "📍 Assigned"
33+
target-column: "Free to take"
34+
ignored-columns: ""
35+
default-column: "Free to take"
36+
skip-if-not-in-project: true
937
FirstTimeCodeContribution:
1038
if: ${{ github.event.label.name == 'FirstTimeCodeContribution' }}
1139
runs-on: ubuntu-latest
@@ -35,7 +63,7 @@ jobs:
3563
with:
3664
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
3765
project-url: "https://github.com/orgs/JabRef/projects/3"
38-
target-labels: "📍 Assigned"
66+
target-labels: "FirstTimeCodeContribution"
3967
target-column: "Assigned"
4068
ignored-columns: ""
4169
default-column: "Free to take"
@@ -45,7 +73,7 @@ jobs:
4573
with:
4674
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
4775
project-url: "https://github.com/orgs/JabRef/projects/5"
48-
target-labels: "📍 Assigned"
76+
target-labels: "FirstTimeCodeContribution"
4977
target-column: "Assigned"
5078
ignored-columns: ""
5179
default-column: "Free to take"

.github/workflows/on-review-submitted.yml

Lines changed: 0 additions & 19 deletions
This file was deleted.

.github/workflows/pages.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ on:
66
- 'docs/**'
77
- '.github/workflows/pages.yml'
88
push:
9+
branches:
10+
main
911
paths:
1012
- 'docs/**'
1113
- '.github/workflows/pages.yml'
@@ -17,9 +19,8 @@ permissions:
1719
pages: write
1820
id-token: write
1921

20-
# Allow one concurrent deployment
2122
concurrency:
22-
group: "pages"
23+
group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}"
2324
cancel-in-progress: true
2425

2526
jobs:
@@ -33,9 +34,9 @@ jobs:
3334
- name: Setup Ruby
3435
uses: ruby/setup-ruby@v1
3536
with:
36-
ruby-version: '2.7' # Not needed with a .ruby-version file
37+
ruby-version: '3.3' # Not needed with a .ruby-version file
3738
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
38-
cache-version: 1 # Increment this number if you need to re-download cached gems
39+
cache-version: 0 # Increment this number if you need to re-download cached gems
3940
working-directory: docs/
4041
- name: Setup Pages
4142
id: pages

.github/workflows/pr-comment.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,25 @@ jobs:
3434
PR_NUMBER=$(cat pr_number.txt)
3535
echo "Read PR number $PR_NUMBER"
3636
echo "pr_number=$PR_NUMBER" >> $GITHUB_OUTPUT
37-
- name: Checkout
37+
- uses: actions/checkout@v4
38+
- name: Determine owner
3839
if: ${{ steps.read-pr_number.outputs.pr_number != '' }}
40+
id: isCrossRepository
41+
run: |
42+
isCrossRepository=$(gh pr view $pr_number --json isCrossRepository --jq '.isCrossRepository')
43+
echo "Got isCrossRepository $isCrossRepository"
44+
echo isCrossRepository=$isCrossRepository >> $GITHUB_OUTPUT
45+
env:
46+
GH_TOKEN: ${{ github.token }}
47+
- name: Checkout
48+
if: ${{ (steps.read-pr_number.outputs.pr_number != '') && (steps.isCrossRepository.isCrossRepository == 'true') }}
3949
uses: actions/checkout@v4
4050
with:
4151
fetch-depth: '0'
4252
show-progress: 'false'
4353
token: ${{ secrets.GITHUB_TOKEN }}
4454
- name: jbang
45-
if: ${{ steps.read-pr_number.outputs.pr_number != '' }}
55+
if: ${{ (steps.read-pr_number.outputs.pr_number != '') && (steps.isCrossRepository.isCrossRepository == 'true') }}
4656
uses: jbangdev/[email protected]
4757
with:
4858
script: ghprcomment@koppor/ghprcomment

.github/workflows/tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131
export PATH=$PATH:$HOME/.jbang/bin
132132

133133
# run heylogs verification
134-
jbang com.github.nbbrd.heylogs:heylogs-cli:0.7.2:bin check CHANGELOG.md > heylogs.txt || true
134+
jbang com.github.nbbrd.heylogs:heylogs-cli:0.9.2:bin check CHANGELOG.md > heylogs.txt || true
135135

136136
# improve output
137137
sed -i 's/all-h2-contain-a-version/all-h2-contain-a-version (ignored)/' heylogs.txt
@@ -380,7 +380,7 @@ jobs:
380380
uses: actions/github-script@v7
381381
with:
382382
script: |
383-
core.setFailed('Pull requests should come from a branch other than "main"\n\n👉 Please read https://devdocs.jabref.org/contributing again carefully. 👈')
383+
core.setFailed('Pull requests should come from a branch other than "main"\n\n👉 Please read [the CONTRIBUTING guide](https://github.com/JabRef/jabref/blob/main/CONTRIBUTING.md#contributing) carefully again. 👈')
384384

385385
upload-pr-number:
386386
runs-on: ubuntu-latest

CHANGELOG.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
1212
### Added
1313

1414
- We added a "view as BibTeX" option before importing an entry from the citation relation tab. [#11826](https://github.com/JabRef/jabref/issues/11826)
15-
- We added probable search hits instead of exact matches. Sorting by hit score can be done by the new score table column. [#11542](https://github.com/JabRef/jabref/pull/11542)
1615
- We added support finding LaTeX-encoded special characters based on plain Unicode and vice versa. [#11542](https://github.com/JabRef/jabref/pull/11542)
1716
- When a search hits a file, the file icon of that entry is changed accordingly. [#11542](https://github.com/JabRef/jabref/pull/11542)
1817
- We added an AI-based chat for entries with linked PDF files. [#11430](https://github.com/JabRef/jabref/pull/11430)
@@ -31,9 +30,11 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
3130
- We added a switch not to store the linked file URL, because it caused troubles at other apps. [#11735](https://github.com/JabRef/jabref/pull/11735)
3231
- When starting a new SLR, the selected catalogs now persist within and across JabRef sessions. [koppor#614](https://github.com/koppor/jabref/issues/614)
3332
- We added support for drag'n'drop on an entry in the maintable to an external application to get the entry preview dropped. [#11846](https://github.com/JabRef/jabref/pull/11846)
33+
- We added the functionality to double click on a [LaTeX citation](https://docs.jabref.org/advanced/entryeditor/latex-citations) to jump to the respective line in the LaTeX editor. [#11996](https://github.com/JabRef/jabref/issues/11996)
3434
- We added a different background color to the search bar to indicate when the search syntax is wrong. [#11658](https://github.com/JabRef/jabref/pull/11658)
3535
- We added a setting which always adds the literal "Cited on pages" text before each JStyle citation. [#11691](https://github.com/JabRef/jabref/pull/11732)
3636
- We added a new plain citation parser that uses LLMs. [#11825](https://github.com/JabRef/jabref/issues/11825)
37+
- We added support for modifier keys when dropping a file on an entry in the main table. [#12001](https://github.com/JabRef/jabref/pull/12001)
3738
- We added an importer for SSRN URLs. [#12021](https://github.com/JabRef/jabref/pull/12021)
3839
- We added a compare button to the duplicates in the citation relations tab to open the "Possible duplicate entries" window. [#11192](https://github.com/JabRef/jabref/issues/11192)
3940
- We added automatic browser extension install on Windows for Chrome and Edge. [#6076](https://github.com/JabRef/jabref/issues/6076)
@@ -42,15 +43,14 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
4243

4344
### Changed
4445

45-
- The search syntax is changed to [Apache Lucene syntax](https://lucene.apache.org/core/9_11_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#Overview) (also to be similar to the [online search syntax](https://docs.jabref.org/collect/import-using-online-bibliographic-database#search-syntax)). [#11542](https://github.com/JabRef/jabref/pull/11542/)
46-
- When searching using a regular expression, one needs to enclose the search string in `/`. [#11542](https://github.com/JabRef/jabref/pull/11542/)
4746
- A search in "any" fields ignores the [groups](https://docs.jabref.org/finding-sorting-and-cleaning-entries/groups). [#7996](https://github.com/JabRef/jabref/issues/7996)
4847
- When a communication error with an [online service](https://docs.jabref.org/collect/import-using-online-bibliographic-database) occurs, JabRef displays the HTTP error. [#11223](https://github.com/JabRef/jabref/issues/11223)
4948
- The Pubmed/Medline Plain importer now imports the PMID field as well [#11488](https://github.com/JabRef/jabref/issues/11488)
5049
- The 'Check for updates' menu bar button is now always enabled. [#11485](https://github.com/JabRef/jabref/pull/11485)
5150
- JabRef respects the [configuration for storing files relative to the .bib file](https://docs.jabref.org/finding-sorting-and-cleaning-entries/filelinks#directories-for-files) in more cases. [#11492](https://github.com/JabRef/jabref/pull/11492)
5251
- JabRef does not show finished background tasks in the status bar popup. [#11821](https://github.com/JabRef/jabref/pull/11821)
5352
- We enhanced the indexing speed. [#11502](https://github.com/JabRef/jabref/pull/11502)
53+
- When dropping a file into the main table, after copy or move, the file is now put in the [configured directory and renamed according to the configured patterns](https://docs.jabref.org/finding-sorting-and-cleaning-entries/filelinks#filename-format-and-file-directory-pattern). [#12001](https://github.com/JabRef/jabref/pull/12001)
5454
- ⚠️ Renamed command line parameters `embeddBibfileInPdf` to `embedBibFileInPdf`, `writeMetadatatoPdf` to `writeMetadataToPdf`, and `writeXMPtoPdf` to `writeXmpToPdf`. [#11575](https://github.com/JabRef/jabref/pull/11575)
5555
- The browse button for a Custom theme now opens in the directory of the current used CSS file. [#11597](https://github.com/JabRef/jabref/pull/11597)
5656
- The browse button for a Custom exporter now opens in the directory of the current used exporter file. [#11717](https://github.com/JabRef/jabref/pull/11717)
@@ -66,6 +66,8 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
6666
- We added a new CSS style class `main-table` for the main table. [#11881](https://github.com/JabRef/jabref/pull/11881)
6767
- When renaming a file, the old extension is now used if there is none provided in the new name. [#11903](https://github.com/JabRef/jabref/issues/11903)
6868
- When importing a file using "Find Unlinked Files", when one or more file directories are available, the file path will be relativized where possible [koppor#549](https://github.com/koppor/jabref/issues/549)
69+
- We changed the name of the library-based file directory from 'General File Directory' to 'Library-specific File Directory' per issue [#571](https://github.com/koppor/jabref/issues/571)
70+
- The CitationKey column is now a default shown column for the entry table. [#10510](https://github.com/JabRef/jabref/issues/10510)
6971

7072
### Fixed
7173

@@ -99,12 +101,13 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
99101
- We fixed an issue where recently opened files were not displayed in the main menu properly. [#9042](https://github.com/JabRef/jabref/issues/9042)
100102
- We fixed an issue where the DOI lookup would show an error when a DOI was found for an entry. [#11850](https://github.com/JabRef/jabref/issues/11850)
101103
- We fixed an issue where <kbd>Tab</kbd> cannot be used to jump to next field in some single-line fields. [#11785](https://github.com/JabRef/jabref/issues/11785)
104+
- We fixed an issue where we display warning message for moving attached open files. [#10121](https://github.com/JabRef/jabref/issues/10121)
102105
- We fixed an issue where it was not possible to select selecting content of other user's comments.[#11106](https://github.com/JabRef/jabref/issues/11106)
103106
- We fixed an issue where web search preferences "Custom API key" table modifications not discarded. [#11925](https://github.com/JabRef/jabref/issues/11925)
107+
- We fixed an issue where trying to open a library from a failed mounted directory on Mac would cause an error. [#10548](https://github.com/JabRef/jabref/issues/10548)
104108

105109
### Removed
106110

107-
- We removed support for case-sensitive and exact search. [#11542](https://github.com/JabRef/jabref/pull/11542)
108111
- We removed the description of search strings. [#11542](https://github.com/JabRef/jabref/pull/11542)
109112
- We removed support for importing using the SilverPlatterImporter (`Record INSPEC`). [#11576](https://github.com/JabRef/jabref/pull/11576)
110113
- We removed support for automatically generating file links using the CLI (`--automaticallySetFileLinks`).

build.gradle

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ plugins {
2929

3030
id 'idea'
3131

32-
id 'org.openrewrite.rewrite' version '6.23.4'
32+
id 'org.openrewrite.rewrite' version '6.25.1'
3333

34-
id "org.itsallcode.openfasttrace" version "3.0.0"
34+
id "org.itsallcode.openfasttrace" version "3.0.1"
3535
}
3636

3737
// Enable following for debugging
@@ -238,7 +238,7 @@ dependencies {
238238
}
239239
implementation 'org.fxmisc.flowless:flowless:0.7.3'
240240
implementation 'org.fxmisc.richtext:richtextfx:0.11.3'
241-
implementation (group: 'com.dlsc.gemsfx', name: 'gemsfx', version: '2.58.0') {
241+
implementation (group: 'com.dlsc.gemsfx', name: 'gemsfx', version: '2.60.0') {
242242
exclude module: 'javax.inject' // Split package, use only jakarta.inject
243243
exclude module: 'commons-lang3'
244244
exclude group: 'org.apache.commons.validator'
@@ -304,7 +304,7 @@ dependencies {
304304
// Implementation of the API
305305
implementation 'org.glassfish.jersey.core:jersey-server:3.1.9'
306306
// injection framework
307-
implementation 'org.glassfish.jersey.inject:jersey-hk2:3.1.8'
307+
implementation 'org.glassfish.jersey.inject:jersey-hk2:3.1.9'
308308
implementation 'org.glassfish.hk2:hk2-api:3.1.1'
309309
// testImplementation 'org.glassfish.hk2:hk2-testing:3.0.4'
310310
// implementation 'org.glassfish.hk2:hk2-testing-jersey:3.0.4'
@@ -370,11 +370,14 @@ dependencies {
370370
// Even if "compileOnly" is used, IntelliJ always adds to module-info.java. To avoid issues during committing, we use "implementation" instead of "compileOnly"
371371
implementation 'io.github.adr:e-adr:2.0.0-SNAPSHOT'
372372

373+
implementation 'io.zonky.test:embedded-postgres:2.0.7'
374+
implementation enforcedPlatform('io.zonky.test.postgres:embedded-postgres-binaries-bom:17.0.0')
375+
373376
testImplementation 'io.github.classgraph:classgraph:4.8.177'
374377
testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0'
375378
testImplementation 'org.junit.platform:junit-platform-launcher:1.10.3'
376379

377-
testImplementation 'org.mockito:mockito-core:5.14.1'
380+
testImplementation 'org.mockito:mockito-core:5.14.2'
378381
testImplementation 'org.xmlunit:xmlunit-core:2.10.0'
379382
testImplementation 'org.xmlunit:xmlunit-matchers:2.10.0'
380383
testRuntimeOnly 'com.tngtech.archunit:archunit-junit5-engine:1.3.0'
@@ -793,9 +796,13 @@ jlink {
793796
requires 'org.apache.commons.lang3'
794797
requires 'org.apache.commons.logging'
795798
requires 'org.apache.commons.text'
799+
requires 'org.apache.commons.codec'
800+
requires 'org.apache.commons.io'
801+
requires 'org.apache.commons.compress'
796802
requires 'org.freedesktop.dbus'
797803
requires 'org.jsoup'
798804
requires 'org.slf4j'
805+
requires 'org.tukaani.xz';
799806
uses 'ai.djl.engine.EngineProvider'
800807
uses 'ai.djl.repository.RepositoryFactory'
801808
uses 'ai.djl.repository.zoo.ZooProvider'
@@ -807,6 +814,7 @@ jlink {
807814
uses 'org.mariadb.jdbc.authentication.AuthenticationPlugin'
808815
uses 'org.mariadb.jdbc.credential.CredentialPlugin'
809816
uses 'org.mariadb.jdbc.tls.TlsSocketPlugin'
817+
uses 'org.postgresql.shaded.com.ongres.stringprep.Profile'
810818

811819
provides 'org.mariadb.jdbc.tls.TlsSocketPlugin' with 'org.mariadb.jdbc.internal.protocol.tls.DefaultTlsSocketPlugin'
812820
provides 'java.sql.Driver' with 'org.postgresql.Driver'

0 commit comments

Comments
 (0)