Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
1d4907e
Replace Hayagriva layout exporter with a programmatic writer
koppor Jul 13, 2026
36526b9
Link CHANGELOG entry to its pull request
koppor Jul 13, 2026
29028c3
Align chained calls to the IntelliJ code style
koppor Jul 13, 2026
050edbf
Use plain PR-number link text in CHANGELOG (heylogs forge-ref rule)
koppor Jul 13, 2026
c4066e3
Make tools.jackson.databind transitive in jablib
koppor Jul 13, 2026
166c04e
Map comment fields and the year/month date alias in Hayagriva
koppor Jul 16, 2026
0578e33
Merge branch 'main' into hayagriva-writer
koppor Jul 23, 2026
6bbed63
Merge origin/main into hayagriva-writer
koppor Sep 2, 2026
1c2da8a
Fix merge idempotence and API surface of the Hayagriva writer
koppor Sep 3, 2026
d6a5cd6
Merge remote-tracking branch 'origin/main' into hayagriva-writer
koppor Sep 3, 2026
d45ccb4
Apply IntelliJ formatter to HayagrivaEntryWriter
koppor Sep 6, 2026
032f48b
Merge remote-tracking branch 'origin/main' into hayagriva-writer
koppor Sep 7, 2026
5ca6827
Merge origin/main; require jackson.databind transitively
koppor Sep 7, 2026
7dac86a
Merge remote-tracking branch 'origin/main' into hayagriva-writer
koppor Sep 7, 2026
3a1326a
Merge origin/main into hayagriva-writer
koppor Sep 12, 2026
ec46c3f
Merge remote-tracking branch 'origin/main' into hayagriva-writer
koppor Sep 13, 2026
104f490
Fix typo: --remote-label to --remove-label in merge-queue labeling wo…
koppor Sep 16, 2026
5bfed6e
New Crowdin updates (#17185)
Siedlerchr Sep 16, 2026
0e4e212
Chore(deps): Bump jablib/src/main/resources/csl-styles (#17186)
dependabot[bot] Sep 16, 2026
8057af8
Chore(deps): Bump jablib/src/main/resources/csl-locales (#17187)
dependabot[bot] Sep 16, 2026
9019aa1
Chore(deps): Bump docker/build-push-action from 7.3.0 to 7.4.0 (#17196)
dependabot[bot] Sep 16, 2026
4b9aff9
Chore(deps): Bump anthropics/claude-code-action from 1.0.219 to 1.0.2…
dependabot[bot] Sep 16, 2026
cf88261
Chore(deps): Bump codecov/codecov-action from 7.0.0 to 7.1.0 (#17195)
dependabot[bot] Sep 16, 2026
cad638f
Chore(deps): Bump actions/setup-java in /.github/actions/setup-gradle…
dependabot[bot] Sep 16, 2026
6f28280
Chore(deps): Bump com.autonomousapps:dependency-analysis-gradle-plugi…
dependabot[bot] Sep 16, 2026
b51cf61
Chore(deps): Bump com.autonomousapps:dependency-analysis-gradle-plugi…
dependabot[bot] Sep 16, 2026
3b6ccf5
Chore(deps-dev): Bump org.apache.maven.plugins:maven-deploy-plugin (#…
dependabot[bot] Sep 16, 2026
7ba1b8a
Chore(deps): Update thollander/actions-comment-pull-request requireme…
dependabot[bot] Sep 16, 2026
54480a6
Chore(deps): Bump docker/setup-buildx-action from 4.3.0 to 4.4.0 (#17…
dependabot[bot] Sep 16, 2026
b6ba5a0
Chore(deps): Bump net.bytebuddy:byte-buddy in /versions (#17197)
dependabot[bot] Sep 16, 2026
0d7fee5
Fix BibTeX source color on macOS Tahoe (#17198)
Siedlerchr Sep 17, 2026
b5899dd
SLR: Add native query field for catalog specific searches (#17199)
faneeshh Sep 17, 2026
eafab12
New Crowdin updates (#17206)
Siedlerchr Sep 18, 2026
591d2bd
🚧 Fix columns sync on maintable (#17204)
subhramit Sep 18, 2026
19ac0ce
Fix JabRef not starting when Mistral AI is the AI provider (#17212)
koppor Sep 19, 2026
4cda967
Update OpenFastTrace user manual link (#17213)
redcatbear Sep 19, 2026
f9240b8
Remove "status: stale" on push, too (#17221)
koppor Sep 21, 2026
699f1f1
Chore(deps): Bump org.xmlunit:xmlunit-matchers in /versions (#17226)
dependabot[bot] Sep 21, 2026
a091119
Chore(deps): Bump org.xmlunit:xmlunit-core in /versions (#17228)
dependabot[bot] Sep 21, 2026
44bb5c0
Chore(deps): Bump jablib/src/main/resources/csl-styles (#17230)
dependabot[bot] Sep 21, 2026
1b71a69
Chore(deps): Bump jabgui/src/main/themes.jabref.org (#17231)
dependabot[bot] Sep 21, 2026
67ab128
chore(sbom): update CycloneDX SBOM files (#17232)
github-actions[bot] Sep 21, 2026
3992b12
Release v6.0-beta.1
Siedlerchr Sep 21, 2026
0c49dfd
Start new development cycle
Siedlerchr Sep 21, 2026
aebdd70
Chore(deps): Bump org.hisp.dhis:json-tree in /versions (#17227)
dependabot[bot] Sep 21, 2026
1c70a9a
Link PR and pushed commits in the merge-main run summary (#17233)
koppor Sep 22, 2026
b7536d3
Keep library close working when cleanup throws an Error (#16810)
koppor Sep 22, 2026
f0af556
Run the fixed changelog merge driver (#17234)
koppor Sep 22, 2026
c4b0858
Fix run-branch recipe name typo in justfile (#17115)
koppor Sep 22, 2026
6679b4d
Add jabkit git merge-driver for semantic .bib merges (#16838)
koppor Sep 22, 2026
7b7868d
Link pushed commits and their CHANGELOG.md diff in merge run summarie…
koppor Sep 22, 2026
3a4104a
Disable OpenRewrite ForLoopIncrementInUpdate (#17184)
koppor Sep 22, 2026
4b50321
Fix adding "dev: into-stable" for a newly linked bug (#17237)
koppor Sep 22, 2026
d42a1ec
Restore AI chat scroll position when switching back to an entry (#17172)
koppor Sep 22, 2026
c5d988b
Update html-to-node to 0.3.0 and JavaFX to 27 (#17211)
koppor Sep 22, 2026
f82bd2e
Link selected auto-found file on "+" in the File field (#16938)
koppor Sep 22, 2026
fec7080
Label new issues "status: needs-triage" and block /assign-me on them …
koppor Sep 22, 2026
3fad03a
Make case-sensitive search work in linked files (#17002)
koppor Sep 22, 2026
bec412c
New Crowdin updates (#17242)
Siedlerchr Sep 22, 2026
0a1359b
Chore(deps): Bump org.itsallcode.openfasttrace:openfasttrace-exporter…
dependabot[bot] Sep 22, 2026
17d04e5
Chore(deps): Bump org.itsallcode.openfasttrace:openfasttrace-api (#17…
dependabot[bot] Sep 22, 2026
18e5f46
Chore(deps): Bump org.itsallcode.openfasttrace:openfasttrace (#17243)
dependabot[bot] Sep 22, 2026
617ad67
Chore(deps): Bump org.itsallcode.openfasttrace:openfasttrace-exporter…
dependabot[bot] Sep 22, 2026
1f4c623
Chore(deps): Bump org.itsallcode.openfasttrace:openfasttrace-api (#17…
dependabot[bot] Sep 22, 2026
80e66fd
Chore(deps): Bump org.itsallcode.openfasttrace:openfasttrace (#17247)
dependabot[bot] Sep 22, 2026
69daa71
Chore(deps): Bump org.itsallcode.openfasttrace:openfasttrace-core (#1…
dependabot[bot] Sep 22, 2026
02e5e02
Chore(deps): Bump org.hibernate.validator:hibernate-validator (#17252)
dependabot[bot] Sep 22, 2026
3de7bc9
Chore(deps): Bump org.itsallcode:openfasttrace-gradle from 3.2.0 to 3…
dependabot[bot] Sep 22, 2026
0e6ae6e
Update Grobid url from http to https (#17254)
Siedlerchr Sep 22, 2026
6bdb5e7
Clarify requirements documentation (#17161)
InAnYan Sep 23, 2026
79fd996
Merge remote-tracking branch 'origin/main' into hayagriva-writer
koppor Sep 23, 2026
bb805a7
Move Hayagriva export CHANGELOG entry to Unreleased, drop internal Re…
koppor Sep 23, 2026
3be0eb0
Chore(deps): Bump JetBrains/junie-github-action from 1.7.9 to 1.7.12 …
dependabot[bot] Sep 23, 2026
4b4112f
Chore(deps): Bump ruby/setup-ruby from 1.321.0 to 1.325.0 (#17261)
dependabot[bot] Sep 23, 2026
24d2748
Chore(deps): Bump zauguin/install-texlive from 4.3.0 to 4.4.0 (#17262)
dependabot[bot] Sep 23, 2026
65141c6
Chore(deps): Bump anthropics/claude-code-action from 1.0.226 to 1.0.2…
dependabot[bot] Sep 23, 2026
1deae15
Chore(deps): Bump jablib/src/main/resources/csl-styles (#17258)
dependabot[bot] Sep 23, 2026
d91bb04
Chore(deps): Bump actions/setup-java from 6.0.0 to 6.0.1 (#17260)
dependabot[bot] Sep 23, 2026
a8ba7a1
Chore(deps): Bump com.dlsc.gemsfx:gemsfx in /versions (#17264)
dependabot[bot] Sep 23, 2026
d91b902
Chore(deps): Bump com.github.ben-manes.caffeine:caffeine in /versions…
dependabot[bot] Sep 23, 2026
ae63943
Chore(deps): Bump tools.jackson:jackson-bom in /versions (#17265)
dependabot[bot] Sep 23, 2026
ed51069
Stale PR automation only for PRs from forks (#17238)
koppor Sep 23, 2026
eead56f
Remove Reflection, show action descriptions as tooltips, fix tooltips…
calixtus Sep 23, 2026
1d312ff
Fix NPE when accepting backup changes that add groups (#17165)
koppor Sep 23, 2026
359309f
Add ARM64 Flatpak build channels (#17267)
Siedlerchr Sep 23, 2026
cd4b2e7
Avoid restoring Flatpak archive ownership (#17272)
Siedlerchr Sep 23, 2026
11badbd
Chore(deps): Bump io.github.classgraph:classgraph in /versions (#17281)
dependabot[bot] Sep 24, 2026
b26ed9f
Chore(deps): Bump org.mockito:mockito-core in /versions (#17284)
dependabot[bot] Sep 24, 2026
80f63d6
Chore(deps): Bump org.apache.httpcomponents.core5:httpcore5 in /versi…
dependabot[bot] Sep 24, 2026
2aca86b
Chore(deps): Bump org.slf4j:slf4j-api from 2.0.19 to 2.0.20 in /versi…
dependabot[bot] Sep 24, 2026
05942d1
Chore(deps): Bump org.slf4j:jul-to-slf4j in /versions (#17283)
dependabot[bot] Sep 24, 2026
f56d504
Upload Flatpak bundles to builds server (#17273)
Siedlerchr Sep 24, 2026
bf9352e
Add "Contribute to JabRef" to the Help menu (#17162)
koppor Sep 24, 2026
403c41d
Fix flatpak (#17287)
pluto-han Sep 25, 2026
c9f6546
Chore(deps): Bump gradle-wrapper from 9.7.1 to 9.8.0 (#17288)
dependabot[bot] Sep 25, 2026
c9543b1
New translations jabref_en.properties for (Italian) (#17289)
Siedlerchr Sep 25, 2026
a1fa7c2
Allow Backspace in keyboard shortcuts (#17277)
Gautam-aman Sep 25, 2026
050a258
Import metadata from DNB MARC records (#17217)
Siedlerchr Sep 25, 2026
1f4641f
Fix CrossRefTest threshold verification and live API title update (#1…
A7MEDRAGAB82 Sep 25, 2026
eb78c4b
Fix: Do not treat @misc as strictly different entry type (#16578) (#1…
A7MEDRAGAB82 Sep 26, 2026
e568b18
Update CHECKLIST.md (#17294)
koppor Sep 26, 2026
32a6f24
Add OCRmyPDF plugins as new engines support (EasyOCR,PaddleOCR,AppleO…
AbdoSol1iman Sep 26, 2026
c6de5d3
New translations jabref_en.properties for (French) (#17297)
Siedlerchr Sep 26, 2026
b0c1920
Keep JabRef running when an LSP client sends exit (#17303)
koppor Sep 27, 2026
e99736e
Align Flatpak manifest with Flathub integration (#17298)
Siedlerchr Sep 27, 2026
458e97c
Author port PRs as jabref-machine (#17305)
koppor Sep 27, 2026
0a4eea0
Add INVEST reference to requirements (#17301)
subhramit Sep 27, 2026
8248121
Add typos spell check to CI and fix found typos (#17306)
koppor Sep 27, 2026
046d706
New Crowdin updates (#17311)
Siedlerchr Sep 27, 2026
d7e0302
Write braced Hayagriva authors as plain names
koppor Sep 28, 2026
ca294d5
Merge fix-17316-hayagriva-braces into hayagriva-writer
koppor Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: "Bug report"
description: Create a report to help us improve
type: Bug
labels: ["status: needs-triage"]
body:
- type: markdown
attributes:
Expand All @@ -14,7 +15,7 @@ body:
label: JabRef version
options:
- "5.15 (latest release)"
- "6.0-alpha.6"
- "6.0-beta.1"
- Latest development branch build (please note build date below)
- Other (please describe below)
description: The version as shown in the about dialog.
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/suggestion-for-improvement.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Suggestion for improvement
about: Suggest an enhancement
title: ''
labels: ''
labels: 'status: needs-triage'
type: 'feature'
assignees: ''

Expand Down
31 changes: 27 additions & 4 deletions .github/actions/merge-upstream-branch/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ inputs:
required: false
default: "main"
driver-revision:
description: "Commit of maven-flow/changelog-merge-driver to run (immutable pin; bump explicitly to pick up driver fixes)"
description: "Commit of changelog-merge-driver to run (immutable pin; bump explicitly to pick up driver fixes)"
required: false
default: "4f9446a29a9e6b935b0fd710aa047f9ff03641ad"
default: "efd607a74d7dc52038e24d4a8994e3c27d6e6818"

runs:
using: "composite"
Expand All @@ -34,6 +34,8 @@ runs:
path: ~/.jbang
key: jbang-changelog-merge-driver-${{ inputs.driver-revision }}

# Runs the fix of https://github.com/maven-flow/changelog-merge-driver/pull/14 from its fork; switch back
# to maven-flow once that is merged.
- name: Merge upstream/${{ inputs.base-branch }}
shell: bash
env:
Expand All @@ -45,13 +47,34 @@ runs:
# The PR head may live in a fork; the base branch always comes from JabRef/jabref
git remote add upstream "https://github.com/JabRef/jabref.git" || true
git fetch upstream "$BASE_BRANCH"
jbang trust add https://github.com/maven-flow/changelog-merge-driver/
jbang trust add https://github.com/koppor/changelog-merge-driver/
# Pinned to an immutable commit - never the repo's mutable HEAD/alias - since the
# driver runs with a push-capable token in this job.
git config merge.changelog.driver "jbang https://github.com/maven-flow/changelog-merge-driver/blob/$DRIVER_REVISION/ChangelogMergeDriver.java %A %O %B --rebase"
git config merge.changelog.driver "jbang https://github.com/koppor/changelog-merge-driver/blob/$DRIVER_REVISION/ChangelogMergeDriver.java %A %O %B --rebase"
# Overrides the checked-in "CHANGELOG.md merge=union" without dirtying the working tree
echo "CHANGELOG.md merge=changelog" >> "$(git rev-parse --git-dir)/info/attributes"
git config user.email "github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
before=$(git rev-parse HEAD)
git merge --no-ff --no-edit "upstream/$BASE_BRANCH"
git push origin "HEAD:refs/heads/$TARGET_BRANCH"

# Link the pushed commits in the run summary; the merge commit's full diff is large,
# so its CHANGELOG.md diff gets its own link (GitHub's file anchor is the SHA-256 of the path)
repo_url=$(git remote get-url origin)
repo_url=${repo_url%.git}
changelog_anchor=$(printf %s CHANGELOG.md | sha256sum | cut -d' ' -f1)
commits=$(git log --first-parent --format=%H "$before..HEAD")
{
if [ -z "$commits" ]; then
echo "No commit pushed."
else
echo "Commits:"
for c in $commits; do
echo "- $repo_url/commit/$c"
if ! git diff --quiet "$c^" "$c" -- CHANGELOG.md; then
echo " - [CHANGELOG.md]($repo_url/commit/$c#diff-$changelog_anchor)"
fi
done
fi
} >> "$GITHUB_STEP_SUMMARY"
2 changes: 1 addition & 1 deletion .github/actions/setup-gradle/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ runs:
using: composite
steps:
- name: Setup JDK
uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6
with:
java-version: ${{ inputs.javaVersion }}
distribution: ${{ inputs.distribution }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/automerge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ jobs:
env:
GH_TOKEN: ${{secrets.GH_TOKEN_JABREF_MACHINE_PR_APPROVE}}
- name: Approve PR
if: steps.shouldrun.outputs.shouldrun == 'true'
# jabref-machine cannot approve its own PRs (ports); port-to-other-branch.yml approves those
if: steps.shouldrun.outputs.shouldrun == 'true' && github.event.pull_request.user.login != 'jabref-machine'
# Guard: a push directly followed by adding the "automerge" label makes both this
# workflow (live label query) and on-pr-labeled.yml approve — skip if an
# un-dismissed approval by jabref-machine already exists.
Expand Down
127 changes: 126 additions & 1 deletion .github/workflows/binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -566,8 +566,31 @@ jobs:
echo "Link to PR: ${{ github.event.pull_request.html_url }}" >> _h5ai.header.md
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.normalize.outputs.branch }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' _h5ai.header.md jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.normalize.outputs.branch }}/

flatpak-channel:
runs-on: ubuntu-slim
outputs:
channel: ${{ steps.channel.outputs.channel }}
steps:
- name: Determine Flatpak channel
id: channel
shell: bash
run: |
channel=unsupported

if [[ "$GITHUB_REF" == "refs/heads/main" ]]; then
channel=nightly
elif [[ "$GITHUB_REF" == refs/tags/* ]]; then
if [[ "$GITHUB_REF_NAME" == *-beta* ]]; then
channel=beta
elif [[ "$GITHUB_REF_NAME" =~ ^v?[0-9]+(\.[0-9]+)+$ ]]; then
channel=stable
fi
fi

echo "channel=$channel" >> "$GITHUB_OUTPUT"

build:
needs: [ compute-matrix, conditions, disk-space-check, pre-build ]
needs: [ compute-matrix, conditions, disk-space-check, flatpak-channel, pre-build ]
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -879,6 +902,17 @@ jobs:
subdir: ""
secretsPresent: "${{ needs.conditions.outputs.secretspresent }}"

- name: Upload portable JabRef for Flatpak packaging
if: >
needs.conditions.outputs.should-build == 'true' &&
needs.flatpak-channel.outputs.channel != 'unsupported' &&
startsWith(matrix.os, 'ubuntu')
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: flatpak-source (${{ matrix.displayName }})
path: jabgui/build/packages/${{ matrix.os }}/JabRef-portable_linux${{ matrix.suffix }}.tar.gz
if-no-files-found: error

- name: Upload jabgui and jabls-cli to GitHub workflow artifacts store for notarization (macOS)
if: ${{ needs.conditions.outputs.should-build == 'true' && (startsWith(matrix.os, 'macos')) && (needs.conditions.outputs.should-notarize == 'true') }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
Expand All @@ -890,6 +924,97 @@ jobs:
jabls-cli/build/packages/${{ matrix.os }}
compression-level: 0 # no compression

flatpak:
needs: [ build, conditions, flatpak-channel, pre-build ]
if: needs.conditions.outputs.should-build == 'true' && needs.flatpak-channel.outputs.channel != 'unsupported'
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
os: ubuntu-22.04
displayName: linux-amd64
archive: JabRef-portable_linux.tar.gz
suffix: ''
- arch: aarch64
os: ubuntu-22.04-arm
displayName: linux-arm
archive: JabRef-portable_linux_arm64.tar.gz
suffix: _arm64
runs-on: ${{ matrix.os }}
name: ${{ matrix.displayName }} ${{ needs.flatpak-channel.outputs.channel }} Flatpak
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48
options: --privileged
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Download portable JabRef
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: flatpak-source (${{ matrix.displayName }})
path: flatpak

- name: Configure the manifest for the local portable archive
env:
ARCH: ${{ matrix.arch }}
ARCHIVE: ${{ matrix.archive }}
run: |
flatpak-builder --show-manifest flatpak/org.jabref.jabref.yaml | jq --arg arch "$ARCH" --arg archive "$ARCHIVE" '
.modules[0].sources |= map(
if .["only-arches"] == [$arch]
then del(.url, .sha256) + {"path": $archive}
else .
end
)
' > flatpak/org.jabref.jabref.ci.json

- name: Build and upload Flatpak
uses: flatpak/flatpak-github-actions/flatpak-builder@79327416609af08178ad73b352877e51450790b3 # v6
with:
manifest-path: flatpak/org.jabref.jabref.ci.json
arch: ${{ matrix.arch }}
branch: ${{ needs.flatpak-channel.outputs.channel }}
bundle: JabRef-${{ needs.pre-build.outputs.Major }}.${{ needs.pre-build.outputs.Minor }}${{ matrix.suffix }}.flatpak
artifact-name: Flatpak bundle (${{ matrix.arch }})

upload-flatpak:
needs: [ conditions, disk-space-check, flatpak, pre-build ]
if: needs.conditions.outputs.upload-to-builds-jabref-org == 'true' && needs.disk-space-check.outputs.available == 'true'
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
displayName: linux-amd64
suffix: ''
- arch: aarch64
displayName: linux-arm
suffix: _arm64
runs-on: ubuntu-22.04
name: Upload ${{ matrix.displayName }} Flatpak to builds.jabref.org
steps:
- name: Download Flatpak bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: Flatpak bundle (${{ matrix.arch }})
path: flatpak

- name: Set up SSH key
run: |
echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey
chmod 600 sshkey

- name: Upload Flatpak bundle
shell: bash
run: |
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.pre-build.outputs.branch }}/${{ matrix.displayName }} && rsync" \
-e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' \
flatpak/JabRef-${{ needs.pre-build.outputs.Major }}.${{ needs.pre-build.outputs.Minor }}${{ matrix.suffix }}.flatpak \
jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.pre-build.outputs.branch }}/${{ matrix.displayName }}/

jabkit-native:
needs: [ compute-matrix, conditions, disk-space-check, pre-build ]
strategy:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/claude.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ jobs:

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@5ccc3a35a6367cdb8e6fbd0728287467540ecfe2 # v1
uses: anthropics/claude-code-action@cfc3eb22bfed5c26ef66e3223c982af27e4524de # v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
4 changes: 2 additions & 2 deletions .github/workflows/dockerimages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
- name: Set up QEMU
uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4
uses: docker/setup-buildx-action@594f3bf4285d9ea8dc53c9a0c9c4092420091003 # v4
- name: Fetch all history for all tags and branches
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
Expand All @@ -71,7 +71,7 @@ jobs:
id: gitversion
uses: gittools/actions/gitversion/execute@7417b1089e2c7de93510f1901d656ddf60bb024f # v4.7.0
- name: Build and push
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7
uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7
with:
push: >
${{
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/gource.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ jobs:
fail-fast: false
matrix:
include:
- title: 'JabRef v6.0 (since alpha.6) | more information at contribute.jabref.org'
# Last alpha release 2026-02-20, but want to have some seconds before
start: '2026-02-14'
- title: 'JabRef v6.0 (since beta.1) | more information at contribute.jabref.org'
# Last beta release 2026-09-21, but want to have some seconds before
start: '2026-09-14'
end: ''
file: 'jabref-v6.0-dev.mp4'
# - title: 'JabRef v6.0-alpha2 | more information at contribute.jabref.org'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/junie.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ jobs:

- name: Run Junie
id: junie
uses: JetBrains/junie-github-action@2f33c71d9d74cbbe1662bddeb0d1f6f59ea05b29 # v1.7.9
uses: JetBrains/junie-github-action@c49dfcdf95b75650b75a64b504673f05c89a9819 # v1.7.12
with:
junie_api_key: ${{ secrets.JUNIE_API_KEY }}
4 changes: 2 additions & 2 deletions .github/workflows/latex.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Check out code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Install TeX Live
uses: zauguin/install-texlive@f5e7d0b117035fff797d4392ea94131747e03d60 # v4
uses: zauguin/install-texlive@6671d0c62046c7e349fe154d5208fe746b07e037 # v4.4.0
with:
package_file: jablib/src/test/latex/Texlivefile
check-latex:
Expand Down Expand Up @@ -88,7 +88,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install TeX Live
uses: zauguin/install-texlive@f5e7d0b117035fff797d4392ea94131747e03d60 # v4
uses: zauguin/install-texlive@6671d0c62046c7e349fe154d5208fe746b07e037 # v4.4.0
with:
package_file: jablib/src/test/latex/Texlivefile

Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/merge-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,15 @@ jobs:
ref: ${{ steps.resolve.outputs.branch }}
token: ${{ secrets.GH_TOKEN_JABREF_MACHINE_PR_APPROVE || github.token }}

- name: Link PR in summary
env:
PR_NUMBER: ${{ inputs.pr || github.event.pull_request.number }}
run: |
{
echo "PR: https://github.com/${{ github.repository }}/pull/$PR_NUMBER"
echo
} >> "$GITHUB_STEP_SUMMARY"

# Pushes the merge commit back to the PR branch (the reason this workflow exists).
# "$/" resolves the action from this workflow's own commit, not from the workspace -
# the workspace holds the PR head (possibly a fork), whose copy of the action must
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/on-issue-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,16 @@ jobs:
contents: read
issues: write
steps:
- name: Decline self-assignment of untriaged issues
id: untriaged
if: "${{ contains(github.event.comment.body, '/assign-me') && contains(github.event.issue.labels.*.name, 'status: needs-triage') }}"
run: |
gh issue comment "${{ github.event.issue.html_url }}" --body "Hi @${{ github.event.comment.user.login }}, this issue needs triage by a maintainer first. Please wait until the \`status: needs-triage\` label is removed."
env:
GH_TOKEN: ${{ github.token }}
- name: Assign the user or unassign stale assignments
id: assign
if: ${{ steps.untriaged.outcome == 'skipped' }}
uses: takanome-dev/assign-issue-action@fad4b83750f7df31e03c2a42e8f1880b0b4b3573 # edge
with:
github_token: '${{ secrets.GH_TOKEN_ASSIGN_ISSUE_ACTION || github.token }}'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/on-issue-labeled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ jobs:
echo "EOF"
} >> "$GITHUB_OUTPUT"
- name: Comment on issue
uses: thollander/actions-comment-pull-request@65f9e5c9a1f2cd378bd74b2e057c9736982a8e74 # v3
uses: thollander/actions-comment-pull-request@e4a76dd2b0a3c2027c3fd84147a67c22ee4c90fa # v3
with:
message: ${{ steps.wisdom.outputs.message }}
comment-tag: ${{ env.LABEL }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/on-pr-bug-linked.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ jobs:
fi
# GitHub stores the type name in lower case ("bug") while the issue template writes "Bug"
if [ "$labeled" = false ] && [ "${type,,}" = "bug" ]; then
gh pr edit "$PR_NUMBER" --add-label "dev: into-stable"
# `gh pr edit` queries fields that need the read:org scope, which the token lacks
gh api "repos/JabRef/jabref/issues/$PR_NUMBER/labels" -f "labels[]=dev: into-stable" > /dev/null
echo "Added \`dev: into-stable\`" >> "$GITHUB_STEP_SUMMARY"
labeled=true
fi
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/on-pr-labeled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ jobs:
cancel-in-progress: false
steps:
- name: Approve PR
# jabref-machine cannot approve its own PRs (ports); port-to-other-branch.yml approves those
if: github.event.pull_request.user.login != 'jabref-machine'
# Guard: automerge.yml (running for a push made just before the label was added)
# queries labels live and may approve concurrently — skip if an un-dismissed
# approval by jabref-machine already exists.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/on-pr-merge-queued.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
ref="${GITHUB_REF_NAME}"
if [[ "$ref" =~ ^gh-readonly-queue/[^/]+/pr-([0-9]+)- ]]; then
pr="${BASH_REMATCH[1]}"
gh pr edit "$pr" --repo "$GITHUB_REPOSITORY" --remove-label "status: ready-for-review" --remote-label "status: awaiting-second-review" --add-label "status: to-be-merged"
gh pr edit "$pr" --repo "$GITHUB_REPOSITORY" --remove-label "status: ready-for-review" --remove-label "status: awaiting-second-review" --add-label "status: to-be-merged"
else
echo "Cannot extract PR number from ref: $ref" >&2
exit 1
Expand Down
Loading
Loading