Skip to content

Commit 7757c0d

Browse files
committed
Merge remote-tracking branch 'origin/fix-for-issue-13241' into fix-for-issue-13241
2 parents 0ceb6e0 + 906df59 commit 7757c0d

Some content is hidden

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

42 files changed

+1009
-873
lines changed

.github/workflows/binaries-ea.yml

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,17 @@ jobs:
224224
shell: bash
225225
run: mv ~/AppData/Local/mise ~/.asdf
226226
- name: Setup JDK for gradle itself
227+
if: false
227228
uses: actions/setup-java@v4
228229
with:
229230
java-version: '21'
230231
distribution: 'temurin'
232+
- name: Setup JDK ${{ env.jdk_version }}
233+
uses: actions/setup-java@v4
234+
with:
235+
java-version: '${{ env.jdk_version }}'
236+
distribution: 'corretto'
237+
java-package: 'jdk'
231238
# endregion
232239

233240
# region JavaFX
@@ -283,9 +290,9 @@ jobs:
283290
cd jabgui
284291
285292
# see https://github.com/jdx/mise/discussions/4973
286-
eval $(mise hook-env -f | grep 'export JAVA_HOME')
287-
eval $(mise hook-env -f | grep 'export PATH')
288-
echo $JAVA_HOME
293+
# eval $(mise hook-env -f | grep 'export JAVA_HOME')
294+
# eval $(mise hook-env -f | grep 'export PATH')
295+
# echo $JAVA_HOME
289296
290297
jpackage \
291298
--module org.jabref/org.jabref.Launcher \
@@ -335,9 +342,9 @@ jobs:
335342
cd jabgui
336343
337344
# see https://github.com/jdx/mise/discussions/4973
338-
eval $(mise hook-env -f | grep 'export JAVA_HOME')
339-
eval $(mise hook-env -f | grep 'export PATH')
340-
echo $JAVA_HOME
345+
# eval $(mise hook-env -f | grep 'export JAVA_HOME')
346+
# eval $(mise hook-env -f | grep 'export PATH')
347+
# echo $JAVA_HOME
341348
342349
jpackage \
343350
--module org.jabref/org.jabref.Launcher \

.github/workflows/binaries.yml

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010
- 'src/test/**'
1111
- 'README.md'
1212
tags:
13-
- '*'
13+
- '*'
1414
pull_request:
1515
types:
1616
- opened
@@ -212,32 +212,6 @@ jobs:
212212
- name: Setup JBang
213213
uses: jbangdev/setup-jbang@main
214214

215-
# region Publish JabLib on Maven Central
216-
- name: Decode secretKeyRingFile
217-
if: (needs.conditions.outputs.upload-to-builds-jabref-org == 'true') && (startsWith(matrix.os, 'ubuntu'))
218-
id: secring
219-
uses: timheuer/base64-to-file@v1
220-
with:
221-
fileName: 'secring.gpg'
222-
encodedString: ${{ secrets.KOPPOR_SIGNING_SECRETKEYRINGFILE_BASE64 }}
223-
- name: store secrets
224-
if: (needs.conditions.outputs.upload-to-builds-jabref-org == 'true') && (startsWith(matrix.os, 'ubuntu'))
225-
run: |
226-
cat >> gradle.properties <<EOF
227-
signing.keyId=${{ secrets.KOPPOR_SIGNING_KEYID }}
228-
signing.password=${{ secrets.KOPPOR_SIGNING_PASSWORD }}
229-
signing.secretKeyRingFile=${{ steps.secring.outputs.filePath }}
230-
mavenCentralUsername=${{ secrets.KOPPOR_MAVENCENTRALUSERNAME }}
231-
mavenCentralPassword=${{ secrets.KOPPOR_MAVENCENTRALPASSWORD }}
232-
EOF
233-
grep secretKeyRingFile gradle.properties
234-
file ${{ steps.secring.outputs.filePath }}
235-
md5sum ${{ steps.secring.outputs.filePath }}
236-
- name: publishAllPublicationsToMavenCentralRepository
237-
if: (needs.conditions.outputs.upload-to-builds-jabref-org == 'true') && (matrix.os == 'ubuntu-22.04')
238-
run: ./gradlew -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" -Ptagbuild="${{ needs.conditions.outputs.tagbuild }}" :jablib:publishAllPublicationsToMavenCentralRepository
239-
# endregion
240-
241215
- name: Basic build (assemble)
242216
run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" assemble
243217

.github/workflows/on-pr-closed.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ jobs:
4040
ticketPrefix: '#'
4141
titleRegex: '^#(?<ticketNumber>\d+)'
4242
branchRegex: '^(?<ticketNumber>\d+)'
43-
# Matches GitHub's closes/fixes/resolves #{number}, but does not match our example `Closes #12345` in PULL_REQUEST_TEMPLATE
44-
bodyRegex: '(?<action>fixes|closes|resolves)\s+(?:https?:\/\/github\.com\/JabRef\/jabref\/issues\/)?#?(?<ticketNumber>(?!12345\b)\d+)'
43+
# Matches GitHub's closes/fixes/resolves #{number}, but does not match our example `Closes #13109` in PULL_REQUEST_TEMPLATE
44+
bodyRegex: '(?<action>fixes|closes|resolves)\s+(?:https?:\/\/github\.com\/JabRef\/jabref\/issues\/)?#?(?<ticketNumber>(?!13109\b)\d+)'
4545
bodyRegexFlags: 'i'
4646
outputOnly: true
4747
- run: echo "${{ steps.get_issue_number.outputs.ticketNumber }}"

.github/workflows/on-pr-opened-updated.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ jobs:
1010
name: Determine issue number
1111
runs-on: ubuntu-latest
1212
if: >
13+
(github.repository == 'JabRef/jabref') &&
1314
!(
1415
(github.actor == 'dependabot[bot]') ||
1516
(
@@ -53,7 +54,6 @@ jobs:
5354
echo "No valid ticket number found!"
5455
exit 1
5556
move_issue:
56-
if: github.repository_owner == 'JabRef'
5757
name: Mark issue as in progress
5858
# after determine_issue_number to ensure that there is only one failure because of no ticket number
5959
needs: determine_issue_number
@@ -84,7 +84,6 @@ jobs:
8484
issue-number: ${{ needs.determine_issue_number.outputs.issue_number }}
8585
skip-if-not-in-project: true
8686
ensure_assignment:
87-
if: github.repository_owner == 'JabRef'
8887
name: Ensure that contributor is assigned (fails if not commented on issue)
8988
# after determine_issue_number to ensure that there is only one failure because of no ticket number
9089
needs: determine_issue_number
@@ -126,6 +125,7 @@ jobs:
126125
env:
127126
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
128127
conflicts_with_target:
128+
if: github.repository == 'JabRef/jabref'
129129
name: Conflicts with target branch
130130
runs-on: ubuntu-latest
131131
steps:
@@ -144,7 +144,7 @@ jobs:
144144
env:
145145
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
146146
upload-pr-number:
147-
if: ${{ github.repository == 'JabRef/jabref' }}
147+
if: github.repository == 'JabRef/jabref'
148148
runs-on: ubuntu-latest
149149
steps:
150150
- name: Create pr_number.txt

.github/workflows/on-pr-opened.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66

77
jobs:
88
welcome-first-time-contributor:
9+
if: github.repository == 'JabRef/jabref'
910
runs-on: ubuntu-latest
1011
permissions:
1112
issues: write

.github/workflows/publish.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: Publish to maven central
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- .github\workflows\publish.yml
7+
push:
8+
paths:
9+
- .github\workflows\publish.yml
10+
tags:
11+
- '*'
12+
schedule:
13+
# run on each Monday
14+
- cron: '2 3 * * 1'
15+
workflow_dispatch:
16+
17+
permissions:
18+
actions: write
19+
contents: read
20+
pull-requests: write
21+
22+
env:
23+
GRADLE_OPTS: -Xmx4g -Dorg.gradle.vfs.watch=false
24+
JAVA_OPTS: -Xmx4g
25+
26+
concurrency:
27+
group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}-${{ github.event_name }}"
28+
cancel-in-progress: true
29+
30+
jobs:
31+
publish:
32+
name: jablib
33+
runs-on: ubuntu-22.04
34+
steps:
35+
- name: Fetch all history for all tags and branches
36+
uses: actions/checkout@v4
37+
with:
38+
fetch-depth: 0
39+
submodules: 'true'
40+
show-progress: 'false'
41+
- name: Install GitVersion
42+
uses: gittools/actions/gitversion/setup@v3.2.1
43+
with:
44+
versionSpec: "5.x"
45+
- name: Run GitVersion
46+
id: gitversion
47+
uses: gittools/actions/gitversion/execute@v3.2.1
48+
- name: Setup JDK
49+
uses: actions/setup-java@v4
50+
with:
51+
java-version: '24'
52+
distribution: 'corretto'
53+
java-package: 'jdk'
54+
- name: Setup Gradle
55+
uses: gradle/actions/setup-gradle@v4
56+
- name: Generate JBang cache key
57+
id: cache-key
58+
shell: bash
59+
run: |
60+
echo "cache_key=jbang-$(date +%F)" >> $GITHUB_OUTPUT
61+
- name: Use cache
62+
uses: actions/cache@v4
63+
with:
64+
lookup-only: true
65+
path: ~/.jbang
66+
key: ${{ steps.cache-key.outputs.cache_key }}
67+
restore-keys:
68+
jbang-
69+
- name: Setup JBang
70+
uses: jbangdev/setup-jbang@main
71+
72+
# region Publish JabLib on Maven Central
73+
- id: istagbuild
74+
run: |
75+
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
76+
echo "tagbuild=true" >> "$GITHUB_OUTPUT"
77+
else
78+
echo "tagbuild=false" >> "$GITHUB_OUTPUT"
79+
fi
80+
- name: Decode secretKeyRingFile
81+
id: secring
82+
uses: timheuer/base64-to-file@v1
83+
with:
84+
fileName: 'secring.gpg'
85+
encodedString: ${{ secrets.KOPPOR_SIGNING_SECRETKEYRINGFILE_BASE64 }}
86+
- name: store secrets
87+
run: |
88+
cat >> gradle.properties <<EOF
89+
signing.keyId=${{ secrets.KOPPOR_SIGNING_KEYID }}
90+
signing.password=${{ secrets.KOPPOR_SIGNING_PASSWORD }}
91+
signing.secretKeyRingFile=${{ steps.secring.outputs.filePath }}
92+
mavenCentralUsername=${{ secrets.KOPPOR_MAVENCENTRALUSERNAME }}
93+
mavenCentralPassword=${{ secrets.KOPPOR_MAVENCENTRALPASSWORD }}
94+
EOF
95+
grep secretKeyRingFile gradle.properties
96+
file ${{ steps.secring.outputs.filePath }}
97+
md5sum ${{ steps.secring.outputs.filePath }}
98+
- name: publishAllPublicationsToMavenCentralRepository
99+
run: ./gradlew -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" -Ptagbuild="${{ steps.istagbuild.outputs.tagbuild }}" :jablib:publishAllPublicationsToMavenCentralRepository
100+
# endregion

.github/workflows/tests-fetchers.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ on:
2424
- '.github/workflows/tests-fetchers.yml'
2525
- 'build.gradle'
2626
schedule:
27-
# run on each Wednesday
28-
- cron: '2 3 * * 3'
27+
# run on each Monday
28+
- cron: '2 3 * * 1'
2929
workflow_dispatch:
3030

3131
env:

.jbang/JabSrvLauncher.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
//DEPS org.jabref:jablib:6.+
2727
//DEPS info.picocli:picocli:4.7.7
28+
//DEPS org.jspecify:jspecify:1.0.0
2829

2930
// from jabsrv
3031
//DEPS org.slf4j:slf4j-api:2.0.17

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
1111

1212
### Added
1313

14-
- We introduced a settings parameters to manage citations' relations local storage time-to-live with a default value set to 30 days. [#11189](https://github.com/JabRef/jabref/issues/11189)
14+
- We introduced a settings parameter to manage citations' relations local storage time-to-live with a default value set to 30 days. [#11189](https://github.com/JabRef/jabref/issues/11189)
1515
- We distribute arm64 images for Linux. [#10842](https://github.com/JabRef/jabref/issues/10842)
16+
- We added the field `monthfiled` to the default list of fields to resolve BibTeX-Strings for [#13375](https://github.com/JabRef/jabref/issues/13375)
1617

1718
### Changed
1819

@@ -36,6 +37,7 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
3637
- We added a new `jabkit` command `pseudonymize` to pseudonymize the library. [#13109](https://github.com/JabRef/jabref/issues/13109)
3738
- We added functionality to focus running instance when trying to start a second instance. [#13129](https://github.com/JabRef/jabref/issues/13129)
3839
- We added a new setting in the 'Entry Editor' preferences to hide the 'File Annotations' tab when no annotations are available. [#13143](https://github.com/JabRef/jabref/issues/13143)
40+
- We added support for multi-file import across different formats. [#13269](https://github.com/JabRef/jabref/issues/13269)
3941

4042
### Changed
4143

@@ -65,6 +67,7 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
6567
- We fixed an issue where the tab showing the fulltext search results was not displayed. [#12865](https://github.com/JabRef/jabref/issues/12865)
6668
- We fixed an issue showing an empty tooltip in maintable. [#11681](https://github.com/JabRef/jabref/issues/11681)
6769
- We fixed an issue where Document Viewer showed technical exceptions when opening entries with non-PDF files. [#13198](https://github.com/JabRef/jabref/issues/13198)
70+
- When creating a library, if you drag a PDF file containing only a single column, the dialog will now automatically close. [#13262](https://github.com/JabRef/jabref/issues/13262)
6871
- We fixed an issue where the tab showing the fulltext search results would appear blank after switching library. [#13241](https://github.com/JabRef/jabref/issues/13241)
6972

7073
### Removed

build-logic/src/main/kotlin/org.jabref.gradle.base.repositories.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ repositories {
88
// Required for one.jpro.jproutils:tree-showing
99
maven { url = uri("https://sandec.jfrog.io/artifactory/repo") }
1010

11-
maven { url = uri("file:${rootDir.absolutePath}/jablib/lib")}
11+
maven { url = rootDir.resolve("jablib/lib").toURI() }
1212
}

build-logic/src/main/kotlin/org.jabref.gradle.feature.compile.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ java {
99
// - .devcontainer/devcontainer.json#L34 and
1010
// - .moderne/moderne.yml
1111
// - .github/workflows/binaries*.yml
12+
// - .github/workflows/publish.yml
1213
// - .github/workflows/tests*.yml
1314
// - .github/workflows/update-gradle-wrapper.yml
1415
// - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md

docs/requirements/ux.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
parent: Requirements
3+
---
4+
# UX
5+
6+
This page collects general UX requirements
7+
8+
## Auto close of merge entries dialog
9+
`req~ux.auto-close.merge-entries~1`
10+
11+
The merge entries dialog collects and merges data from multiple sources.
12+
In case there is only one source, it should not be shown.
13+
Since some data fetchers take time, we need to open the dialog and wait until all sources are available.
14+
[As soon as only one source is available, the dialog should be closed to speed up the user's workflow](https://github.com/JabRef/jabref/issues/13262).
15+
16+
Needs: impl
17+
18+
<!-- markdownlint-disable-file MD022 -->

jabgui/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,6 @@ jlink {
213213
forceMerge(
214214
"controlsfx",
215215
"bcprov",
216-
"jaxb",
217-
"istack",
218216
"stax"
219217
)
220218

@@ -224,7 +222,6 @@ jlink {
224222
requires("com.fasterxml.jackson.databind")
225223
requires("com.fasterxml.jackson.core")
226224
requires("com.fasterxml.jackson.datatype.jdk8")
227-
requires("jakarta.xml.bind")
228225
requires("java.compiler")
229226
requires("java.datatransfer")
230227
requires("java.desktop")

jabgui/src/main/java/module-info.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,11 @@
7676
// endregion
7777

7878
// region: data mapping
79-
// requires jakarta.xml.bind;
8079
requires jdk.xml.dom;
8180
// requires com.google.gson;
8281
// requires com.fasterxml.jackson.databind;
8382
// requires com.fasterxml.jackson.dataformat.yaml;
8483
// requires com.fasterxml.jackson.datatype.jsr310;
85-
// needs to be loaded here as it's otherwise not found at runtime
86-
// requires org.glassfish.jaxb.runtime;
8784
// endregion
8885

8986
// dependency injection using HK2

jabgui/src/main/java/org/jabref/gui/JabRefDialogService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ public Optional<Path> showDirectorySelectionDialog(DirectoryDialogConfiguration
462462
public List<Path> showFileOpenDialogAndGetMultipleFiles(FileDialogConfiguration fileDialogConfiguration) {
463463
FileChooser chooser = getConfiguredFileChooser(fileDialogConfiguration);
464464
List<File> files = chooser.showOpenMultipleDialog(mainWindow);
465+
Optional.ofNullable(chooser.getSelectedExtensionFilter()).ifPresent(fileDialogConfiguration::setSelectedExtensionFilter);
465466
return files != null ? files.stream().map(File::toPath).toList() : List.of();
466467
}
467468

0 commit comments

Comments
 (0)