Skip to content

Commit 4378e0d

Browse files
committed
Merge remote-tracking branch 'upstream/main' into fix-for-issue-9803
* upstream/main: (68 commits) BibTeX 'Title' to MS Office 'Publicationtitle' field (JabRef#10864) Introduce BibliographyConsistencyCheckResultTxtWriter (JabRef#10847) Upgrade gradle-build-action to actions/setup-gradle (JabRef#10866) Bump org.apache.lucene:lucene-core from 9.9.1 to 9.9.2 (JabRef#10860) Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2 (JabRef#10863) Bump org.apache.lucene:lucene-highlighter from 9.9.1 to 9.9.2 (JabRef#10861) Bump org.tinylog:tinylog-api from 2.6.2 to 2.7.0 (JabRef#10862) Bump org.apache.lucene:lucene-queryparser from 9.9.1 to 9.9.2 (JabRef#10859) Bump gradle/wrapper-validation-action from 1 to 2 (JabRef#10858) Bump codecov/codecov-action from 3 to 4 (JabRef#10857) Bump peter-evans/create-pull-request from 5 to 6 (JabRef#10856) Update Gradle Wrapper from 8.5 to 8.6. (JabRef#10854) Enable auto merge of gradle wrapper update Jump to entry from cli (JabRef#10578) Fix closing of JabRef in case of issues with index writer (JabRef#10840) Update deployment-arm64.yml use nio path fix submodules Fix secrents presence chcek Update deployment-arm64.yml ...
2 parents c9bcbe8 + e71ad29 commit 4378e0d

File tree

315 files changed

+3228
-1700
lines changed

Some content is hidden

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

315 files changed

+3228
-1700
lines changed

.github/workflows/add-greeting-to-issue.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
issues: write
1717
steps:
1818
- name: GreetingFirstTimeCodeContribution
19-
uses: peter-evans/create-or-update-comment@v3
19+
uses: peter-evans/create-or-update-comment@v4
2020
with:
2121
issue-number: ${{ github.event.issue.number || github.event.pull_request.number }}
2222
body: |

.github/workflows/automerge.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ jobs:
1717
(
1818
startsWith(github.event.pull_request.title, '[Bot] ') ||
1919
startsWith(github.event.pull_request.title, 'Bump ') ||
20-
startsWith(github.event.pull_request.title, 'New Crowdin updates')
20+
startsWith(github.event.pull_request.title, 'New Crowdin updates') ||
21+
startsWith(github.event.pull_request.title, 'Update Gradle Wrapper from')
2122
)
2223
)
2324
steps:

.github/workflows/check-links.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ jobs:
2222
with:
2323
show-progress: 'false'
2424
- name: Restore lychee cache
25-
uses: actions/cache@v3
25+
uses: actions/cache@v4
2626
with:
2727
path: .lycheecache
2828
key: cache-lychee-${{ github.sha }}
2929
restore-keys: cache-lychee-
3030
- name: Link Checker
3131
id: lychee
32-
uses: lycheeverse/[email protected].1
32+
uses: lycheeverse/[email protected].3
3333
with:
3434
fail: true
3535
args: --accept '200,201,202,203,204,429,500' --max-concurrency 1 --cache --no-progress --exclude-all-private './**/*.md'

.github/workflows/cleanup-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- name: Cancel deployment run
12-
uses: styfle/[email protected].0
12+
uses: styfle/[email protected].1
1313
with:
1414
ignore_sha: true
1515
workflow_id: 9813 # workflow "Deployment"

.github/workflows/deployment-arm64.yml

Lines changed: 102 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
1-
name: Deployment Release for ARM64 - Run manually!
2-
1+
name: Deployment for Arm64
32
on:
3+
push:
4+
branches:
5+
- main
6+
- main-release
7+
paths-ignore:
8+
- 'docs/**'
9+
- 'src/test/**'
10+
- 'README.md'
11+
tags:
12+
- '*'
13+
pull_request:
14+
merge_group:
415
workflow_dispatch:
516
inputs:
617
notarization:
718
type: boolean
8-
required: true
9-
default: true
10-
push:
11-
branches:
12-
- arm64mac-release
13-
- updateArm64Notarization
19+
required: false
20+
default: false
1421

1522
env:
1623
SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }}
@@ -30,19 +37,26 @@ jobs:
3037
strategy:
3138
fail-fast: false
3239
matrix:
33-
os: [self-hosted]
3440
include:
35-
- os: self-hosted
41+
- os: macos-14
3642
displayName: macOS (Arm64)
3743
suffix: '_arm64'
3844
runs-on: ${{ matrix.os }}
45+
outputs:
46+
major: ${{ steps.gitversion.outputs.Major }}
47+
minor: ${{ steps.gitversion.outputs.Minor }}
48+
branchname: ${{ steps.gitversion.outputs.branchName }}
3949
name: Create installer and portable version for ${{ matrix.displayName }}
4050
steps:
4151
- name: Check secrets presence
4252
id: checksecrets
4353
shell: bash
4454
run: |
45-
[ -n "$BUILDJABREFPRIVATEKEY" ] || exit 1
55+
if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then
56+
echo "secretspresent=NO" >> $GITHUB_OUTPUT
57+
else
58+
echo "secretspresent=YES" >> $GITHUB_OUTPUT
59+
fi
4660
env:
4761
BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }}
4862
- name: Fetch all history for all tags and branches
@@ -61,34 +75,32 @@ jobs:
6175
- name: Setup JDK
6276
uses: actions/setup-java@v4
6377
with:
64-
java-version: 21.0.1
78+
java-version: 21.0.2
6579
distribution: 'liberica'
6680
- name: Clean up keychain
6781
run: |
6882
security delete-keychain signing_temp.keychain ${{runner.temp}}/keychain/notarization.keychain || true
69-
- name: Setup OSX key chain on macOS
83+
- name: Setup OSX key chain on macOS-arm
84+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
7085
uses: apple-actions/import-codesign-certs@v2
7186
with:
7287
p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }}
7388
p12-password: ${{ secrets.OSX_CERT_PWD }}
7489
keychain-password: jabref
7590
- name: Setup OSX key chain on OSX for app id cert
91+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
7692
uses: apple-actions/import-codesign-certs@v2
7793
with:
7894
p12-file-base64: ${{ secrets.OSX_SIGNING_CERT_APPLICATION }}
7995
p12-password: ${{ secrets.OSX_CERT_PWD }}
8096
create-keychain: false
8197
keychain-password: jabref
82-
- name: Create notarization keychain
83-
run: |
84-
mkdir ${{runner.temp}}/keychain
85-
security create-keychain -p jabref ${{runner.temp}}/keychain/notarization.keychain
86-
security set-keychain-settings ${{runner.temp}}/keychain/notarization.keychain
8798
- name: Setup Gradle
88-
uses: gradle/gradle-build-action@v2
99+
uses: gradle/actions/setup-gradle@v3
89100
- name: Prepare merged jars and modules dir (macOS)
90101
run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" prepareModulesDir
91102
- name: Build dmg (macOS)
103+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
92104
shell: bash
93105
run: |
94106
jpackage \
@@ -113,6 +125,7 @@ jobs:
113125
--file-associations buildres/mac/bibtexAssociations.properties \
114126
--jlink-options --bind-services
115127
- name: Build pkg (macOS)
128+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
116129
shell: bash
117130
run: |
118131
jpackage \
@@ -137,32 +150,85 @@ jobs:
137150
--file-associations buildres/mac/bibtexAssociations.properties \
138151
--jlink-options --bind-services
139152
- name: Rename files with arm64 suffix as well
153+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
140154
shell: bash
141155
run: |
142156
mv build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.dmg build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-arm64.dmg
143157
mv build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.pkg build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-arm64.pkg
158+
- name: Setup rsync (macOS)
159+
if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && ((matrix.os == 'macos-14') && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true))) }}
160+
run: brew install rsync
161+
- name: Setup SSH key
162+
if: ${{ (steps.checksecrets.outputs.secretspresent == 'YES') && (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && ((matrix.os != 'macos-14') || !((startsWith(github.ref, 'refs/tags/') || (inputs.notarization == true)))) }}
163+
run: |
164+
echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey
165+
chmod 600 sshkey
166+
- name: Upload to builds.jabref.org (linux, macOS)
167+
# macOS: Negated condition of "Upload to GitHub workflow artifacts store (macOS)"
168+
# Reason: We either upload the non-notarized files - or notarize the files later (and upload these later)
169+
# needs to be on one line; multi line does not work
170+
if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && ((matrix.os == 'ubuntu-latest') || ((matrix.os == 'macos-14') && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true)))) }}
171+
shell: bash
172+
run: |
173+
rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ [email protected]:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/
174+
- name: Upload to GitHub workflow artifacts store (macOS)
175+
if: (matrix.os == 'macos-14') && (steps.checksecrets.outputs.secretspresent == 'YES') && (startsWith(github.ref, 'refs/tags/') || inputs.notarization == true)
176+
uses: actions/upload-artifact@v4
177+
with:
178+
# tbn = to-be-notarized
179+
name: JabRef-macOS-arm-tbn
180+
path: build/distribution
181+
compression-level: 0 # no compression
182+
- name: Upload to GitHub workflow artifacts store
183+
if: (steps.checksecrets.outputs.secretspresent != 'YES')
184+
uses: actions/upload-artifact@v4
185+
with:
186+
# tbn = to-be-notarized
187+
name: JabRef-${{ matrix.os }}
188+
path: build/distribution
189+
compression-level: 0 # no compression
190+
191+
notarize: # outsourced in a separate job to be able to rerun if this fails for timeouts
192+
name: macOS notarization-arm
193+
runs-on: macos-14
194+
needs: [build]
195+
if: ${{ startsWith(github.ref, 'refs/tags/') || inputs.notarization == true }}
196+
steps:
197+
- name: Check secrets presence
198+
id: checksecrets
199+
shell: bash
200+
run: |
201+
if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then
202+
echo "secretspresent=NO" >> $GITHUB_OUTPUT
203+
else
204+
echo "secretspresent=YES" >> $GITHUB_OUTPUT
205+
fi
206+
env:
207+
BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }}
208+
- name: Download from GitHub workflow artifacts store (macOS)
209+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
210+
uses: actions/download-artifact@master
211+
with:
212+
name: JabRef-macOS-arm-tbn
213+
path: build/distribution/
144214
- name: Notarize dmg
145-
if: (startsWith(github.ref, 'refs/tags/') || (${{ inputs.notarization }}))
215+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
146216
shell: bash
147217
run: |
148-
xcrun notarytool store-credentials "notarytool-profile" --apple-id "[email protected]" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" --keychain ${{runner.temp}}/keychain/notarization.keychain
149-
xcrun notarytool submit build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-arm64.dmg --keychain-profile "notarytool-profile" --keychain ${{runner.temp}}/keychain/notarization.keychain --wait
150-
xcrun stapler staple build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-arm64.dmg
218+
xcrun notarytool store-credentials "notarytool-profile" --apple-id "[email protected]" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}"
219+
xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}-arm64.dmg --keychain-profile "notarytool-profile" --wait
220+
xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}-arm64.dmg
151221
- name: Notarize pkg
152-
if: (startsWith(github.ref, 'refs/tags/') || (${{ inputs.notarization }}))
222+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
153223
shell: bash
154224
run: |
155-
xcrun notarytool store-credentials "notarytool-profile" --apple-id "[email protected]" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" --keychain ${{runner.temp}}/keychain/notarization.keychain
156-
xcrun notarytool submit build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-arm64.pkg --keychain-profile "notarytool-profile" --keychain ${{runner.temp}}/keychain/notarization.keychain --wait
157-
xcrun stapler staple build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-arm64.pkg
158-
- name: Upload with rsync
159-
if: ${{ !startsWith(github.ref, 'refs/heads/gh-readonly-queue') }}
225+
xcrun notarytool store-credentials "notarytool-profile" --apple-id "[email protected]" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}"
226+
xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}-arm64.pkg --keychain-profile "notarytool-profile" --wait
227+
xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}-arm64.pkg
228+
- name: Upload to builds.jabref.org
229+
if: (steps.checksecrets.outputs.secretspresent == 'YES')
160230
shell: bash
161231
run: |
162-
rsync -Pavz --itemize-changes --stats --partial-dir=/tmp/partial --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'ssh -p 9922 -i ~/.ssh/id_rsa' build/distribution/ [email protected]:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/
163-
- name: Upload to GitHub workflow artifacts store
164-
if: ${{ !startsWith(github.ref, 'refs/heads/gh-readonly-queue') }}
165-
uses: actions/upload-artifact@v4
166-
with:
167-
name: JabRef-${{ matrix.displayName }}
168-
path: build/distribution
232+
echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey
233+
chmod 600 sshkey
234+
rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ [email protected]:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/

.github/workflows/deployment.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,10 @@ jobs:
9292
- name: Setup JDK
9393
uses: actions/setup-java@v4
9494
with:
95-
java-version: 21.0.1
95+
java-version: 21.0.2
9696
distribution: 'liberica'
9797
- name: Setup Gradle
98-
uses: gradle/gradle-build-action@v2
98+
uses: gradle/actions/setup-gradle@v3
9999
- name: Prepare merged jars and modules dir (macOS)
100100
if: (matrix.os == 'macos-latest') || (steps.checksecrets.outputs.secretspresent == 'NO')
101101
run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" prepareModulesDir
@@ -225,13 +225,15 @@ jobs:
225225
# tbn = to-be-notarized
226226
name: JabRef-macOS-tbn
227227
path: build/distribution
228+
compression-level: 0 # no compression
228229
- name: Upload to GitHub workflow artifacts store
229230
if: (steps.checksecrets.outputs.secretspresent != 'YES')
230231
uses: actions/upload-artifact@v4
231232
with:
232233
# tbn = to-be-notarized
233234
name: JabRef-${{ matrix.os }}
234235
path: build/distribution
236+
compression-level: 0 # no compression
235237
announce:
236238
name: Comment on pull request
237239
runs-on: ubuntu-latest

.github/workflows/refresh-csl-subtrees.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
git add -f src/main/resources/csl-styles
3737
git add -f src/main/resources/csl-locales
3838
git diff-index --quiet HEAD || git commit -m 'Update CSL styles'
39-
- uses: peter-evans/create-pull-request@v5
39+
- uses: peter-evans/create-pull-request@v6
4040
with:
4141
token: ${{ secrets.GH_TOKEN_UPDATE_GRADLE_WRAPPER }}
4242
branch: refresh-csl

.github/workflows/refresh-journal-lists.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,18 @@ jobs:
3030
- name: Set up JDK
3131
uses: actions/setup-java@v4
3232
with:
33-
java-version: 21.0.1
33+
java-version: 21.0.2
3434
distribution: 'liberica'
3535
- name: Setup Gradle
36-
uses: gradle/gradle-build-action@v2
36+
uses: gradle/actions/setup-gradle@v3
3737
- name: Check whether journal-list.mv can be generated (the "real" generation is done inside JabRef's build process)
3838
run: |
3939
./gradlew generateJournalListMV
4040
- name: Persist changes
4141
run: |
4242
git add -f buildres/abbrv.jabref.org
4343
git diff-index --quiet HEAD || git commit -m 'Update journal abbreviation lists'
44-
- uses: peter-evans/create-pull-request@v5
44+
- uses: peter-evans/create-pull-request@v6
4545
with:
4646
token: ${{ secrets.GH_TOKEN_UPDATE_GRADLE_WRAPPER }}
4747
branch: update-journal-lists

.github/workflows/tests-fetchers.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ jobs:
4848
- name: Set up JDK
4949
uses: actions/setup-java@v4
5050
with:
51-
java-version: 21.0.1
51+
java-version: 21.0.2
5252
distribution: 'liberica'
5353
- name: Setup Gradle
54-
uses: gradle/gradle-build-action@v2
54+
uses: gradle/actions/setup-gradle@v3
5555
- name: Run fetcher tests
5656
run: ./gradlew fetcherTest
5757
env:

0 commit comments

Comments
 (0)