Skip to content

Commit dc967fb

Browse files
authored
Merge branch 'main' into feat-ai-chat-copy-menu
2 parents f4ceab1 + 96e52ed commit dc967fb

File tree

136 files changed

+8315
-22042
lines changed

Some content is hidden

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

136 files changed

+8315
-22042
lines changed

.github/ghprcomment.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,6 @@
4646
IntelliJ auto format covers some cases.
4747
There seem to be issues with your code style and autoformat configuration.
4848
Please reformat your code (<kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>L</kbd>) and commit, then push.
49-
50-
51-
In special cases, consider using `// formatter:off` and `// formatter:on` annotations to allow deviation from the code style.
5249
- jobName: Checkstyle
5350
workflowName: 'Source Code Tests'
5451
message: >

.github/workflows/check-links.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ concurrency:
1515
group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}"
1616
cancel-in-progress: true
1717

18+
permissions:
19+
contents: read
20+
pull-requests: write
21+
1822
jobs:
1923
check-links:
2024
if: github.repository == 'JabRef/jabref'

.github/workflows/stale.yml

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,32 @@ jobs:
3535
days-before-pr-close: 7
3636
close-pr-message: >
3737
This PR is being closed due to continued inactivity.
38-
- name: Output result
39-
run: echo "${{ steps.stale.outputs.closed-issues-prs }}" >> $GITHUB_STEP_SUMMARY
4038
- name: Process closed issues/PRs
4139
if: ${{ steps.stale.outputs.closed-issues-prs != '[]' }}
4240
env:
43-
CLOSED: ${{ steps.stale.outputs.closed-issues-prs }}
41+
CLOSED_JSON: ${{ steps.stale.outputs.closed-issues-prs }}
4442
run: |
45-
echo ${{ steps.stale.outputs.closed-issues-prs }}
46-
# CLOSED is comma-separated like: "12,34,56"
47-
IFS=',' read -r -a nums <<< "${CLOSED}"
48-
for n in "${nums[@]}"; do
43+
echo "Raw payload:"
44+
cat <<EOF
45+
${{ steps.stale.outputs.closed-issues-prs }}
46+
EOF
47+
48+
echo "PR numbers:"
49+
echo "$CLOSED_JSON" | jq -r '.[] | select(.pull_request != null) | .number' | while read -r n; do
4950
[ -n "$n" ] || continue
5051
echo "Handling #$n"
51-
gh workflow run "On PR closed" --ref main --field pr_number=$n
52+
gh workflow run "On PR closed" --ref main --field pr_number="$n"
5253
done
54+
- name: Write closed PR URLs to summary
55+
if: always()
56+
env:
57+
CLOSED_JSON: ${{ steps.stale.outputs.closed-issues-prs }}
58+
run: |
59+
{
60+
echo "## Closed PRs"
61+
echo
62+
echo "$CLOSED_JSON" \
63+
| jq -r '.[] | select(.pull_request != null) | "- [#\(.number)](\(.pull_request.html_url))"' \
64+
|| true
65+
echo
66+
} >> "$GITHUB_STEP_SUMMARY"

.jbang/JabLsLauncher.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// from jabls
1717
//DEPS com.fasterxml.jackson.core:jackson-annotations:2.20
1818
//DEPS info.picocli:picocli:4.7.7
19+
//DEPS org.apache.commons:commons-lang3:3.20.0
1920
//DEPS org.apache.logging.log4j:log4j-to-slf4j:2.25.3
2021
//DEPS org.eclipse.lsp4j:org.eclipse.lsp4j:0.24.0
2122
//DEPS org.slf4j:jul-to-slf4j:2.0.17

.jbang/JabSrvLauncher.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
//DEPS info.picocli:picocli:4.7.7
2323
//DEPS org.postgresql:postgresql:42.7.8
2424
//DEPS org.bouncycastle:bcprov-jdk18on:1.83
25-
//DEPS com.konghq:unirest-modules-gson:4.7.0
25+
//DEPS com.konghq:unirest-modules-gson:4.7.1
2626
//DEPS jakarta.ws.rs:jakarta.ws.rs-api:4.0.0
2727
//DEPS org.glassfish.jersey.core:jersey-server:4.0.0
2828
//DEPS org.glassfish.jersey.inject:jersey-hk2:4.0.0
@@ -34,11 +34,11 @@
3434
//DEPS org.glassfish.grizzly:grizzly-framework:4.0.2
3535
//DEPS jakarta.validation:jakarta.validation-api:3.1.1
3636
//DEPS org.hibernate.validator:hibernate-validator:9.1.0.Final
37-
//DEPS com.konghq:unirest-modules-gson:4.7.0
37+
//DEPS com.konghq:unirest-modules-gson:4.7.1
3838
//DEPS com.google.guava:guava:33.5.0-jre
3939
//DEPS org.jabref:afterburner.fx:2.0.0
4040
//DEPS net.harawata:appdirs:1.5.0
41-
//DEPS de.undercouch:citeproc-java:3.4.0
41+
//DEPS de.undercouch:citeproc-java:3.4.1
4242
//DEPS com.github.ben-manes.caffeine:caffeine:3.2.3
4343
//DEPS tools.jackson.core:jackson-core:3.0.3
4444
//DEPS tools.jackson.core:jackson-databind:3.0.3

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## Our policy
22

33
> [!IMPORTANT]
4-
> This project does not accept fully AI-generated pull requests. AI tools may be used assistively only. You must understand and take responsibility for every change you submit.
4+
> This project does not accept fully AI-generated pull requests. AI tools may only be used for assistance. You must understand and take responsibility for every change you submit.
55
66
This `AGENTS.md` file acts as a set of instructions that some AI coding tools can read. For more information please read our [AI policy](./CONTRIBUTING.md#ai-usage-policy).
77

@@ -60,7 +60,7 @@ Agents **must not**:
6060
BAD: new HashSet<>(Arrays.asList(...))
6161
GOOD: Set.of(...)
6262
- Java 21 introduced SequencedCollection and SequencedSet interfaces. Use it instead of LinkedHashSet (where applicable)
63-
- To create an empty list we use `List.of()` instead of `Collections.emptyList()`.
63+
- To create an empty list or map we use `List.of()` and `Map.of()` instead of `Collections.emptyList()` and `Collections.emptyMap()`.
6464
- Correctly spelled variable names (meaning: no typos in variable names).
6565
- Use StringJoiner instead of StringBuilder (if possible)
6666
- Prefer immutability and explicit nullability (JSpecify)

CHANGELOG.md

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

1212
### Added
1313

14+
- We fixed an issue where a redundant validation listener was causing duplicate error dialogs when invalid BibTeX source was detected in the SourceTab. [#14805](https://github.com/JabRef/jabref/issues/14805)
1415
- We added support for selecting citation fetcher in Citations Tab. [#14430](https://github.com/JabRef/jabref/issues/14430)
1516
- In the "New Entry" dialog the identifier type is now automatically updated on typing. [#14660](https://github.com/JabRef/jabref/issues/14660)
1617
- We added the ability to copy selected text from AI chat interface. [#14655](https://github.com/JabRef/jabref/issues/14655)
18+
- We added cover images for books, which will display in entry previews if available, and can be automatically downloaded when adding an entry via ISBN. [#10120](https://github.com/JabRef/jabref/issues/10120)
1719

1820
### Changed
1921

2022
### Fixed
2123

24+
- Fixed localized walkthrough highlight for 'Preferences' menu item. [#14822](https://github.com/JabRef/jabref/issues/14822)
25+
- We Improved detection of arXiv identifiers when pasting arXiv URLs that include URL fragments. [#14659](https://github.com/JabRef/jabref/issues/14659)
2226
- We fixed an error on startup when using portable preferences. [#14729](https://github.com/JabRef/jabref/issues/14729)
2327
- We fixed an issue when warning for duplicate entries in the "New Entry" dialog. [#14662](https://github.com/JabRef/jabref/pull/14662)
28+
- We fixed the Quality > Automatically set file links button. Now if a file is moved, the button can relink the moved file to the broken linked file. [#9798](https://github.com/JabRef/jabref/issues/9798)
29+
- We fixed an issue where JabRef would not start on Linux ARM due to missing binaries for postgres-embedded [#14783](https://github.com/JabRef/jabref/issues/14783)
30+
- We fixed an issue where JaRef would not correctly remember the opened side panels in the preferences [#14818](https://github.com/JabRef/jabref/issues/14818)
2431

2532
### Removed
2633

@@ -36,7 +43,7 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
3643
- We added 15 non-standard BibLaTeX entry types (Audio, Image, Legal, ...) to the group "Non-standard types" group in the New Entry dialog and in the context menu. [#12963](https://github.com/JabRef/jabref/issues/12963)
3744
- We added a drop-down menu to those custom fields in the main table for which content selector values exists. [#14087](https://github.com/JabRef/jabref/issues/14087)
3845
- We added a "Jump to Field" dialog (`Ctrl+J`) to quickly search for and navigate to any field across all tabs. [#12276](https://github.com/JabRef/jabref/issues/12276).
39-
- We added "IEEE" as another option for parsing plain text citations. [#14233](github.com/JabRef/jabref/pull/14233)
46+
- We added "IEEE" as another option for parsing plain text citations. [#14233](https://github.com/JabRef/jabref/pull/14233)
4047
- We added automatic date-based groups that create year/month/day subgroups from an entry’s date fields. [#10822](https://github.com/JabRef/jabref/issues/10822)
4148
- We added `doi-to-bibtex` to `JabKit`. [#14244](https://github.com/JabRef/jabref/pull/14244)
4249
- We added `--provider=crossref` to `get-cited-works` at `JabKit`. [#14357](https://github.com/JabRef/jabref/pull/14357)

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright © 2003-2025 JabRef Authors
3+
Copyright © 2003-2026 JabRef Authors
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

0 commit comments

Comments
 (0)