Skip to content

Commit 5aa63d2

Browse files
committed
Merge branch 'main' of https://github.com/JabRef/jabref into fix-for-issue-JabRef#12272
2 parents d920d6c + dd3b8b2 commit 5aa63d2

File tree

81 files changed

+754
-311
lines changed

Some content is hidden

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

81 files changed

+754
-311
lines changed

.gitattributes

+1
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ gradlew text eol=lf
1313
*.properties text eol=lf
1414

1515
CHANGELOG.md merge=union
16+
src/main/resources/l10n/JabRef_en.properties merge=union

.github/PULL_REQUEST_TEMPLATE.md

+13-7
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
1-
<!-- YOU HAVE TO MODIFY THIS TEXT TO FIT YOUR PR. OTHERWISE, YOUR PR WILL BE CLOSED WITHOUT FURTHER COMMENT. -->
2-
3-
Describe the changes you have made here: what, why, ...
1+
<!-- YOU HAVE TO MODIFY THE TEXT BELOW TO FIT YOUR PR. OTHERWISE, YOUR PR WILL BE CLOSED WITHOUT FURTHER COMMENT. -->
42

53
<!-- LINK THE ISSUE WITH THE "Closes" KEYWORD -->
6-
<!-- Example: Closes (link) OR Closes #xyz -->
4+
<!-- Example: Closes (link) OR Closes #12345 -->
5+
6+
Closes _____
7+
Describe the changes you have made here: what, where, why, ...
8+
If your work is not yet complete, please open a draft pull request. In that case, outline your intended next steps. Do you need feedback? Will you continue in parallel? ...
79

810
### Mandatory checks
911

1012
<!--
11-
- Go through the list below. Please don't remove any items.
12-
- [x] done; [ ] not done / not applicable
13+
Go throgh the checklist below. It is mandatory, even for a draft pull request.
14+
15+
Keep ALL the items. Mark them as follows:
16+
[x] done
17+
[ ] not done
18+
[/] not applicable
1319
-->
1420

1521
- [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)
1622
- [ ] Change in `CHANGELOG.md` described in a way that is understandable for the average user (if change is visible to the user)
1723
- [ ] Tests created for changes (if applicable)
1824
- [ ] Manually tested changed features in running JabRef (always required)
19-
- [ ] Screenshots added in PR description (for UI changes)
25+
- [ ] Screenshots added in PR description (if change is visible to the user)
2026
- [ ] [Checked developer's documentation](https://devdocs.jabref.org/): Is the information available and up to date? If not, I outlined it in this pull request.
2127
- [ ] [Checked documentation](https://docs.jabref.org/): Is the information available and up to date? If not, I created an issue at <https://github.com/JabRef/user-documentation/issues> or, even better, I submitted a pull request to the documentation repository.

.github/ghprcomment.yml

+22-6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
Please carefully follow [the setup guide for the codestyle](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-13-code-style.html).
66
Afterwards, please [run checkstyle locally](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-13-code-style.html#run-checkstyle) and fix the issues.
77
8+
89
In case of issues with the import order, double check that you [activated Auto Import](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-13-code-style.html#enable-proper-import-cleanup).
910
You can trigger fixing imports by pressing <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>O</kbd> to trigger [Optimize Imports](https://www.jetbrains.com/guide/tips/optimize-imports/).
1011
- jobName: OpenRewrite
@@ -14,20 +15,23 @@
1415
The issues found can be **automatically fixed**.
1516
Please execute the gradle task *`rewriteRun`*, check the results, commit, and push.
1617
18+
1719
You can check the detailed error output by navigating to your pull request, selecting the tab "Checks", section "Tests" (on the left), subsection "OpenRewrite".
1820
- jobName: Modernizer
1921
message: >
2022
Your code currently does not meet JabRef's code guidelines.
2123
We use [Gradle Modernizer Plugin](https://github.com/andygoossens/gradle-modernizer-plugin#gradle-modernizer-plugin) to ensure "modern" Java coding practices.
2224
Please fix the detected errors, commit, and push.
2325
26+
2427
You can check the detailed error output by navigating to your pull request, selecting the tab "Checks", section "Tests" (on the left), subsection "Modernizer".
2528
- jobName: Markdown
2629
message: >
2730
You modified Markdown (`*.md`) files and did not meet JabRef's rules for consistently formatted Markdown files.
2831
To ensure consistent styling, we have [markdown-lint](https://github.com/DavidAnson/markdownlint) in place.
2932
[Markdown lint's rules](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md#rules) help to keep our Markdown files consistent within this repository and consistent with the Markdown files outside here.
3033
34+
3135
You can check the detailed error output by navigating to your pull request, selecting the tab "Checks", section "Tests" (on the left), subsection "Markdown".
3236
- jobName: CHANGELOG.md
3337
message: |
@@ -39,17 +43,16 @@
3943
In the area "Some checks were not successful", locate "Tests / Unit tests (pull_request)" and click on "Details".
4044
This brings you to the test output.
4145
46+
4247
You can then run these tests in IntelliJ to reproduce the failing tests locally.
4348
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.
4449
- jobName: no-force-push
4550
message: >
4651
Do not force-push!
47-
Force push is off limits and very bad style when working together on a project.
48-
([Mainly because it is not supported well by GitHub istself.](https://github.com/orgs/community/discussions/3478))
49-
Commits will be lost, comments on commits will loose their context.
50-
This makes it harder to review.
51-
In the end, all commits will be [squashed](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-commits) either way before being merged into the `main`` branch.
52-
- jobName: move_issue
52+
Force pushing is a very bad practice when working together on a project (mainly because it is [not supported well by GitHub itself](https://github.com/orgs/community/discussions/3478)).
53+
Commits are lost and comments on commits lose their context, thus making it harder to review changes.
54+
At the end, all commits will be [squashed](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-commits) anyway before being merged into the `main` branch.
55+
- jobName: 'Mark issue as in progress'
5356
message: |
5457
Your pull request needs to link an issue.
5558
@@ -81,3 +84,16 @@
8184
- ✅ `Fixes https://github.com/JabRef/jabref/issues/xyz` links pull-request to issue. Merging the PR will close the issue.
8285
- ✅ `Fixes https://github.com/Koppor/jabref/issues/xyz` links pull-request to issue. Merging the PR will close the issue.
8386
- ❌ `Fixes [#xyz](https://github.com/JabRef/jabref/issues/xyz)` links pull-request to issue. Merging the PR will **NOT** close the issue.
87+
- jobName: 'Conflicts with target branch'
88+
message: >
89+
Your pull request conflicts with the target branch.
90+
91+
92+
Please [merge `upstream/main`](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-branch-from-the-command-line) with your code.
93+
For a step-by-step guide to resolve merge conflicts, see <https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line>.
94+
- jobName: 'Submodules not modified'
95+
message: >
96+
Your pull request modified git submodules.
97+
98+
99+
Please follow our [FAQ on submodules](https://devdocs.jabref.org/code-howtos/faq.html#submodules) to fix.

.github/workflows/check-links.yml

+9-18
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
name: Check external href links in the documentation
22

33
on:
4-
push:
4+
pull_request:
55
paths:
66
- '.github/workflows/check-links.yml'
7-
- '.lycheeignore'
8-
- 'lychee.toml'
7+
- '.linkspector.yml'
98
- '**/*.md'
10-
paths-ignore:
11-
- 'CHANGELOG.md'
129
schedule:
1310
# Run on the first of each month at 9:00 AM (See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07)
1411
- cron: "0 9 1 * *"
@@ -19,22 +16,16 @@ concurrency:
1916
cancel-in-progress: true
2017

2118
jobs:
22-
lychee:
23-
if: github.repository_owner == 'JabRef'
19+
check-links:
20+
if: github.repository == 'JabRef/jabref'
2421
runs-on: ubuntu-latest
2522
steps:
2623
- uses: actions/checkout@v4
2724
with:
2825
show-progress: 'false'
29-
- name: Restore lychee cache
30-
uses: actions/cache@v4
26+
- name: Run linkspector
27+
uses: umbrelladocs/action-linkspector@v1
3128
with:
32-
path: .lycheecache
33-
key: cache-lychee-${{ github.sha }}
34-
restore-keys: cache-lychee-
35-
- name: Link Checker
36-
id: lychee
37-
uses: lycheeverse/[email protected]
38-
with:
39-
fail: true
40-
args: --accept '200,201,202,203,204,403,429,500' --max-concurrency 1 --cache --no-progress --exclude-all-private './**/*.md'
29+
github_token: ${{ secrets.github_token }}
30+
reporter: github-pr-review
31+
fail_level: any
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Delete old workflow runs (automatically)
2+
on:
3+
schedule:
4+
- cron: '0 0 1 * *'
5+
jobs:
6+
del_runs:
7+
runs-on: ubuntu-latest
8+
permissions:
9+
actions: write
10+
contents: read
11+
steps:
12+
- name: Delete workflow runs
13+
uses: Mattraks/delete-workflow-runs@v2
14+
with:
15+
token: ${{ github.token }}
16+
repository: ${{ github.repository }}
17+
retain_days: 30
18+
keep_minimum_runs: 6

.github/workflows/delete-old-runs.yml .github/workflows/delete-old-runs-manually.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Delete old workflow runs
1+
name: Delete old workflow runs (manually)
22
on:
33
workflow_dispatch:
44
inputs:

.github/workflows/deployment-arm64.yml

-2
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,6 @@ jobs:
100100
keychain-password: jabref
101101
- name: Setup Gradle
102102
uses: gradle/actions/setup-gradle@v4
103-
with:
104-
gradle-home-cache-cleanup: true
105103
- name: Prepare merged jars and modules dir (macOS)
106104
run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" prepareModulesDir
107105
- name: Build dmg (macOS)

.github/workflows/deployment-jdk-ea.yml

-2
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,6 @@ jobs:
193193
distribution: 'temurin'
194194
- name: Set up Gradle
195195
uses: gradle/actions/setup-gradle@v4
196-
with:
197-
gradle-home-cache-cleanup: true
198196
- name: Prepare merged jars and modules dir
199197
# prepareModulesDir is executing a build, which should run through even if no upload to builds.jabref.org is made
200198
if: (steps.checksecrets.outputs.secretspresent == 'NO')

.github/workflows/deployment.yml

-2
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,6 @@ jobs:
9494
distribution: 'temurin'
9595
- name: Setup Gradle
9696
uses: gradle/actions/setup-gradle@v4
97-
with:
98-
gradle-home-cache-cleanup: true
9997
- name: Prepare merged jars and modules dir (macOS)
10098
# prepareModulesDir is executing a build, which should run through even if no upload to builds.jabref.org is made
10199
if: (matrix.os == 'macos-13') || (steps.checksecrets.outputs.secretspresent == 'NO')

.github/workflows/gource.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ concurrency:
1515

1616
jobs:
1717
action:
18-
if: github.repository_owner == 'JabRef'
18+
if: github.repository == 'JabRef/jabref'
1919
runs-on: ubuntu-latest
2020
steps:
2121
- name: 'Checkout'

.github/workflows/assign-issue.yml .github/workflows/on-issue-comment.yml

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
name: Assign Issue
1+
name: On isuse comment
22

33
on:
4-
schedule:
5-
- cron: 4 12 * * *
64
issue_comment:
75
types: [created]
8-
workflow_dispatch:
96

107
jobs:
118
assign:
12-
if: github.repository_owner == 'JabRef'
9+
if: github.repository == 'JabRef/jabref'
1310
runs-on: ubuntu-latest
1411
permissions:
1512
issues: write
@@ -32,11 +29,14 @@ jobs:
3229
3330
Happy coding! 🚀
3431
35-
⏳ Please note, you will be automatically unassigned if the issue isn't closed within **{{ total_days }} days** (by **{{ unassigned_date }}**). A maintainer can also add the "**{{ pin_label }}**"" label to prevent automatic unassignment.
36-
- name: Move Issue to "Assigned" Column in "Candidates for University Projects"
32+
⏳ Please note, you will be automatically unassigned if the issue isn't closed within **{{ total_days }} days** (by **{{ unassigned_date }}**). A maintainer can also add the "**{{ pin_label }}**" label to prevent automatic unassignment.
33+
assignment_suggestion_comment: >
34+
👋 Hey @{{ handle }}, looks like you’re eager to work on this issue—great! 🎉
35+
It also looks like you skipped reading our [CONTRIBUTING.md](https://github.com/JabRef/jabref/blob/main/CONTRIBUTING.md), which explains exactly how to participate. No worries, it happens to the best of us.
36+
Give it a read, and you’ll discover the ancient wisdom of assigning issues to yourself. Trust me, it’s worth it. 🚀
37+
- name: Move issue corresponding column in "Candidates for University Projects"
3738
uses: m7kvqbe1/github-action-move-issues@main
38-
# Action currently works for issues only - pre-condition: https://github.com/takanome-dev/assign-issue-action/issues/269 fixed
39-
if: github.event_name == 'issue_comment'
39+
if: ${{ steps.assign.outputs.assigned == 'yes' || steps.assign.outputs.unassigned == 'yes' }}
4040
with:
4141
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
4242
project-url: "https://github.com/orgs/JabRef/projects/3"
@@ -45,9 +45,9 @@ jobs:
4545
ignored-columns: ""
4646
default-column: "Free to take"
4747
skip-if-not-in-project: true
48-
- name: Move Issue to "Assigned" Column in "Good First Issues"
48+
- name: Move issue corresponding column in "Good First Issues"
4949
uses: m7kvqbe1/github-action-move-issues@main
50-
if: github.event_name == 'issue_comment'
50+
if: ${{ steps.assign.outputs.assigned == 'yes' || steps.assign.outputs.unassigned == 'yes' }}
5151
with:
5252
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
5353
project-url: "https://github.com/orgs/JabRef/projects/5"

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: On labeled issue
1+
name: On issue labeled
22

33
on:
44
issues:
+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: On issue unassigned
2+
3+
on:
4+
issues:
5+
types:
6+
- unassigned
7+
8+
jobs:
9+
ensure_column:
10+
if: ${{ github.repository_owner == 'JabRef' }}
11+
runs-on: ubuntu-latest
12+
permissions:
13+
issues: write
14+
steps:
15+
- name: Move Issue to "Free to take" Column in "Candidates for University Projects"
16+
uses: m7kvqbe1/github-action-move-issues@main
17+
with:
18+
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
19+
project-url: "https://github.com/orgs/JabRef/projects/3"
20+
target-labels: ""
21+
target-column: "Free to take"
22+
ignored-columns: ""
23+
default-column: "Free to take"
24+
skip-if-not-in-project: true
25+
- name: Move Issue to "Free to take" Column in "Good First Issues"
26+
uses: m7kvqbe1/github-action-move-issues@main
27+
with:
28+
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
29+
project-url: "https://github.com/orgs/JabRef/projects/5"
30+
target-labels: ""
31+
target-column: "Free to take"
32+
ignored-columns: ""
33+
default-column: "Free to take"
34+
skip-if-not-in-project: true
35+
remove_labels:
36+
if: ${{ github.repository_owner == 'JabRef' }}
37+
runs-on: ubuntu-latest
38+
permissions:
39+
issues: write
40+
contents: read
41+
steps:
42+
- uses: actions/checkout@v4
43+
- name: Remove assigned label
44+
run: gh issue edit ${{ github.event.issue.number }} --remove-label "📍 Assigned"
45+
env:
46+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47+
- name: Remove FirstTimeCodeContribution label
48+
run: gh issue edit ${{ github.event.issue.number }} --remove-label "FirstTimeCodeContribution"
49+
env:
50+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

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

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: On unlabeled issue
1+
name: On issue unlabeled
22

33
on:
44
issues:
@@ -33,3 +33,19 @@ jobs:
3333
ignored-columns: ""
3434
default-column: "Free to take"
3535
skip-if-not-in-project: true
36+
remove_assignees:
37+
if: ${{ github.repository_owner == 'JabRef' }}
38+
runs-on: ubuntu-latest
39+
permissions:
40+
issues: write
41+
contents: read
42+
steps:
43+
- uses: actions/checkout@v4
44+
- name: Remove all assignees
45+
run: |
46+
ASSIGNEES=$(gh issue view ${{ github.event.issue.number }} --json assignees --template '{{range .assignees}}{{.login}} {{end}}')
47+
for user in $ASSIGNEES; do
48+
gh issue edit ${{ github.event.issue.number }} --remove-assignee "$user"
49+
done
50+
env:
51+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

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

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
name: Mark issue as available
1+
name: On PR closed
22

33
on:
44
pull_request_target:
55
types: [ closed ]
66

77
jobs:
88
unassign_issue:
9+
name: Mark issue as available
910
runs-on: ubuntu-latest
1011
if: github.event.action == 'closed' && !github.event.pull_request.merged
1112
permissions:
@@ -48,10 +49,14 @@ jobs:
4849
skip-if-not-in-project: true
4950
- uses: actions/checkout@v4
5051
- name: Remove assigned status
51-
run : gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-assignee ${{ github.event.pull_request.user.login }}
52+
run: gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-assignee ${{ github.event.pull_request.user.login }}
5253
env:
5354
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5455
- name: Remove assigned label
55-
run : gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-label "📍 Assigned"
56+
run: gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-label "📍 Assigned"
57+
env:
58+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
59+
- name: Remove FirstTimeCodeContribution label
60+
run: gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-label "FirstTimeCodeContribution"
5661
env:
5762
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: On labeled PR
1+
name: On PR labeled
22

33
on:
44
pull_request:

0 commit comments

Comments
 (0)