Skip to content

Commit 96ff453

Browse files
authored
Merge branch 'main' into fix-for-issue-JabRef#372
2 parents cd4a318 + 357d0ae commit 96ff453

File tree

58 files changed

+813
-215
lines changed

Some content is hidden

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

58 files changed

+813
-215
lines changed

.github/workflows/assign-issue.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
steps:
1717
- name: Assign the user or unassign stale assignments
1818
id: assign
19-
uses: takanome-dev/assign-issue-action@fix-rate-limit-err
19+
uses: takanome-dev/assign-issue-action@beta
2020
with:
2121
github_token: '${{ secrets.GITHUB_TOKEN }}'
2222
days_until_unassign: 45
@@ -34,7 +34,7 @@ jobs:
3434
3535
⏳ 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.
3636
- name: Move Issue to "Assigned" Column in "Candidates for University Projects"
37-
uses: koppor/github-action-move-issues@work-for-labeled
37+
uses: m7kvqbe1/github-action-move-issues@feat/skip-if-not-in-project-flag
3838
# Action currently works for issues only - pre-condition: https://github.com/takanome-dev/assign-issue-action/issues/269 fixed
3939
if: github.event_name == 'issue_comment'
4040
with:
@@ -46,7 +46,7 @@ jobs:
4646
default-column: "Free to take"
4747
skip-if-not-in-project: true
4848
- name: Move Issue to "Assigned" Column in "Good First Issues"
49-
uses: koppor/github-action-move-issues@work-for-labeled
49+
uses: m7kvqbe1/github-action-move-issues@feat/skip-if-not-in-project-flag
5050
if: github.event_name == 'issue_comment'
5151
with:
5252
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}

.github/workflows/cleanup-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }}
3030
- name: Delete folder on builds.jabref.org
3131
if: steps.checksecrets.outputs.secretspresent == 'YES'
32-
uses: appleboy/[email protected].0
32+
uses: appleboy/[email protected].1
3333
with:
3434
script: rm -rf /var/www/builds.jabref.org/www/pull/${{ github.event.pull_request.number }} || true
3535
host: build-upload.jabref.org

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

Lines changed: 0 additions & 34 deletions
This file was deleted.

.github/workflows/pr-comment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
token: ${{ secrets.GITHUB_TOKEN }}
5555
- name: jbang
5656
if: ${{ steps.read-pr_number.outputs.pr_number != '' && steps.isCrossRepository.outputs.isCrossRepository == 'true' }}
57-
uses: jbangdev/jbang-action@v0.119.0
57+
uses: jbangdev/jbang-action@v0.124.0
5858
with:
5959
script: ghprcomment@koppor/ghprcomment
6060
scriptargs: "-r JabRef/jabref -p ${{ steps.read-pr_number.outputs.pr_number }} -w ${{ github.event.workflow_run.id }}"

.github/workflows/product-map.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,10 @@ jobs:
2222
FILES=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} -- '*.java' | sed 's|^|\"|' | sed 's|$|\"|' | paste -sd "," -)
2323
if [ -z "$FILES" ]; then FILES="\"dummy.java\""; fi
2424
echo "expected_files=(${FILES})" >> $GITHUB_ENV
25+
echo "Files: ${FILES}"
2526
2627
- name: ProductMap Map Generation
27-
uses: product-map/[email protected]
28-
# disabled because of https://github.com/product-map/product-map-action/issues/7
29-
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false
28+
uses: product-map/product-map-action@main
3029
with:
3130
github_token: ${{ secrets.GITHUB_TOKEN }}
3231
expected_files: ${{ env.expected_files }}

.github/workflows/tests-fetchers.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ on:
77
paths:
88
- 'src/main/java/org/jabref/logic/importer/fetcher/**'
99
- 'src/test/java/org/jabref/logic/importer/fetcher/**'
10+
- 'src/main/java/org/jabref/logic/importer/fileformat/PdfMergeMetadataImporter.java'
11+
- 'src/test/java/org/jabref/logic/importer/fileformat/PdfMergeMetadataImporterTest.java'
1012
- 'src/main/java/org/jabref/logic/crawler/**'
1113
- 'src/test/java/org/jabref/logic/crawler/**'
1214
- '.github/workflows/tests-fetchers.yml'
@@ -15,6 +17,10 @@ on:
1517
paths:
1618
- 'src/main/java/org/jabref/logic/importer/fetcher/**'
1719
- 'src/test/java/org/jabref/logic/importer/fetcher/**'
20+
- 'src/main/java/org/jabref/logic/importer/fileformat/PdfMergeMetadataImporter.java'
21+
- 'src/test/java/org/jabref/logic/importer/fileformat/PdfMergeMetadataImporterTest.java'
22+
- 'src/main/java/org/jabref/logic/crawler/**'
23+
- 'src/test/java/org/jabref/logic/crawler/**'
1824
- '.github/workflows/tests-fetchers.yml'
1925
- 'build.gradle'
2026
schedule:

.github/workflows/tests.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,20 @@ jobs:
151151
submodules: 'false'
152152
show-progress: 'false'
153153
fetch-depth: 0
154-
- name: Install clparse
154+
- name: Cache clparse jar
155+
id: cache-clparse
156+
uses: actions/cache@v4
157+
with:
158+
path: /tmp/clparse
159+
key: clparse-0.9.1
160+
- name: unzip
161+
if: steps.cache-clparse.outputs.cache-hit != 'true'
155162
run: |
163+
cd /tmp
156164
curl -LO https://github.com/marcaddeo/clparse/releases/download/0.9.1/clparse-0.9.1-x86_64-unknown-linux-musl.tar.gz
157165
tar xzvf clparse-0.9.1-x86_64-unknown-linux-musl.tar.gz
158-
sudo mv clparse /usr/local/bin/clparse
166+
- name: Install clparse
167+
run: sudo mv /tmp/clparse /usr/local/bin/clparse
159168
- name: Check CHANGELOG.md diff
160169
run: |
161170
diff \

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,40 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
1111

1212
### Added
1313

14+
- We added a feature to rename the subgroup, with the keybinding (<kbd>F2</kbd>) for quick access. [#11896](https://github.com/JabRef/jabref/issues/11896)
1415
- We added a new functionality that displays a drop-down list of matching suggestions when typing a citation key pattern. [#12502](https://github.com/JabRef/jabref/issues/12502)
1516
- We added a new CLI that supports txt, csv, and console-based output for consistency in BibTeX entries. [#11984](https://github.com/JabRef/jabref/issues/11984)
1617
- We added a new dialog for bibliography consistency check. [#11950](https://github.com/JabRef/jabref/issues/11950)
1718
- We added a feature for copying entries to libraries, available via the context menu, with an option to include cross-references. [#12374](https://github.com/JabRef/jabref/pull/12374)
19+
- We added a new "Copy citation (text)" button in the context menu of the preview. [#12551](https://github.com/JabRef/jabref/issues/12551)
20+
- We added a new "Export to clipboard" button in the context menu of the preview. [#12551](https://github.com/JabRef/jabref/issues/12551)
1821
- We added an integrity check if a URL appears in a title. [#12354](https://github.com/JabRef/jabref/issues/12354)
1922
- We added batch fetching of bibliographic data for multiple entries in the "Lookup" menu. [#12275](https://github.com/JabRef/jabref/issues/12275)
23+
- We added a feature for enabling drag-and-drop of files into groups [#12540](https://github.com/JabRef/jabref/issues/12540)
24+
- We added support for reordering keywords via drag and drop, automatic alphabetical ordering, and improved pasting and editing functionalities in the keyword editor. [#10984](https://github.com/JabRef/jabref/issues/10984)
2025

2126
### Changed
2227

2328
- We moved the "Generate a new key for imported entries" option from the "Web search" tab to the "Citation key generator" tab in preferences. [#12436](https://github.com/JabRef/jabref/pull/12436)
2429
- We improved the offline parsing of BibTeX data from PDF-documents. [#12278](https://github.com/JabRef/jabref/issues/12278)
2530
- The tab bar is now hidden when only one library is open. [#9971](https://github.com/JabRef/jabref/issues/9971)
31+
- We renamed "Rename file to a given name" to "Rename files to configured filename format pattern" in the entry editor. [#12587](https://github.com/JabRef/jabref/pull/12587)
32+
- We renamed "Move DOIs from note and URL field to DOI field and remove http prefix" to "Move DOIs from 'note' field and 'URL' field to 'DOI' field and remove http prefix" in the Cleanup entries. [#12587](https://github.com/JabRef/jabref/pull/12587)
33+
- We renamed "Move preprint information from 'URL' and 'journal' field to the 'eprint' field" to "Move preprint information from 'URL' field and 'journal' field to the 'eprint' field" in the Cleanup entries. [#12587](https://github.com/JabRef/jabref/pull/12587)
34+
- We renamed "Move URL in note field to url field" to "Move URL in 'note' field to 'URL' field" in the Cleanup entries. [#12587](https://github.com/JabRef/jabref/pull/12587)
35+
- We renamed "Rename PDFs to given filename format pattern" to "Rename files to configured filename format pattern" in the Cleanup entries. [#12587](https://github.com/JabRef/jabref/pull/12587)
36+
- We renamed "Rename only PDFs having a relative path" to "Only rename files that have a relative path" in the Cleanup entries. [#12587](https://github.com/JabRef/jabref/pull/12587)
37+
- We renamed "Filename format pattern: " to "Filename format pattern (from preferences)" in the Cleanup entries. [#12587](https://github.com/JabRef/jabref/pull/12587)
2638
- When working with CSL styles in LibreOffice, citing with a new style now updates all other citations in the document to have the currently selected style. [#12472](https://github.com/JabRef/jabref/pull/12472)
2739
- We improved the user comments field visibility so that it remains displayed if it contains text. Additionally, users can now easily toggle the field on or off via buttons unless disabled in preferences. [#11021](https://github.com/JabRef/jabref/issues/11021)
2840
- The LibreOffice integration for CSL styles is now more performant. [#12472](https://github.com/JabRef/jabref/pull/12472)
2941
- The "automatically sync bibliography when citing" feature of the LibreOffice integration is now disabled by default (can be enabled in settings). [#12472](https://github.com/JabRef/jabref/pull/12472)
3042
- For the Citation key generator patterns, we reverted how `[authorsAlpha]` would behave to the original pattern and renamed the LNI-based pattern introduced in V6.0-alpha to `[authorsAlphaLNI]`. [#12499](https://github.com/JabRef/jabref/pull/12499)
3143
- We keep the list of recent files if one files could not be found. [#12517](https://github.com/JabRef/jabref/pull/12517)
3244
- During the import process, the labels indicating individual paragraphs within an abstract returned by PubMed/Medline XML are preserved. [#12527](https://github.com/JabRef/jabref/issues/12527)
45+
- We changed the "Copy Preview" button to "Copy citation (html) in the context menu of the preview. [#12551](https://github.com/JabRef/jabref/issues/12551)
3346
- Pressing Tab in empty text fields of the entry editor now moves the focus to the next field instead of inserting a tab character. [#11938](https://github.com/JabRef/jabref/issues/11938)
47+
- The embedded PostgresSQL server for the search now supports Linux and macOS ARM based distributions natively [#12607](https://github.com/JabRef/jabref/pull/12607)
3448

3549
### Fixed
3650

@@ -50,8 +64,11 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
5064
- We fixed an issue where CSL style citations with citation keys having special characters (such as hyphens or colons) would not be recognized as valid by JabRef. [forum#5431](https://discourse.jabref.org/t/error-when-connecting-to-libreoffice/5431)
5165
- We fixed an issue where the `[authorsAlpha]` pattern in Citation key generator would not behave as per the user documentation. [#12312](https://github.com/JabRef/jabref/issues/12312)
5266
- We fixed an issue where import at "Search for unlinked local files" would re-add already imported files. [#12274](https://github.com/JabRef/jabref/issues/12274)
67+
- We fixed an issue where month values 21–24 (ISO 8601-2019 season codes) in Biblatex date fields were not recognized as seasons during parsing. [#12437](https://github.com/JabRef/jabref/issues/12437)
5368
- We fixed an issue where migration of "Search groups" would fail with an exception when the search query is invalid. [#12555](https://github.com/JabRef/jabref/issues/12555)
5469
- We fixed an issue where not all linked files from BibDesk in the field `bdsk-file-...` were parsed. [#12555](https://github.com/JabRef/jabref/issues/12555)
70+
- We fixed an issue where JabRef displayed an incorrect deletion notification when canceling entry deletion [#12645](https://github.com/JabRef/jabref/issues/12645)
71+
5572

5673
### Removed
5774

CONTRIBUTING.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ General overview about contributing for non-programmers is available at <https:/
55
We welcome contributions to JabRef and encourage you to follow the GitHub workflow specified below.
66
If you are not familiar with this type of workflow, take a look at GitHub's excellent overview on the [GitHub flow](https://docs.github.com/en/get-started/using-github/github-flow) and the explanation of [Feature Branch Workflow](https://atlassian.com/git/tutorials/comparing-workflows#feature-branch-workflow) for the idea behind this kind of development.
77

8+
**JabRef regards its contributors as [software engineers, not just programmers](https://www.phoenix.edu/blog/programmer-vs-software-engineer-key-differences.html)**.
9+
As one consequence, for non-basic issues, you will have to work on the requirements side, too.
10+
811
Before you start, get the JabRef code on your local machine.
9-
Detailed instructions about this step can be found in our [guidelines for setting up a local workspace](getting-into-the-code/guidelines-for-setting-up-a-local-workspace/).
12+
Detailed instructions about this step can be found in our [guidelines for setting up a local workspace](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/).
1013

1114
## Table of Contents
1215

@@ -27,11 +30,27 @@ Some are simpler, while others are more complex. Our primary aim is to guide you
2730

2831
### I am a student and I want to start with something easy
2932

30-
We collect good issues to start with at our [list of good first issues](https://github.com/orgs/JabRef/projects/5/views/1).
33+
We collect good issues to start with at our [list of unassigned good first issues](https://github.com/JabRef/jabref/issues?q=sort%3Aupdated-desc%20is%3Aissue%20is%3Aopen%20label%3A%22good%20first%20issue%22%20no%3Aassignee).
3134

3235
### I am a student and I want to choose from a curated list of university projects
3336

34-
Take a look at [JabRef's candidates for university projects](https://github.com/orgs/JabRef/projects/3). There, a list of possible projects to work on during a teaching period is offered.
37+
Apart from "good first issues", we also offer collections of curated issues to work on.
38+
We categorize them into "small", "medium", and "large".
39+
All of them are intended to
40+
a) bring you closer to a larger code base with a dedicated issue and
41+
b) be clear in their description of work.
42+
Sometimes, you may need to refine the requirements:
43+
We see contributors as software engineers and [not just programmers](https://www.phoenix.edu/blog/programmer-vs-software-engineer-key-differences.html).
44+
Thus, requirement engineering inherently comes up as a part of the process.
45+
46+
Take a look at [JabRef's candidates for university projects](https://github.com/orgs/JabRef/projects/3).
47+
Here, you will get a table of curated issues.
48+
The table offers filtering for small, medium, and large projects.
49+
You can check the main focus (UI, logic, or both), the issue understanding effort, the implementation effort, and testing effort.
50+
The "issue understanding effort" is an indication of how much time you will need to understand the issue before you can do any coding. It may depend on how easy it is to reproduce the issue, how much background knowledge is needed, etc.
51+
The "implementation effort" is based on our experience of JabRef development.
52+
Note that there may be issues with a high effort in understanding, but low implementation effort.
53+
The challenge of these issues is to understand **where** in the code base something needs to be modified.
3554

3655
### I am a lecturer
3756

build.gradle

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ dependencies {
206206

207207
implementation group: 'org.eclipse.jgit', name: 'org.eclipse.jgit', version: '7.1.0.202411261347-r'
208208

209-
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.18.2'
209+
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.18.3'
210210
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.18.2'
211211

212212
implementation 'com.fasterxml:aalto-xml:1.3.3'
@@ -271,7 +271,7 @@ dependencies {
271271
implementation 'org.apache.httpcomponents.client5:httpclient5:5.4.2'
272272
// endregion
273273

274-
implementation 'org.slf4j:slf4j-api:2.0.16'
274+
implementation 'org.slf4j:slf4j-api:2.0.17'
275275
implementation 'org.tinylog:tinylog-api:2.7.0'
276276
implementation 'org.tinylog:slf4j-tinylog:2.7.0'
277277
implementation 'org.tinylog:tinylog-impl:2.7.0'
@@ -332,7 +332,7 @@ dependencies {
332332
implementation 'com.github.vatbub:mslinks:1.0.6.2'
333333

334334
// YAML formatting
335-
implementation 'org.yaml:snakeyaml:2.3'
335+
implementation 'org.yaml:snakeyaml:2.4'
336336

337337
// region AI
338338
implementation 'dev.langchain4j:langchain4j:0.36.2'
@@ -377,13 +377,15 @@ dependencies {
377377
implementation 'io.github.adr:e-adr:2.0.0-SNAPSHOT'
378378

379379
implementation 'io.zonky.test:embedded-postgres:2.1.0'
380-
implementation enforcedPlatform('io.zonky.test.postgres:embedded-postgres-binaries-bom:17.2.0')
380+
implementation enforcedPlatform('io.zonky.test.postgres:embedded-postgres-binaries-bom:17.4.0')
381+
implementation 'io.zonky.test.postgres:embedded-postgres-binaries-darwin-arm64v8'
382+
implementation 'io.zonky.test.postgres:embedded-postgres-binaries-linux-arm64v8'
381383

382384
testImplementation 'io.github.classgraph:classgraph:4.8.179'
383385
testImplementation 'org.junit.jupiter:junit-jupiter:5.11.4'
384386
testImplementation 'org.junit.platform:junit-platform-launcher:1.11.4'
385387

386-
testImplementation 'org.mockito:mockito-core:5.15.2'
388+
testImplementation 'org.mockito:mockito-core:5.16.0'
387389
testImplementation 'org.xmlunit:xmlunit-core:2.10.0'
388390
testImplementation 'org.xmlunit:xmlunit-matchers:2.10.0'
389391
testRuntimeOnly 'com.tngtech.archunit:archunit-junit5-engine:1.4.0'
@@ -396,7 +398,7 @@ dependencies {
396398
// recommended by https://github.com/wiremock/wiremock/issues/2149#issuecomment-1835775954
397399
testImplementation 'org.wiremock:wiremock-standalone:3.10.0'
398400

399-
checkstyle 'com.puppycrawl.tools:checkstyle:10.21.2'
401+
checkstyle 'com.puppycrawl.tools:checkstyle:10.21.3'
400402
// xjc needs the runtime as well for the ant task, otherwise it fails
401403
xjc group: 'org.glassfish.jaxb', name: 'jaxb-xjc', version: '3.0.2'
402404
xjc group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '3.0.2'

0 commit comments

Comments
 (0)