diff --git a/.editorconfig b/.editorconfig index 95915a432b7..1f812bb38b1 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,5 +6,8 @@ indent_style = space insert_final_newline = true trim_trailing_whitespace = true +[*.{fxml,java,properties,sh}] +end_of_line = lf + [*.md] trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes index 7752b0e534a..18bbb30fc6d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,12 +5,17 @@ gradlew text eol=lf # windows line endings at windows files *.bat text eol=crlf -# ensure that line endings of *.java, and *.properties are normalized -*.java text -*.properties text +# ensure that line endings of *.fxml, *.java, and *.properties are normalized +*.fxml text eol=lf +*.java text eol=lf +*.properties text eol=lf # .bib files have to be written using OS specific line endings to enable our tests working *.bib text !eol -# disable after a release -CHANGELOG.md merge=union +# Citavi needs to be LF line ending +# This overwrites the setting of "*.bib" +Citavi*.bib eol=lf + +# disable after a release (otherwise, duplicate CHANGELOG.md entries will be generated) +# CHANGELOG.md merge=union diff --git a/.gitbook.yaml b/.gitbook.yaml deleted file mode 100644 index e454be0e259..00000000000 --- a/.gitbook.yaml +++ /dev/null @@ -1 +0,0 @@ -root: ./docs/ diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 0a0eaa92ca9..ef4a1dd6b23 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -12,7 +12,7 @@ body: attributes: label: JabRef version options: - - "5.5 (latest release)" + - "5.7 (latest release)" - "3.8.2" - Latest development branch build (please note build date below) - Other (please describe below) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3dd717dcc54..1bf428b8b64 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -15,4 +15,5 @@ The title of the PR must not reference an issue, because GitHub does not support - [ ] Tests created for changes (if applicable) - [ ] Manually tested changed features in running JabRef (always required) - [ ] Screenshots added in PR description (for UI changes) +- [ ] [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. - [ ] [Checked documentation](https://docs.jabref.org/): Is the information available and up to date? If not, I created an issue at or, even better, I submitted a pull request to the documentation repository. diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 053be6ce2f3..9783e2a9aaa 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -9,19 +9,19 @@ jobs: steps: - name: 'Wait for status checks' id: waitforstatuschecks - uses: "WyriHaximus/github-action-wait-for-status@v1.4" + uses: "WyriHaximus/github-action-wait-for-status@v1.6" with: ignoreActions: Automerge Dependabot,Code coverage,Create snapcraft image,Deploy binaries on builds.jabref.org,codecov/project,markdown-link-check checkInterval: 13 env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - name: Auto approve - uses: hmarr/auto-approve-action@v2.1.0 + uses: hmarr/auto-approve-action@v2.4.0 if: steps.waitforstatuschecks.outputs.status == 'success' with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Merge pull requests - uses: pascalgn/automerge-action@v0.14.3 + uses: pascalgn/automerge-action@v0.15.3 if: steps.waitforstatuschecks.outputs.status == 'success' env: MERGE_METHOD: "merge" diff --git a/.github/workflows/check-links.yaml b/.github/workflows/check-links.yaml index 2077d20ff80..9c0ab03ccea 100644 --- a/.github/workflows/check-links.yaml +++ b/.github/workflows/check-links.yaml @@ -13,7 +13,7 @@ jobs: markdown-link-check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: gaurav-nelson/github-action-markdown-link-check@v1 with: use-quiet-mode: 'yes' diff --git a/.github/workflows/cleanup_pr.yml b/.github/workflows/cleanup_pr.yml index 63090aba74a..20747030207 100644 --- a/.github/workflows/cleanup_pr.yml +++ b/.github/workflows/cleanup_pr.yml @@ -27,7 +27,7 @@ jobs: echo "##[set-output name=branch;]$(echo ${{ github.event.pull_request.head.ref }})" - name: Delete folder on builds.jabref.org if: ${{ steps.checksecrets.outputs.secretspresent }} - uses: appleboy/ssh-action@v0.1.4 + uses: appleboy/ssh-action@v0.1.5 with: script: rm -rf /var/www/builds.jabref.org/www/${{ steps.extract_branch.outputs.branch }} || true host: build-upload.jabref.org diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 1a8d92e0878..121fb51d795 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -22,6 +22,7 @@ env: SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }} AstrophysicsDataSystemAPIKey: ${{ secrets.AstrophysicsDataSystemAPIKey }} IEEEAPIKey: ${{ secrets.IEEEAPIKey }} + BiodiversityHeritageApiKey: ${{ secrets.BiodiversityHeritageApiKey}} OSXCERT: ${{ secrets.OSX_SIGNING_CERT }} GRADLE_OPTS: -Xmx4g -Dorg.gradle.daemon=false -Dorg.gradle.vfs.watch=false JAVA_OPTS: -Xmx4g @@ -51,20 +52,20 @@ jobs: name: Create installer and portable version for ${{ matrix.displayName }} steps: - name: Fetch all history for all tags and branches - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.11 + uses: gittools/actions/gitversion/setup@v0.9.13 with: versionSpec: "5.x" - name: Run GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.11 + uses: gittools/actions/gitversion/execute@v0.9.13 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 18 distribution: 'temurin' cache: 'gradle' - name: Setup OSX key chain on OSX @@ -152,16 +153,16 @@ jobs: env: BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Fetch all history for all tags and branches run: git fetch --prune --unshallow - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.11 + uses: gittools/actions/gitversion/setup@v0.9.13 with: versionSpec: '5.x' - name: Run GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.11 + uses: gittools/actions/gitversion/execute@v0.9.13 - name: Get linux binaries uses: actions/download-artifact@master with: diff --git a/.github/workflows/gource.yml b/.github/workflows/gource.yml index bf04acc1d4c..253ef9702a8 100644 --- a/.github/workflows/gource.yml +++ b/.github/workflows/gource.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 - name: Determine dates diff --git a/.github/workflows/refresh-csl-subtrees.yml b/.github/workflows/refresh-csl-subtrees.yml index d7cdf3efbf1..85aad208e7e 100644 --- a/.github/workflows/refresh-csl-subtrees.yml +++ b/.github/workflows/refresh-csl-subtrees.yml @@ -6,6 +6,9 @@ on: - cron: '1 2 1,15 * *' workflow_dispatch: +permissions: + contents: read + jobs: publish: name: Refresh Citation Style Language Files @@ -13,7 +16,7 @@ jobs: if: github.repository == 'JabRef/jabref' steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: main fetch-depth: 0 @@ -42,7 +45,7 @@ jobs: cp buildres/csl/csl-locales/locales-en-US.xml src/main/resources/csl-locales/ git add . git commit -m"Refresh example styles" || true - - uses: peter-evans/create-pull-request@v3 + - uses: peter-evans/create-pull-request@v4 with: token: ${{ secrets.GH_TOKEN_UPDATE_GRADLE_WRAPPER }} branch: refresh-csl diff --git a/.github/workflows/refresh-journal-lists.yml b/.github/workflows/refresh-journal-lists.yml index eb2f9715f33..d975875963a 100644 --- a/.github/workflows/refresh-journal-lists.yml +++ b/.github/workflows/refresh-journal-lists.yml @@ -4,21 +4,27 @@ on: workflow_dispatch: # Allow to run manually +permissions: + contents: read + jobs: publish: + permissions: + contents: write # for peter-evans/create-pull-request to create branch + pull-requests: write # for peter-evans/create-pull-request to create a PR name: Refresh Journal List Files runs-on: ubuntu-latest steps: - name: Fetch all history for all tags and branches - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: main persist-credentials: false fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 18 distribution: 'temurin' cache: 'gradle' - name: Update journal lists @@ -46,7 +52,7 @@ jobs: # create .mv file cd $GITHUB_WORKSPACE ./gradlew generateJournalAbbreviationList - - uses: peter-evans/create-pull-request@v3 + - uses: peter-evans/create-pull-request@v4 with: token: ${{ secrets.GITHUB_TOKEN }} branch: update-journallist diff --git a/.github/workflows/snap.yml b/.github/workflows/snap.yml index 564ad5f0971..24bdde21743 100644 --- a/.github/workflows/snap.yml +++ b/.github/workflows/snap.yml @@ -30,7 +30,7 @@ jobs: env: SNAPCRAFT_LOGIN_FILE: ${{ secrets.SNAPCRAFT_LOGIN_FILE }} - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 # The image relies on https://builds.jabref.org/master/JabRef-5.0-portable_linux.tar.gz^ # See snap/snapcraft.yml for details - name: Run snapcraft build diff --git a/.github/workflows/tests-fetchers.yml b/.github/workflows/tests-fetchers.yml index 7371194d9f7..8bf681fb7cc 100644 --- a/.github/workflows/tests-fetchers.yml +++ b/.github/workflows/tests-fetchers.yml @@ -26,22 +26,26 @@ env: SpringerNatureAPIKey: ${{ secrets.SPRINGERNATUREAPIKEY_FOR_TESTS }} AstrophysicsDataSystemAPIKey: ${{ secrets.AstrophysicsDataSystemAPIKey_FOR_TESTS }} IEEEAPIKey: ${{ secrets.IEEEAPIKey_FOR_TESTS }} + BiodiversityHeritageApiKey: ${{ secrets.BiodiversityHeritageApiKey_FOR_TESTS}} concurrency: group: fetcher-tests-${{ github.head_ref }} cancel-in-progress: true +permissions: + contents: read + jobs: fetchertests: name: Fetcher tests runs-on: ubuntu-latest steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 18 distribution: 'temurin' cache: 'gradle' - name: Run fetcher tests diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 226c4275064..70cad8a62dd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,6 +13,7 @@ env: SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }} AstrophysicsDataSystemAPIKey: ${{ secrets.AstrophysicsDataSystemAPIKey }} IEEEAPIKey: ${{ secrets.IEEEAPIKey }} + BiodiversityHeritageApiKey: ${{ secrets.BiodiversityHeritageApiKey}} GRADLE_OPTS: -Xmx4g JAVA_OPTS: -Xmx4g @@ -26,18 +27,20 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 18 distribution: 'temurin' cache: 'gradle' - name: Run check style reporter uses: nikitasavinov/checkstyle-action@master with: - reporter: github-pr-check + reporter: github-pr-review + github_token: ${{ secrets.GITHUB_TOKEN }} checkstyle_config: 'config/checkstyle/checkstyle_reviewdog.xml' + checkstyle_version: '10.3' - name: Run checkstyle gradle run: ./gradlew checkstyleMain checkstyleTest checkstyleJmh - name: Run markdown-lint @@ -50,11 +53,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 18 distribution: 'temurin' cache: 'gradle' - name: Run tests @@ -82,11 +85,11 @@ jobs: options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 18 distribution: 'temurin' cache: 'gradle' - name: Run tests on PostgreSQL @@ -116,11 +119,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 18 distribution: 'temurin' cache: 'gradle' - name: Run GUI tests @@ -154,11 +157,11 @@ jobs: env: SNAPCRAFT_LOGIN_FILE: ${{ secrets.CODECOV_TOKEN }} - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 18 distribution: 'temurin' cache: 'gradle' - name: Update test coverage metrics @@ -174,5 +177,5 @@ jobs: name: "Validate Gradle Wrapper" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/update-gradle-wrapper.yml b/.github/workflows/update-gradle-wrapper.yml index b27c660e5cf..bed3b544fed 100644 --- a/.github/workflows/update-gradle-wrapper.yml +++ b/.github/workflows/update-gradle-wrapper.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Update Gradle Wrapper uses: gradle-update/update-gradle-wrapper-action@v1 diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile new file mode 100644 index 00000000000..007108a0f49 --- /dev/null +++ b/.gitpod.Dockerfile @@ -0,0 +1,8 @@ +# See https://www.gitpod.io/docs/java-in-gitpod/ for a full documentation of Java in GitPod + +FROM gitpod/workspace-full + +# All available versions can be listed using sdk ls java +# More information about SDKMAN available at https://github.com/sdkman/sdkman-cli#sdkman-cli +RUN bash -c ". /home/gitpod/.sdkman/bin/sdkman-init.sh \ + && sdk install java 18.0.1.1-open" diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 00000000000..a0aa262ea90 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,16 @@ +image: + file: .gitpod.Dockerfile +tasks: + - init: ./gradlew assemble +jetbrains: + intellij: + plugins: + - CheckStyle-IDEA + - zielu.gittoolbox +vscode: + extensions: + - redhat.java + - richardwillis.vscode-gradle + - vscjava.vscode-java-debug + - kiteco.kite + - DavidAnson.vscode-markdownlint diff --git a/.idea/runConfigurations/JabRef_Main.xml b/.idea/runConfigurations/JabRef_Main.xml index a588730b31a..731578b5c75 100644 --- a/.idea/runConfigurations/JabRef_Main.xml +++ b/.idea/runConfigurations/JabRef_Main.xml @@ -2,7 +2,7 @@