diff --git a/.github/workflows/GreetingFirstTimeCodeContribution.yml b/.github/workflows/GreetingFirstTimeCodeContribution.yml new file mode 100644 index 00000000000..fb0ed3164f4 --- /dev/null +++ b/.github/workflows/GreetingFirstTimeCodeContribution.yml @@ -0,0 +1,23 @@ +name: GreetingFirstTimeCodeContribution + +on: + issues: + types: + - labeled + +jobs: + GreetingFirstTimeCodeContribution: + if: ${{ github.event.label.name == 'FirstTimeCodeContribution' }} + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - name: GreetingFirstTimeCodeContribution + uses: peter-evans/create-or-update-comment@v2 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.issue.number }} + body: | + As a general advice for newcomers: check out [Contributing](https://github.com/JabRef/jabref/blob/main/CONTRIBUTING.md) for a start. Also, [guidelines for setting up a local workspace](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace) is worth having a look at. + + Feel free to ask here at GitHub, if you have any issue related questions. If you have questions about how to setup your workspace use JabRef's [Gitter](https://gitter.im/JabRef/jabref) chat. Try to open a (draft) pull-request early on, so that people can see you are working on the issue and so that they can see the direction the pull request is heading towards. This way, you will likely receive valuable feedback. diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 624ead6dc9f..2d3633931d4 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -16,12 +16,12 @@ jobs: env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - name: Auto approve - uses: hmarr/auto-approve-action@v3.0.0 + uses: hmarr/auto-approve-action@v3.1.0 if: steps.waitforstatuschecks.outputs.status == 'success' with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Merge pull requests - uses: pascalgn/automerge-action@v0.15.3 + uses: pascalgn/automerge-action@v0.15.5 if: steps.waitforstatuschecks.outputs.status == 'success' env: MERGE_METHOD: "merge" diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 66315e75afe..d14a77edd1a 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -51,17 +51,28 @@ jobs: runs-on: ${{ matrix.os }} name: Create installer and portable version for ${{ matrix.displayName }} steps: + - name: Check secrets presence + id: checksecrets + shell: bash + run: | + if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then + echo ::set-output name=secretspresent::false + else + echo ::set-output name=secretspresent::true + fi + env: + BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} - name: Fetch all history for all tags and branches uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.14 + uses: gittools/actions/gitversion/setup@v0.9.15 with: versionSpec: "5.x" - name: Run GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.14 + uses: gittools/actions/gitversion/execute@v0.9.15 - name: Set up JDK uses: actions/setup-java@v3 with: @@ -69,14 +80,14 @@ jobs: distribution: 'temurin' cache: 'gradle' - name: Setup OSX key chain on OSX - if: matrix.os == 'macos-latest' + if: (matrix.os == 'macos-latest') && steps.checksecrets.outputs.secretspresent uses: apple-actions/import-codesign-certs@v1 with: p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }} p12-password: ${{ secrets.OSX_CERT_PWD }} keychain-password: jabref - name: Setup OSX key chain on OSX for app id cert - if: matrix.os == 'macos-latest' + if: (matrix.os == 'macos-latest') && steps.checksecrets.outputs.secretspresent uses: apple-actions/import-codesign-certs@v1 with: p12-file-base64: ${{ secrets.OSX_SIGNING_CERT_APPLICATION }} @@ -84,12 +95,14 @@ jobs: create-keychain: false keychain-password: jabref - name: Build runtime image + if: (matrix.os != 'macos-latest') || steps.checksecrets.outputs.secretspresent run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" jlinkZip - name: Build installer + if: (matrix.os != 'macos-latest') || steps.checksecrets.outputs.secretspresent run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" jpackage shell: bash - name: Resign app image for OSX and build dmg - if: matrix.os == 'macos-latest' + if: (matrix.os == 'macos-latest') && steps.checksecrets.outputs.secretspresent shell: bash run: | codesign --entitlements buildres/mac/jabref.entitlements --options runtime -vvv -f --sign "Developer ID Application: JabRef e.V. (6792V39SK3)" build/distribution/JabRef.app/Contents/runtime/Contents/MacOS/libjli.dylib @@ -100,7 +113,7 @@ jobs: jpackage --type pkg --dest build/distribution --name JabRef --mac-package-identifier JabRef --app-version "${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}" --app-image build/distribution/JabRef.app --verbose --type pkg --vendor JabRef --app-version "${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}" --file-associations buildres/mac/bibtexAssociations.properties --resource-dir buildres/mac productsign --sign "Developer ID Installer: JabRef e.V. (6792V39SK3)" "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.pkg" "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-signed.pkg" - name: Notarize dmg and pkg installer - if: matrix.os == 'macos-latest' && startsWith(github.ref, 'refs/tags/') + if: (matrix.os == 'macos-latest') && startsWith(github.ref, 'refs/tags/') && steps.checksecrets.outputs.secretspresent shell: bash run: | REQUEST_UUID_DMG=$(xcrun altool --verbose --notarize-app --primary-bundle-id "org.jabref" --username ${{ secrets.OSX_NOTARIZATION_APP_USERNAME }} --password ${{ secrets.OSX_NOTARIZATION_APP_PWD }} --asc-provider "6792V39SK3" --file "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.dmg" | grep RequestUUID | awk '{print $3}') @@ -157,12 +170,12 @@ jobs: - name: Fetch all history for all tags and branches run: git fetch --prune --unshallow - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.14 + uses: gittools/actions/gitversion/setup@v0.9.15 with: versionSpec: '5.x' - name: Run GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.14 + uses: gittools/actions/gitversion/execute@v0.9.15 - name: Get linux binaries uses: actions/download-artifact@master with: diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml deleted file mode 100644 index 13352cc38f1..00000000000 --- a/.github/workflows/greetings.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Greetings - -on: - issues: - types: assigned - -jobs: - greeting: - runs-on: ubuntu-latest - permissions: - issues: write - pull-requests: write - steps: - - uses: actions/first-interaction@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - issue-message: "As a general advice for newcomers: check out https://github.com/JabRef/jabref/blob/main/CONTRIBUTING.md for a start. Also, https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace is worth having a look at. Feel free to ask if you have any questions here on GitHub or also at JabRef's [Gitter](https://gitter.im/JabRef/jabref) chat. - -Try to open a (draft) pull request early on, so that people can see you are working on the issue and so that they can see the direction the pull request is heading towards. This way, you will likely receive valuable feedback." diff --git a/.github/workflows/tests-fetchers.yml b/.github/workflows/tests-fetchers.yml index 8bf681fb7cc..66148b73038 100644 --- a/.github/workflows/tests-fetchers.yml +++ b/.github/workflows/tests-fetchers.yml @@ -11,10 +11,8 @@ on: - 'build.gradle' pull_request: paths: - - 'src/main/java/org/jabref/logic/**' - - 'src/test/java/org/jabref/logic/**' - - 'src/main/java/org/jabref/model/**' - - 'src/test/java/org/jabref/model/**' + - 'src/main/java/org/jabref/logic/importer/fetcher/**' + - 'src/test/java/org/jabref/logic/importer/fetcher/**' - '.github/workflows/tests-fetchers.yml' - 'build.gradle' schedule: diff --git a/CHANGELOG.md b/CHANGELOG.md index a6fe286f545..f9c659eb0a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,13 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We fixed an issue where a message about changed metadata would occur on saving although nothing changed. [#9159](https://github.com/JabRef/jabref/issues/9159) - When adding or editing a subgroup it is placed w.r.t. to alphabetical ordering rather than at the end. [koppor#577](https://github.com/koppor/jabref/issues/577) - We modified the Directory of Open Access Books (DOAB) fetcher so that it will now also fetch the ISBN when possible. [#8708](https://github.com/JabRef/jabref/issues/8708) +- Groups context menu now shows appropriate options depending on number of subgroups. [koppor#579](https://github.com/koppor/jabref/issues/579) +- We changed the color of found text from red to high-contrast colors (background: yellow; font color: purple). [koppor#552](https://github.com/koppor/jabref/issues/552) +- We modified the "Delete file" dialog and add the full file path to the dialog text. The file path in the title was changed to file name only. [koppor#534](https://github.com/koppor/jabref/issues/534) +- Download from URL now automatically fills with URL from clipboard. [koppor#535](https://github.com/koppor/jabref/issues/535) +- We added HTML and Markdown files to Find Unlinked Files and removed BibTeX.[koppor#547](https://github.com/koppor/jabref/issues/547) +- We changed the messages after importing unlinked local files to past tense. [koppor#548](https://github.com/koppor/jabref/issues/548) +- We fixed an issue where the wrong icon for a successful import of a bib entry was shown [#9308](https://github.com/JabRef/jabref/pull/9308) ### Fixed @@ -59,6 +66,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We fixed a performance regression when opening large libraries [#9041](https://github.com/JabRef/jabref/issues/9041) - We fixed a bug where spaces are trimmed when highlighting differences in the Entries merge dialog. [koppor#371](https://github.com/koppor/jabref/issues/371) - We fixed some visual glitches with the linked files editor field in the entry editor and increased its height. [#8823](https://github.com/JabRef/jabref/issues/8823) +- We fixed some visual inconsistencies (round corners of highlighted buttons). [#8806](https://github.com/JabRef/jabref/issues/8806) - We fixed several bugs regarding the manual and the autosave of library files that sometimes lead to exceptions or data loss. [#9067](https://github.com/JabRef/jabref/pull/9067), [#8448](https://github.com/JabRef/jabref/issues/8484), [#8746](https://github.com/JabRef/jabref/issues/8746), [#6684](https://github.com/JabRef/jabref/issues/6684), [#6644](https://github.com/JabRef/jabref/issues/6644), [#6102](https://github.com/JabRef/jabref/issues/6102), [#6002](https://github.com/JabRef/jabref/issues/6000) - We fixed an issue where applied save actions on saving the library file would lead to the dialog "The library has been modified by another program" popping up [#4877](https://github.com/JabRef/jabref/issues/4877) - We fixed issues with save actions not correctly loaded when opening the library. [#9122](https://github.com/JabRef/jabref/pull/9122) @@ -73,6 +81,9 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We fixed an issue where hitting enter on the search field within the preferences dialog closed the dialog. [koppor#630](https://github.com/koppor/jabref/issues/630) - We fixed a typo within a connection error message. [koppor#625](https://github.com/koppor/jabref/issues/625) - We fixed an issue where the 'close dialog' key binding was not closing the Preferences dialog. [#8888](https://github.com/jabref/jabref/issues/8888) +- We fixed an issue where journal abbreviations would not abbreviate journal titles with escaped ampersands (\\&). [#8948](https://github.com/JabRef/jabref/issues/8948) +- We fixed an issue where font size preferences did not apply correctly to preference dialog window and the menu bar. [#8386](https://github.com/JabRef/jabref/issues/8386) and [#9279](https://github.com/JabRef/jabref/issues/9279) +- We fixed an issue when using an unsafe character in the citation key, the auto-linking feature fails to link files. [#9267](https://github.com/JabRef/jabref/issues/9267) ### Removed diff --git a/build.gradle b/build.gradle index f9dcfee846c..3980eac1247 100644 --- a/build.gradle +++ b/build.gradle @@ -115,11 +115,11 @@ dependencies { implementation 'org.apache.pdfbox:fontbox:3.0.0-RC1' implementation 'org.apache.pdfbox:xmpbox:3.0.0-RC1' - implementation 'org.apache.lucene:lucene-core:9.4.0' - implementation 'org.apache.lucene:lucene-queryparser:9.4.0' - implementation 'org.apache.lucene:lucene-queries:9.4.0' - implementation 'org.apache.lucene:lucene-analysis-common:9.4.0' - implementation 'org.apache.lucene:lucene-highlighter:9.4.0' + implementation 'org.apache.lucene:lucene-core:9.4.1' + implementation 'org.apache.lucene:lucene-queryparser:9.4.1' + implementation 'org.apache.lucene:lucene-queries:9.4.1' + implementation 'org.apache.lucene:lucene-analysis-common:9.4.1' + implementation 'org.apache.lucene:lucene-highlighter:9.4.1' implementation group: 'org.apache.commons', name: 'commons-csv', version: '1.9.0' implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0' @@ -176,7 +176,7 @@ dependencies { implementation 'org.controlsfx:controlsfx:11.1.2' implementation 'org.jsoup:jsoup:1.15.3' - implementation 'com.konghq:unirest-java:3.13.11' + implementation 'com.konghq:unirest-java:3.13.12' implementation 'org.slf4j:slf4j-api:2.0.3' implementation "org.tinylog:tinylog-api:2.5.0" @@ -208,7 +208,7 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter:5.9.1' testImplementation 'org.junit.platform:junit-platform-launcher:1.9.1' - testImplementation 'org.mockito:mockito-core:4.8.0' + testImplementation 'org.mockito:mockito-core:4.8.1' testImplementation 'org.xmlunit:xmlunit-core:2.9.0' testImplementation 'org.xmlunit:xmlunit-matchers:2.9.0' testRuntimeOnly 'com.tngtech.archunit:archunit-junit5-engine:1.0.0' @@ -217,7 +217,7 @@ dependencies { testImplementation "org.testfx:testfx-junit5:4.0.16-alpha" testImplementation "org.hamcrest:hamcrest-library:2.2" - checkstyle 'com.puppycrawl.tools:checkstyle:10.3.4' + checkstyle 'com.puppycrawl.tools:checkstyle:10.4' // xjc needs the runtime as well for the ant task, otherwise it fails xjc group: 'org.glassfish.jaxb', name: 'jaxb-xjc', version: '3.0.2' xjc group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '3.0.2' diff --git a/buildres/csl/csl-styles/Gemfile.lock b/buildres/csl/csl-styles/Gemfile.lock index dde35577b7f..fcd98426ce1 100644 --- a/buildres/csl/csl-styles/Gemfile.lock +++ b/buildres/csl/csl-styles/Gemfile.lock @@ -65,10 +65,10 @@ GEM mini_portile2 (2.8.0) multipart-post (2.1.1) namae (1.1.1) - nokogiri (1.13.6) + nokogiri (1.13.9) mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.13.6-x64-mingw32) + nokogiri (1.13.9-x64-mingw32) racc (~> 1.4) octokit (4.21.0) faraday (>= 0.9) diff --git a/buildres/csl/csl-styles/arcadia-science.csl b/buildres/csl/csl-styles/arcadia-science.csl new file mode 100644 index 00000000000..74c7dc8d89a --- /dev/null +++ b/buildres/csl/csl-styles/arcadia-science.csl @@ -0,0 +1,139 @@ + + diff --git a/buildres/csl/csl-styles/dependent/veterinary-record-open.csl b/buildres/csl/csl-styles/dependent/veterinary-record-open.csl deleted file mode 100644 index 7976ce1ce56..00000000000 --- a/buildres/csl/csl-styles/dependent/veterinary-record-open.csl +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/buildres/csl/csl-styles/harvard-university-of-abertay-dundee.csl b/buildres/csl/csl-styles/harvard-university-of-abertay-dundee.csl index 0e21a947c7d..0a793b00138 100644 --- a/buildres/csl/csl-styles/harvard-university-of-abertay-dundee.csl +++ b/buildres/csl/csl-styles/harvard-university-of-abertay-dundee.csl @@ -13,10 +13,13 @@ Sebastian Karcher + + Naman Merchant + The Abertay version of the Harvard author-date style - 2012-11-16T18:17:12+00:00 + 2022-09-11T21:02:45+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -47,6 +50,7 @@