diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 2bece377356..9da2118305a 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - master-release paths-ignore: - 'docs/**' - 'src/test/**' @@ -42,24 +43,16 @@ jobs: steps: - name: Checkout source - uses: actions/checkout@v2-beta - with: - fetch-depth: 0 - - name: Fetch tags and master for GitVersion - run: | - git fetch --tags origin - git rev-parse --verify master - if (-not $?) { - git branch --force --create-reflog master origin/master - } - shell: pwsh + uses: actions/checkout@v2 + - name: Fetch all history for all tags and branches + run: git fetch --prune --unshallow - name: Install GitVersion - uses: gittools/actions/setup-gitversion@v0.3 + uses: gittools/actions/gitversion/setup@v0.9.1 with: - versionSpec: '5.1.2' + versionSpec: '5.1.3' - name: Run GitVersion id: gitversion - uses: gittools/actions/execute-gitversion@v0.3 + uses: gittools/actions/gitversion/execute@v0.9.1 - name: Set up JDK uses: actions/setup-java@v1 with: @@ -113,24 +106,9 @@ jobs: - name: Package application image run: ${{ matrix.archivePortable }} shell: bash - - name: Build snap (1) Setup snapcraft - uses: jhenstridge/snapcraft-build-action@v1 - id: snapcraft - if: matrix.displayName == 'linux' - - name: Build snap (2) Run build - run: | - mv ${{ steps.snapcraft.outputs.snap }} build/distribution/ - if: matrix.displayName == 'linux' - - name: Build snap (3) Upload snap - if: matrix.displayName == 'linux' && github.ref == 'refs/heads/master' - env: - SNAPCRAFT_LOGIN_FILE: ${{ secrets.SNAPCRAFT_LOGIN_FILE }} - run: | - mkdir .snapcraft && echo ${SNAPCRAFT_LOGIN_FILE} | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg - snapcraft push build/distribution/jabref*.snap --release edge || true - shell: bash - name: Rename files run: | + get-childitem -Path build/distribution/* get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace "${{ steps.gitversion.outputs.AssemblySemVer }}","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}"} get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace "portable","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-portable"} shell: pwsh @@ -145,24 +123,16 @@ jobs: needs: [build] steps: - name: Checkout source - uses: actions/checkout@v2-beta - with: - fetch-depth: 0 - - name: Fetch tags and master for GitVersion - run: | - git fetch --tags origin - git rev-parse --verify master - if (-not $?) { - git branch --force --create-reflog master origin/master - } - shell: pwsh + uses: actions/checkout@v2 + - name: Fetch all history for all tags and branches + run: git fetch --prune --unshallow - name: Install GitVersion - uses: gittools/actions/setup-gitversion@v0.3 + uses: gittools/actions/gitversion/setup@v0.9.1 with: - versionSpec: '5.1.2' + versionSpec: '5.1.3' - name: Run GitVersion id: gitversion - uses: gittools/actions/execute-gitversion@v0.3 + uses: gittools/actions/gitversion/execute@v0.9.1 - name: Get linux binaries uses: actions/download-artifact@master with: diff --git a/.github/workflows/snap.yml b/.github/workflows/snap.yml new file mode 100644 index 00000000000..fe175294cbf --- /dev/null +++ b/.github/workflows/snap.yml @@ -0,0 +1,26 @@ +name: Snap + +on: + schedule: + # run on each day + - cron: '33 4 * * *' + +jobs: + build: + runs-on: ubuntu-latest + name: Create snapcraft image + + steps: + - name: Checkout source + uses: actions/checkout@v2 + # The image relies on https://builds.jabref.org/master/JabRef-5.0-portable_linux.tar.gz^ + # See snap/snapcraft.yml for details + - name: Build snap (1) Run build + uses: jhenstridge/snapcraft-build-action@v1 + id: snapcraft + - name: Build snap (2) Upload snap + uses: jhenstridge/snapcraft-publish-action@v1 + with: + store_login: ${{ secrets.SNAPCRAFT_LOGIN_FILE }} + snap: ${{ steps.snapcraft.outputs.snap }} + release: edge diff --git a/.gitignore b/.gitignore index 262f7cb8401..61271852342 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,9 @@ status.md # Install4J install4j6/ +# JDK14 (see .github/deployment.yml for details) +jdk-14/ + # Python __pycache__/ diff --git a/.mailmap b/.mailmap index 7c614bfb627..2345c1529e1 100644 --- a/.mailmap +++ b/.mailmap @@ -186,3 +186,5 @@ Michal Rican Param Mittal Victor Michelan P4trice <34972281+P4trice@users.noreply.github.com> +Julien Bénard <50318255+Julien29121998@users.noreply.github.com> +Alexsandro Lauber diff --git a/AUTHORS b/AUTHORS index da7ac9bf114..67b6567500e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -77,6 +77,7 @@ Daniel Svärd David Gleich David Méndez David Weitzman +Dawid Motyka Dawid Owoc Deepak Kumar Dennis Tschechlov @@ -112,6 +113,7 @@ ffffatgoose Florian Beetz Florian Straßer Foivos Christoulakis +fpguy Francois Charette Frank Steimle frasca80 @@ -121,6 +123,7 @@ Galileo Sartor Geoffrey Taerim Kim Gert Renckens Gregor Herrmann +guenesaydin Guillaume Gardey Hakan Duran Hannes Restel @@ -141,6 +144,7 @@ Jeff Miller Jeffrey Kuhn Jeffrey Sander Jens Döcke +joeyzgraggen Johannes Hupe Johannes Manner John David @@ -153,6 +157,7 @@ josephshin93 Joshua Ramon Enslin José Jesús Sinohui Fernández Julian Pfeifer +Julien Bénard Jure Slak József Pallagi Jörg Lenhard @@ -182,7 +187,9 @@ Li Zhilin Ling Wang Linus Dietz Lorenzo Genta +Lucas Beretti Luciana de Melo e Abud +Lugduni Desrosiers Luis Romero Mairieli Wessel Malik Atalla @@ -203,6 +210,7 @@ Mattia Bunel Mattias Ulbrich mcmoody Meltem Demirköprü +MhhhxX Michael Beckmann Michael Falkenthal Michael Lass @@ -230,10 +238,12 @@ Nico Schlömer Nicolas Pavillon Nikita Borovikov nikmilpv +NikodemKch Niv Ierushalmi Nivedha Sunderraj Nizar N. Batada noravanq +obsluk00 Olaf Lenz Oliver Beckmann Oliver Kopp @@ -304,6 +314,7 @@ Sven Jäger systemoperator Thiago Toledo Thomas Arildsen +Thomas F. Duellmann Thomas Ilsche Thorsten Dahlheimer Tim Kilian @@ -313,6 +324,7 @@ Tobias Boceck Tobias Bouschen Tobias Denkinger Tobias Diez +Tomás Morales de Luna Tony K Toralf Senger uid112001 @@ -321,6 +333,7 @@ Ulrik Stervbo UltimaBGD Uwe Kuehn Valentin Pons +Venceslas Roullier Victor Figueira Victor Michelan Vincent W. Yang diff --git a/CHANGELOG.md b/CHANGELOG.md index 622d0f9797e..f92689a0e3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,26 @@ # Changelog All notable changes to this project will be documented in this file. -This project **does not** adhere to [Semantic Versioning](http://semver.org/). -This file tries to follow the conventions proposed by [keepachangelog.com](http://keepachangelog.com/). -Here, the categories "Changed" for added and changed functionality, -"Fixed" for fixed functionality, and -"Removed" for removed functionality are used. - +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `#NUM`. +Note that this project **does not** adhere to [Semantic Versioning](http://semver.org/). ## [Unreleased] +### Added + +### Changed + +### Fixed + +### Removed + +## [5.0] – 2020-03-06 + ### Changed -- We reintroduced the possibility to extract references from plain text (using GROBID) [#5614](https://github.com/JabRef/jabref/pull/5614) +- Added browser integration to the snap package for firefox/chromium browsers. [#6062](https://github.com/JabRef/jabref/pull/6062) +- We reintroduced the possibility to extract references from plain text (using [GROBID](https://grobid.readthedocs.io/en/latest/)). [#5614](https://github.com/JabRef/jabref/pull/5614) - We changed the open office panel to show buttons in rows of three instead of going straight down to save space as the button expanded out to take up unnecessary horizontal space. [#5479](https://github.com/JabRef/jabref/issues/5479) - We cleaned up the group add/edit dialog. [#5826](https://github.com/JabRef/jabref/pull/5826) - We reintroduced the index column. [#5844](https://github.com/JabRef/jabref/pull/5844) @@ -21,6 +28,7 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - We made the filters more easily accessible in the integrity check dialog. [#5955](https://github.com/JabRef/jabref/pull/5955) - We reimplemented and improved the dialog "Customize entry types" [#4719](https://github.com/JabRef/jabref/issues/4719) - We added support for searching ShortScience for an entry through the user's browser. [#6018](https://github.com/JabRef/jabref/pull/6018) +- We reimplemented and improved the dialog "Customize entry types". [#4719](https://github.com/JabRef/jabref/issues/4719) ### Fixed @@ -48,13 +56,13 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - We fixed an issue where the group and the link column were not updated after changing the entry in the main table. [#5985](https://github.com/JabRef/jabref/issues/5985) - We fixed an issue where reordering the groups was not possible after inserting an article. [#6008](https://github.com/JabRef/jabref/issues/6008) - We fixed an issue where citation styles except the default "Preview" could not be used. [#56220](https://github.com/JabRef/jabref/issues/5622) +- We fixed an issue where an exception was thrown when adding a save action without a selected formatter in the library properties [#6069](https://github.com/JabRef/jabref/issues/6069) ### Removed - Ampersands are no longer escaped by default in the `bib` file. If you want to keep the current behaviour, you can use the new "Escape Ampersands" formatter as a save action. [#5869](https://github.com/JabRef/jabref/issues/5869) - The "Merge Entries" entry was removed from the Quality Menu. Users should use the right-click menu instead. [#6021](https://github.com/JabRef/jabref/pull/6021) - ## [5.0-beta] – 2019-12-15 ### Changed @@ -131,12 +139,12 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - We removed an internal step in the [ISBN-to-BibTeX fetcher](https://docs.jabref.org/import-using-publication-identifiers/isbntobibtex): The [ISBN to BibTeX Converter](https://manas.tungare.name/software/isbn-to-bibtex) by [@manastungare](https://github.com/manastungare) is not used anymore, because it is offline: "people using this tool have not been generating enough sales for Amazon." - We removed the option to control the default drag and drop behaviour. You can use the modifier keys (like CtrL or Alt) instead. - ## [5.0-alpha] – 2019-08-25 ### Changed -- We added eventitle, eventdate and venue fields to @unpublished entry type. -- We added @software and @dataSet entry type to biblatex. + +- We added eventitle, eventdate and venue fields to `@unpublished` entry type. +- We added `@software` and `@dataSet` entry type to biblatex. - All fields are now properly sorted alphabetically (in the subgroups of required/optional fields) when the entry is written to the bib file. - We fixed an issue where some importers used the field `pubstatus` instead of the standard BibTeX field `pubstate`. - We changed the latex command removal for docbook exporter. [#3838](https://github.com/JabRef/jabref/issues/3838) @@ -155,12 +163,12 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# Because of this change, the last-used cleanup operations were reset. - We changed the minimum required version of Java to 1.8.0_171, as this is the latest release for which the automatic Java update works. [#4093](https://github.com/JabRef/jabref/issues/4093) - The special fields like `Printed` and `Read status` now show gray icons when the row is hovered. -- We added a button in the tab header which allows you to close the database with one click. https://github.com/JabRef/jabref/issues/494 -- Sorting in the main table now takes information from cross-referenced entries into account. https://github.com/JabRef/jabref/issues/2808 +- We added a button in the tab header which allows you to close the database with one click. [#494](https://github.com/JabRef/jabref/issues/494) +- Sorting in the main table now takes information from cross-referenced entries into account. [#2808](https://github.com/JabRef/jabref/issues/2808) - If a group has a color specified, then entries matched by this group have a small colored bar in front of them in the main table. - Change default icon for groups to a circle because a colored version of the old icon was hard to distinguish from its black counterpart. - In the main table, the context menu appears now when you press the "context menu" button on the keyboard. [feature request in the forum](http://discourse.jabref.org/t/how-to-enable-keyboard-context-key-windows) -- We added icons to the group side panel to quickly switch between `union` and `intersection` group view mode https://github.com/JabRef/jabref/issues/3269. +- We added icons to the group side panel to quickly switch between `union` and `intersection` group view mode. [#3269](https://github.com/JabRef/jabref/issues/3269). - We use `https` for [fetching from most online bibliographic database](https://docs.jabref.org/import-using-online-bibliographic-database). - We changed the default keyboard shortcuts for moving between entries when the entry editor is active to ̀alt + up/down. - Opening a new file now prompts the directory of the currently selected file, instead of the directory of the last opened file. @@ -172,8 +180,8 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - We removed the redundant new lines of markings and wrapped the summary in the File annotation tab. [#3823](https://github.com/JabRef/jabref/issues/3823) - We add auto URL formatting when user paste link to URL field in entry editor. [koppor#254](https://github.com/koppor/jabref/issues/254) - We added a minimum height for the entry editor so that it can no longer be hidden by accident. [#4279](https://github.com/JabRef/jabref/issues/4279) -- We added a new keyboard shortcut so that the entry editor could be closed by Ctrl + E. [#4222] (https://github.com/JabRef/jabref/issues/4222) -- We added an option in the preference dialog box, that allows user to pick the dark or light theme option. [#4130] (https://github.com/JabRef/jabref/issues/4130) +- We added a new keyboard shortcut so that the entry editor could be closed by Ctrl + E. [#4222](https://github.com/JabRef/jabref/issues/4222) +- We added an option in the preference dialog box, that allows user to pick the dark or light theme option. [#4130](https://github.com/JabRef/jabref/issues/4130) - We updated the Related Articles tab to accept JSON from the new version of the Mr. DLib service - We added an option in the preference dialog box that allows user to choose behavior after dragging and dropping files in Entry Editor. [#4356](https://github.com/JabRef/jabref/issues/4356) - We added the ability to have an export preference where previously "File"-->"Export"/"Export selected entries" would not save the user's preference[#4495](https://github.com/JabRef/jabref/issues/4495) @@ -206,24 +214,23 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - We added an option in preferences to allow for integers in field "edition" when running database in bibtex mode. [#4680](https://github.com/JabRef/jabref/issues/4680) - We added the ability to use negation in export filter layouts. [#5138](https://github.com/JabRef/jabref/pull/5138) - ### Fixed - We fixed an issue where JabRef died silently for the user without enough inotify instances [#4874](https://github.com/JabRef/jabref/issues/4847) - We fixed an issue where corresponding groups are sometimes not highlighted when clicking on entries [#3112](https://github.com/JabRef/jabref/issues/3112) - We fixed an issue where custom exports could not be selected in the 'Export (selected) entries' dialog [#4013](https://github.com/JabRef/jabref/issues/4013) -- Italic text is now rendered correctly. https://github.com/JabRef/jabref/issues/3356 -- The entry editor no longer gets corrupted after using the source tab. https://github.com/JabRef/jabref/issues/3532 https://github.com/JabRef/jabref/issues/3608 https://github.com/JabRef/jabref/issues/3616 -- We fixed multiple issues where entries did not show up after import if a search was active. https://github.com/JabRef/jabref/issues/1513 https://github.com/JabRef/jabref/issues/3219 -- We fixed an issue where the group tree was not updated correctly after an entry was changed. https://github.com/JabRef/jabref/issues/3618 -- We fixed an issue where a right-click in the main table selected a wrong entry. https://github.com/JabRef/jabref/issues/3267 -- We fixed an issue where in rare cases entries where overlayed in the main table. https://github.com/JabRef/jabref/issues/3281 -- We fixed an issue where selecting a group messed up the focus of the main table and the entry editor. https://github.com/JabRef/jabref/issues/3367 -- We fixed an issue where composite author names were sorted incorrectly. https://github.com/JabRef/jabref/issues/2828 +- Italic text is now rendered correctly. [#3356](https://github.com/JabRef/jabref/issues/3356) +- The entry editor no longer gets corrupted after using the source tab. [#3532](https://github.com/JabRef/jabref/issues/3532) [#3608](https://github.com/JabRef/jabref/issues/3608) [#3616](https://github.com/JabRef/jabref/issues/3616) +- We fixed multiple issues where entries did not show up after import if a search was active. [#1513](https://github.com/JabRef/jabref/issues/1513) [#3219](https://github.com/JabRef/jabref/issues/3219)) +- We fixed an issue where the group tree was not updated correctly after an entry was changed. [#3618](https://github.com/JabRef/jabref/issues/3618) +- We fixed an issue where a right-click in the main table selected a wrong entry. [#3267](https://github.com/JabRef/jabref/issues/3267) +- We fixed an issue where in rare cases entries where overlayed in the main table. [#3281](https://github.com/JabRef/jabref/issues/3281) +- We fixed an issue where selecting a group messed up the focus of the main table and the entry editor. [#3367](https://github.com/JabRef/jabref/issues/3367) +- We fixed an issue where composite author names were sorted incorrectly. [#2828](https://github.com/JabRef/jabref/issues/2828) - We fixed an issue where commands followed by `-` didn't work. [#3805](https://github.com/JabRef/jabref/issues/3805) - We fixed an issue where a non-existing aux file in a group made it impossible to open the library. [#4735](https://github.com/JabRef/jabref/issues/4735) - We fixed an issue where some journal names were wrongly marked as abbreviated. [#4115](https://github.com/JabRef/jabref/issues/4115) -- We fixed an issue where the custom file column were sorted incorrectly. https://github.com/JabRef/jabref/issues/3119 +- We fixed an issue where the custom file column were sorted incorrectly. [#3119](https://github.com/JabRef/jabref/issues/3119) - We improved the parsing of author names whose infix is abbreviated without a dot. [#4864](https://github.com/JabRef/jabref/issues/4864) - We fixed an issues where the entry losses focus when a field is edited and at the same time used for sorting. https://github.com/JabRef/jabref/issues/3373 - We fixed an issue where the menu on Mac OS was not displayed in the usual Mac-specific way. https://github.com/JabRef/jabref/issues/3146 @@ -231,13 +238,13 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - We fixed an issue where the order of fields in customized entry types was not saved correctly. [#4033](http://github.com/JabRef/jabref/issues/4033) - We fixed an issue where renaming a group did not change the group name in the interface. [#3189](https://github.com/JabRef/jabref/issues/3189) - We fixed an issue where the groups tree of the last database was still shown even after the database was already closed. -- We fixed an issue where the "Open file dialog" may disappear behind other windows. https://github.com/JabRef/jabref/issues/3410 +- We fixed an issue where the "Open file dialog" may disappear behind other windows. [#3410](https://github.com/JabRef/jabref/issues/3410) - We fixed an issue where the number of entries matched was not updated correctly upon adding or removing an entry. [#3537](https://github.com/JabRef/jabref/issues/3537) - We fixed an issue where the default icon of a group was not colored correctly. - We fixed an issue where the first field in entry editor was not focused when adding a new entry. [#4024](https://github.com/JabRef/jabref/issues/4024) -- We reworked the "Edit file" dialog to make it resizeable and improved the workflow for adding and editing files https://github.com/JabRef/jabref/issues/2970 +- We reworked the "Edit file" dialog to make it resizeable and improved the workflow for adding and editing files [#2970](https://github.com/JabRef/jabref/issues/2970) - We fixed an issue where custom name formatters were no longer found correctly. [#3531](https://github.com/JabRef/jabref/issues/3531) -- We fixed an issue where the month was not shown in the preview https://github.com/JabRef/jabref/issues/3239. +- We fixed an issue where the month was not shown in the preview. [#3239](https://github.com/JabRef/jabref/issues/3239) - Rewritten logic to detect a second jabref instance. [#4023](https://github.com/JabRef/jabref/issues/4023) - We fixed an issue where the "Convert to BibTeX-Cleanup" moved the content of the `file` field to the `pdf` field [#4120](https://github.com/JabRef/jabref/issues/4120) - We fixed an issue where the preview pane in entry preview in preferences wasn't showing the citation style selected [#3849](https://github.com/JabRef/jabref/issues/3849) @@ -286,6 +293,9 @@ The changelog of JabRef 4.x is available at the [v4.x branch](https://github.com The changelog of JabRef 3.x is available at the [v3.8.2 tag](https://github.com/JabRef/jabref/blob/v3.8.2/CHANGELOG.md). The changelog of JabRef 2.11 and all previous versions is available as [text file in the v2.11.1 tag](https://github.com/JabRef/jabref/blob/v2.11.1/CHANGELOG). -[Unreleased]: https://github.com/JabRef/jabref/compare/v5.0-beta...HEAD +[Unreleased]: https://github.com/JabRef/jabref/compare/v5.0...HEAD +[5.0]: https://github.com/JabRef/jabref/compare/v5.0-beta...v5.0 [5.0-beta]: https://github.com/JabRef/jabref/compare/v5.0-alpha...v5.0-beta [5.0-alpha]: https://github.com/JabRef/jabref/compare/v4.3...v5.0-alpha + + diff --git a/GitVersion.yml b/GitVersion.yml index 1047b572bdf..1c382d48a27 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -5,5 +5,5 @@ mode: ContinuousDeployment branches: master: regex: ^master - tag: beta - pre-release-weight: 30000 # 0 after stable release, 15000 before alpha release, 30000 before beta release, 50000 before stable release + tag: '' + pre-release-weight: 0 # 0 after stable release, 15000 before alpha release, 30000 before beta release, 50000 before stable release diff --git a/README.md b/README.md index 55c60c049a3..3afd47791ff 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,14 @@ JabRef is an open-source, cross-platform citation and reference management tool. Stay on top of your literature: JabRef helps you to collect and organize sources, find the paper you need and discover the latest research. -![main table](https://www.jabref.org/img/JabRef-4-0-MainTable.png) +![main table](https://www.jabref.org/img/jabref-5-0-maintable.png) ## Features JabRef is a cross-platform application that works on Windows, Linux and Mac OS X. It is available free of charge and is actively developed. JabRef supports you in every step of your research work. -#### Collect +### Collect - Search across many online scientific catalogues like CiteSeer, CrossRef, Google Scholar, IEEEXplore, INSPIRE-HEP, Medline PubMed, MathSciNet, Springer, arXiv, and zbMATH - Import options for over 15 reference formats @@ -24,8 +24,8 @@ JabRef supports you in every step of your research work. - Fetch complete bibliographic information based on ISBN, DOI, PubMed-ID and arXiv-ID - Extract metadata from PDFs - [JabFox Firefox Add-on](https://addons.mozilla.org/en-US/firefox/addon/jabfox/) lets you import new references directly from the browser with one click - -#### Organize + +### Organize - Group your research into hierarchical collections and organize research items based on keywords/tags, search terms or your manual assignments - Advanced search and filter features @@ -35,16 +35,16 @@ JabRef supports you in every step of your research work. - Find and merge duplicates - Attach related documents: 20 different kinds of documents supported out of the box, completely customizable and extendable - Automatically rename and move associated documents according to customizable rules -- Keep track of what you read: ranking, priority, printed, quality-assured +- Keep track of what you read: ranking, priority, printed, quality-assured -#### Cite +### Cite - Native [BibTeX] and [Biblatex] support - Cite-as-you-write functionality for external applications such as Emacs, Kile, LyX, Texmaker, TeXstudio, Vim and WinEdt. - Format references in one of the many thousand built-in citation styles or create your style - Support for Word and LibreOffice/OpenOffice for inserting and formatting citations -#### Share +### Share - Many built-in export options or create your export format - Library is saved as a simple text file and thus it is easy to share with others via Dropbox and is version-control friendly @@ -55,9 +55,9 @@ JabRef supports you in every step of your research work. Fresh development builds are available at [builds.jabref.org](https://builds.jabref.org/master/). The [latest stable release is available at FossHub](https://www.fosshub.com/JabRef.html). - - Windows: JabRef offers an installer, which also adds a shortcut to JabRef to your start menu. Please also see our [Windows FAQ](https://docs.jabref.org/faq/faqwindows) - - Linux: Please see our [Installation Guide](https://docs.jabref.org/general/installation). - - Mac OS X: Please see our [Mac OS X FAQ](https://docs.jabref.org/faq/faqosx). +- Windows: JabRef offers an installer, which also adds a shortcut to JabRef to your start menu. Please also see our [Windows FAQ](https://docs.jabref.org/faq/faqwindows) +- Linux: Please see our [Installation Guide](https://docs.jabref.org/general/installation). +- Mac OS X: Please see our [Mac OS X FAQ](https://docs.jabref.org/faq/faqosx). ## Bug Reports, Suggestions, Other Feedback @@ -65,7 +65,7 @@ The [latest stable release is available at FossHub](https://www.fosshub.com/JabR We are thankful for any bug reports or other feedback. If you have ideas for new features you want to be included in JabRef, [tell us in our forum](http://discourse.jabref.org/c/features)! -If you need support in using JabRef, please read [the documentation](https://docs.jabref.org/) first and have a look at our [community forum](https://discourse.jabref.org/c/help). +If you need support in using JabRef, please read [the documentation](https://docs.jabref.org/) first, the [frequently asked questions (FAQ)](https://docs.jabref.org/faq) and also have a look at our [community forum](https://discourse.jabref.org/c/help). You can use our [GitHub issue tracker](https://github.com/JabRef/jabref/issues) to file bug reports. An explanation of donation possibilities and usage of donations is available at our [donations page](https://donations.jabref.org). @@ -79,6 +79,7 @@ An explanation of donation possibilities and usage of donations is available at > Not a programmer? [Learn how to help.](http://contribute.jabref.org) Want to be part of a free and open-source project that tens of thousands of scientists use every day? Check out the ways you can contribute, below: + - For details on how to contribute, have a look at our [guidelines for contributing](CONTRIBUTING.md). - You are welcome to contribute new features. To get your code included into JabRef, just [fork](https://help.github.com/en/articles/fork-a-repo) the JabRef repository, make your changes, and create a [pull request](https://help.github.com/en/articles/about-pull-requests). - To work on existing JabRef issues, check out our [issue tracker](https://github.com/JabRef/jabref/issues). New to open source contributing? Look for issues with the ["good first issue"](https://github.com/JabRef/jabref/labels/good%20first%20issue) label to get started. diff --git a/codecov.yml b/codecov.yml index 78fd542fe8a..34bc965d211 100644 --- a/codecov.yml +++ b/codecov.yml @@ -6,4 +6,4 @@ coverage: project: default: threshold: 0.005 -comment: off +comment: false diff --git a/external-libraries.txt b/external-libraries.txt index 4548d3128a5..f67e09af7fd 100644 --- a/external-libraries.txt +++ b/external-libraries.txt @@ -1,26 +1,29 @@ +# External libraries + This document lists the fonts, icons, and libraries used by JabRef. This file is manually kept in sync with build.gradle and the binary jars contained in the lib/ directory. One can list all dependencies by using Gradle task `dependencyReport`. -It generated the file [build/reports/project/dependencies.txt](build/reports/project/dependencies.txt). +It generates the file [build/reports/project/dependencies.txt](build/reports/project/dependencies.txt). +There, [one can use](https://stackoverflow.com/a/49727249/873282) `sed 's/^.* //' | sort | uniq` to flatten the dependencies. -# Legend +## Legend -## License +### License We follow the [SPDX license identifiers](https://spdx.org/licenses/). In case you add a library, please use these identifiers. For instance, "BSD" is not exact enough, there are numerous variants out there: BSD-2-Clause, BSD-3-Clause-No-Nuclear-Warranty, ... Note that the SPDX license identifiers are different from the ones used by debian. See https://wiki.debian.org/Proposals/CopyrightFormat for more information. -# bst files +## bst files Project: IEEEtran Path: src/main/resources/bst/IEEEtran.bst URL: https://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/bibtex License: LPPL-1.3 -# Fonts and Icons +## Fonts and Icons The loading animation during loading of recommendations from Mr. DLib is created by and is free of use under license CC0 1.0. @@ -32,29 +35,44 @@ License: SIL Open Font License, Version 1.1 Note: It is important to include v1.5.54 or later as v1.5.54 is the first version offering fixed code points. Do not confuse with http://zavoloklom.github.io/material-design-iconic-font/ -# Libraries +## Libraries (Sorted alphabetically by Id) -Id: com.airhacks:afterburner.fx -Project: afterburner.fx -URL: https://github.com/AdamBien/afterburner.fx -License: Apache-2.0 - -Id: com.apple:AppleJavaExtensions -Project: AppleJavaExtensions -URL: https://developer.apple.com/legacy/library/samplecode/AppleJavaExtensions/Introduction/Intro.html -License: Apple License - Id: com.github.tomtung Project: latex2unicode URL: https://github.com/tomtung/latex2unicode License: Apache-2.0 -Id: com.impossibl.pgjdbc-ng:pgjdbc-ng -Project: pgjdbc-ng -URL: http://impossibl.github.io/pgjdbc-ng -License: BSD-3-Clause +Id: com.google.code.gson:gson +Project: Google Guava +URL: https://github.com/google/gson +License: Apache-2.0 + +Id: com.google.guava:failureaccess +Project: Google Guava +URL: https://github.com/google/guava +License: Apache-2.0 +Note: See https://github.com/google/guava/issues/3437 for a discussion that this dependency is really required. + +Id: com.google.guava:guava +Project: Google Guava +URL: https://github.com/google/guava +License: Apache-2.0 + +Id: com.google.j2objc:j2objc-annotations +Project: j2objc-annotations +URL: https://github.com/google/j2objc +License: Apache-2.0 + +Id: com.ibm.icu:icu4j +Project: International Components for Unicode for Java (ICU4J) +URL: https://wiki.eclipse.org/ICU4J + +Id: com.jfoenix:jfoenix +Project: JavaFX MAterial Design Library +URL: https://github.com/jfoenixadmin/JFoenix +License: Apache-2.0 Id: com.konghq.unirest Project: Unirest for Java @@ -76,31 +94,46 @@ Project: Oracle's JDBC drivers URL: https://repo1.maven.org/maven2/com/oracle/ojdbc/ojdbc10/19.3.0.0/ojdbc10-19.3.0.0.pom License: Oracle Free Use Terms and Conditions (FUTC) -Id: com.sibvisions.external.jvxfx:DnDTabPane -Project: Drag'n'Drop TabPane -URL: https://github.com/sibvisions/javafx.DndTabPane -License: EPL-1.0 +Id: com.sun.istack:istack-commons-runtime +Project: iStack Common Utility Code +URL: https://github.com/eclipse-ee4j/jaxb-istack-commons +License: BSD-3-Clause (with copyright as described in Eclipse Distribution License - v 1.0 - see https://wiki.spdx.org/view/Legal_Team/License_List/Licenses_Under_Consideration for details) + +Id: com.sun.xml.fastinfoset:FastInfoset +Project: Fast Infoset +URL: https://github.com/eclipse-ee4j/jaxb-fi +License: Apache-2.0 Id: commons-cli:commons-cli Project: Apache Commons CLI URL: http://commons.apache.org/cli/ License: Apache-2.0 +Id: commons-codec:commons-codec +Project: Apache Commons Codec +URL: https://commons.apache.org/proper/commons-codec/ +License: Apache-2.0 + Id: commons-logging:commons-logging Project: Apache Commons Logging URL: http://commons.apache.org/logging/ License: Apache-2.0 -Id: de.codecentric.centerdevice -Project: javafxsvg -URL: https://github.com/codecentric/javafxsvg -License: BSD 3-Clause +Id: de.jensd:fontawesomefx-commons +Project: FontAwesomeFX Commons +URL: https://bitbucket.org/Jerady/fontawesomefx +License: Apache-2.0 Id: de.jensd:fontawesomefx-materialdesignfont -Project: FontAwesomeFX +Project: FontAwesomeFX Material Design Font URL: https://bitbucket.org/Jerady/fontawesomefx License: Apache-2.0 +Id: de.saxsys:mvvmfx +Project: mvvm(fx) +URL: https://github.com/sialcasa/mvvmFX +License: Apache-2.0 + Id: de.saxsys:mvvmfx-validation Project: mvvm(fx) URL: https://github.com/sialcasa/mvvmFX @@ -111,6 +144,11 @@ Project: Citeproc-Java URL: http://michel-kraemer.github.io/citeproc-java/ Licence: Apache-2.0 +Id: eu.lestard:doc-annotations +Project: doc annotations +URL: https://github.com/lestard/doc-annotations +License: MIT + Id: info.debatty:java-string-similarity Project: Java String Similarity URL: https://github.com/tdebatty/java-string-similarity @@ -121,17 +159,37 @@ Project: java-diff-utils URL: https://github.com/java-diff-utils/java-diff-utils License: Apache-2.0 -Id: net.java.dev.glazedlists:glazedlists_java15 -Project: Glazed Lists -URL: http://www.glazedlists.com/ -License: LGPL-2.1 (not explicitly, but no comments in the source header) and MPL-2.0 +Id: jakarta.activation:jakarata.activation-api +Project: Jakarta Activation +URL: https://eclipse-ee4j.github.io/jaf/ +License: BSD-3-Clause -Id: org.antlr:antlr +Id: jakarta.annotation:jakarata.annotation-api +Project: Jakarta Annotations +URL: https://projects.eclipse.org/projects/ee4j.ca +License: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + +Id: jakarta.xml.bind:jakarta.xml.bind-api +Project: Jakarta XML Binding project +URL: https://github.com/eclipse-ee4j/jaxb-api +License: BSD-3-Clause; sometimes EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + +Id: net.jcip:jcip-annotations +Project: JCIP (Java Concurrency in Practice) Annotations under Apache License +URL: http://stephenc.github.io/jcip-annotations/ +License: Apache-2.0 + +Id: net.jodah:typetools +Project: TypeTools +URL: https://github.com/jhalterman/typetools +License: Apache-2.0 + +Id: org.antlr:antlr-runtime Project: ANTLR 3 URL: http://www.antlr3.org/ License: BSD-3-Clause -Id: org.antlr:antlr4 +Id: org.antlr:antlr4-runtime Project: ANTLR 4 URL: http://www.antlr.org/ License: BSD-3-Clause @@ -146,6 +204,11 @@ Project: Apache Commons Lang URL: https://commons.apache.org/proper/commons-lang/ License: Apache-2.0 +Id: org.apache.commons:commons-text +Project: Apache Commons Text +URL: https://commons.apache.org/proper/commons-text/ +License: Apache-2.0 + Id: org.apache.logging.log4j Project: Apache Log2j 2 URL: http://logging.apache.org/log4j/2.x/ @@ -166,6 +229,11 @@ Project: Apache PDFBox URL: http://pdfbox.apache.org License: Apache-2.0 +Id: org.apache.tika:tika-core +Project: Apache Tika +URL: https://tika.apache.org/ +License: Apache-2.0 + Id: org.bouncycastle:bcprov-jdk15on Project: The Legion of the Bouncy Castle URL: https://www.bouncycastle.org/ @@ -186,7 +254,7 @@ Project: ControlsFX URL: http://fxexperience.com/controlsfx/ License: BSD-3-Clause -Id: org.fx.misc.easybind:easybind +Id: org.fxmisc.easybind:easybind Project: EasyBind URL: https://github.com/TomasMikula/EasyBind License: BSD-2-Clause @@ -211,6 +279,41 @@ Project: MariaDB Java Client URL: https://mariadb.com/kb/en/library/about-mariadb-connector-j/ License: LGPL-2.1-or-later +Id: org.openjfx:javafx-base +Project JavaFX +URL: https://openjfx.io/ +License: GPL-2.0 WITH Classpath-exception-2.0 + +Id: org.openjfx:javafx-controls +Project JavaFX +URL: https://openjfx.io/ +License: GPL-2.0 WITH Classpath-exception-2.0 + +Id: org.openjfx:javafx-fxml +Project JavaFX +URL: https://openjfx.io/ +License: GPL-2.0 WITH Classpath-exception-2.0 + +Id: org.openjfx:javafx-graphics +Project JavaFX +URL: https://openjfx.io/ +License: GPL-2.0 WITH Classpath-exception-2.0 + +Id: org.openjfx:javafx-media +Project JavaFX +URL: https://openjfx.io/ +License: GPL-2.0 WITH Classpath-exception-2.0 + +Id: org.openjfx:javafx-swing +Project JavaFX +URL: https://openjfx.io/ +License: GPL-2.0 WITH Classpath-exception-2.0 + +Id: org.openjfx:javafx-web +Project JavaFX +URL: https://openjfx.io/ +License: GPL-2.0 WITH Classpath-exception-2.0 + Id: org.openoffice:juh Project: OpenOffice.org URL: http://www.openoffice.org/api/SDK @@ -231,14 +334,97 @@ Project: OpenOffice.org URL: http://www.openoffice.org/api/SDK License: Apache-2.0 -Id: org.xmlunit:xmlunit-core -Project: XMLUnit -URL: http://www.xmlunit.org/ -License: Apache-2.0 - -Id: org.xmlunit:xmlunit-matchers -Project: XMLUnit -URL: http://www.xmlunit.org/ -License: Apache-2.0 - -The last entry has to end with an empty line. Otherwise the entry is not present in About.html. +## Sorted list of runtime dependencies output by gradle + +```text +com.github.tomtung:latex2unicode_2.12:0.2.6 +com.google.code.gson:gson:2.8.6 +com.google.errorprone:error_prone_annotations:2.3.4 +com.google.guava:failureaccess:1.0.1 +com.google.guava:guava:28.2-jre +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +com.google.j2objc:j2objc-annotations:1.3 +com.ibm.icu:icu4j:62.1 +com.jfoenix:jfoenix:9.0.9 +com.konghq:unirest-java:3.6.00 +com.microsoft.azure:applicationinsights-core:2.4.1 +com.microsoft.azure:applicationinsights-logging-log4j2:2.4.1 +com.oracle.ojdbc:ojdbc10:19.3.0.0 +com.oracle.ojdbc:ons:19.3.0.0 +com.oracle.ojdbc:osdt_cert:19.3.0.0 +com.oracle.ojdbc:osdt_core:19.3.0.0 +com.oracle.ojdbc:simplefan:19.3.0.0 +com.oracle.ojdbc:ucp:19.3.0.0 +com.sun.istack:istack-commons-runtime:3.0.8 +com.sun.xml.fastinfoset:FastInfoset:1.2.16 +commons-cli:commons-cli:1.4 +commons-codec:commons-codec:1.11 +commons-logging:commons-logging:1.2 +de.jensd:fontawesomefx-commons:11.0 +de.jensd:fontawesomefx-materialdesignfont:1.7.22-11 +de.saxsys:mvvmfx-validation:1.9.0-SNAPSHOT +de.saxsys:mvvmfx:1.8.0 +de.undercouch:citeproc-java:2.1.0-SNAPSHOT +eu.lestard:doc-annotations:0.2 +info.debatty:java-string-similarity:1.2.1 +io.github.java-diff-utils:java-diff-utils:4.5 +jakarta.activation:jakarta.activation-api:1.2.1 +jakarta.annotation:jakarta.annotation-api:1.3.5 +jakarta.xml.bind:jakarta.xml.bind-api:2.3.2 +net.jcip:jcip-annotations:1.0 +net.jodah:typetools:0.6.1 +org.antlr:antlr-runtime:3.5.2 +org.antlr:antlr4-runtime:4.8-1 +org.apache.commons:commons-csv:1.8 +org.apache.commons:commons-lang3:3.9 +org.apache.commons:commons-text:1.8 +org.apache.httpcomponents:httpasyncclient:4.1.4 +org.apache.httpcomponents:httpclient:4.5.11 +org.apache.httpcomponents:httpcore-nio:4.4.13 +org.apache.httpcomponents:httpcore:4.4.13 +org.apache.httpcomponents:httpmime:4.5.11 +org.apache.logging.log4j:log4j-api:3.0.0-SNAPSHOT +org.apache.logging.log4j:log4j-core:3.0.0-SNAPSHOT +org.apache.logging.log4j:log4j-jcl:3.0.0-SNAPSHOT +org.apache.logging.log4j:log4j-plugins:3.0.0-SNAPSHOT +org.apache.logging.log4j:log4j-slf4j18-impl:3.0.0-SNAPSHOT +org.apache.pdfbox:fontbox:2.0.18 +org.apache.pdfbox:pdfbox:2.0.18 +org.apache.pdfbox:xmpbox:2.0.18 +org.apache.tika:tika-core:1.23 +org.bouncycastle:bcprov-jdk15on:1.64 +org.checkerframework:checker-qual:2.10.0 +org.controlsfx:controlsfx:11.0.1 +org.fxmisc.easybind:easybind:1.0.3 +org.fxmisc.flowless:flowless:0.6.1 +org.fxmisc.richtext:richtextfx:0.10.4 +org.fxmisc.undo:undofx:2.1.0 +org.fxmisc.wellbehaved:wellbehavedfx:0.3.3 +org.glassfish.hk2.external:jakarta.inject:2.6.1 +org.glassfish.jaxb:jaxb-runtime:2.3.2 +org.glassfish.jaxb:txw2:2.3.2 +org.graalvm.js:js:19.2.1 +org.graalvm.regex:regex:19.2.1 +org.graalvm.sdk:graal-sdk:19.2.1 +org.graalvm.truffle:truffle-api:19.2.1 +org.jbibtex:jbibtex:1.0.17 +org.jsoup:jsoup:1.13.1 +org.jvnet.staxex:stax-ex:1.8.1 +org.mariadb.jdbc:mariadb-java-client:2.5.4 +org.openjfx:javafx-base:13.0.2 +org.openjfx:javafx-controls:13.0.2 +org.openjfx:javafx-fxml:13.0.2 +org.openjfx:javafx-graphics:13.0.2 +org.openjfx:javafx-media:13.0.2 +org.openjfx:javafx-swing:13.0.2 +org.openjfx:javafx-web:13.0.2 +org.ow2.asm:asm-analysis:6.2.1 +org.ow2.asm:asm-commons:6.2.1 +org.ow2.asm:asm-tree:6.2.1 +org.ow2.asm:asm-util:6.2.1 +org.ow2.asm:asm:6.2.1 +org.postgresql:postgresql:42.2.10 +org.reactfx:reactfx:2.0-M5 +org.scala-lang:scala-library:2.12.8 +org.slf4j:slf4j-api:2.0.0-alpha1 +``` diff --git a/scripts/generate-authors.sh b/scripts/generate-authors.sh index e79a6af3383..64a56329233 100755 --- a/scripts/generate-authors.sh +++ b/scripts/generate-authors.sh @@ -57,7 +57,7 @@ cd "$(dirname "$(readlink -f "$BASH_SOURCE")")/.." # authors %aN = author name # co-authors - coauthors=$(git log --grep=Co-authored | grep "Co-au" | grep "<" | sed "s/.*Co-authored-by: \(.*\) <.*/\1/") - echo -e "$authors\n$(git log --format='%aN')\n$coauthors" | grep -v "dependabot" | grep -v "halirutan" | grep -v "matthiasgeiger" | grep -v "Gitter Badger" | LC_ALL=C.UTF-8 sort --unique --ignore-case + coauthors=$(git log -i --grep=co-authored-by | grep -i "co-authored-by" | sed "s/.*co-authored-by: \(.*\)/\1/I" | sed "s/ <.*//") + echo -e "$authors\n$(git log --format='%aN')\n$coauthors" | grep -v "@Siedlerchr" | grep -v "^Christoph$" | grep -v "oscargus" | grep -v "dependabot" | grep -v "github actions" | grep -v "github actions" | grep -v "igorsteinmacher" | grep -v "halirutan" | grep -v "matthiasgeiger" | grep -v "Gitter Badger" | LC_ALL=C.UTF-8 sort --unique --ignore-case } > AUTHORS diff --git a/snap/hooks/connect-plug-etc-chromium-native-messaging-jabref b/snap/hooks/connect-plug-etc-chromium-native-messaging-jabref new file mode 100755 index 00000000000..2644fc7026a --- /dev/null +++ b/snap/hooks/connect-plug-etc-chromium-native-messaging-jabref @@ -0,0 +1,9 @@ +#!/bin/sh + +if [ ! -d /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts ]; then + echo "Missing directory, create it manually then try again:" + echo "sudo mkdir -p /etc/chromium/native-messaging-hosts" + exit 1 +fi + +cp "$SNAP/lib/native-messaging-host/chromium/org.jabref.jabref.json" /etc/chromium/native-messaging-hosts/org.jabref.jabref.json diff --git a/snap/hooks/connect-plug-etc-opt-chrome-native-messaging-jabref b/snap/hooks/connect-plug-etc-opt-chrome-native-messaging-jabref new file mode 100755 index 00000000000..025087770a7 --- /dev/null +++ b/snap/hooks/connect-plug-etc-opt-chrome-native-messaging-jabref @@ -0,0 +1,9 @@ +#!/bin/sh + +if [ ! -d /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts ]; then + echo "Missing directory, create it manually then try again:" + echo "sudo mkdir -p /etc/opt/chrome/native-messaging-hosts" + exit 1 +fi + +cp "$SNAP/lib/native-messaging-host/chromium/org.jabref.jabref.json" /etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json diff --git a/snap/hooks/connect-plug-browser-extension b/snap/hooks/connect-plug-hostfs-mozilla-native-messaging-jabref similarity index 60% rename from snap/hooks/connect-plug-browser-extension rename to snap/hooks/connect-plug-hostfs-mozilla-native-messaging-jabref index df5cde565f3..ac597118d7c 100755 --- a/snap/hooks/connect-plug-browser-extension +++ b/snap/hooks/connect-plug-hostfs-mozilla-native-messaging-jabref @@ -6,4 +6,4 @@ if [ ! -d /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts ]; then exit 1 fi -cp $SNAP/lib/org.jabref.jabref.json /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json \ No newline at end of file +cp "$SNAP/lib/native-messaging-host/firefox/org.jabref.jabref.json" /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json diff --git a/snap/hooks/disconnect-plug-etc-chromium-native-messaging-jabref b/snap/hooks/disconnect-plug-etc-chromium-native-messaging-jabref new file mode 100755 index 00000000000..e68ad21ca73 --- /dev/null +++ b/snap/hooks/disconnect-plug-etc-chromium-native-messaging-jabref @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ ! -f /etc/chromium/native-messaging-hosts/org.jabref.jabref.json ]; then + exit 0 +elif grep --quiet '"path": "/snap' /etc/chromium/native-messaging-hosts/org.jabref.jabref.json; then + rm /etc/chromium/native-messaging-hosts/org.jabref.jabref.json +fi diff --git a/snap/hooks/disconnect-plug-etc-opt-chrome-native-messaging-jabref b/snap/hooks/disconnect-plug-etc-opt-chrome-native-messaging-jabref new file mode 100755 index 00000000000..50eff0b9292 --- /dev/null +++ b/snap/hooks/disconnect-plug-etc-opt-chrome-native-messaging-jabref @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ ! -f /etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json ]; then + exit 0 +elif grep --quiet '"path": "/snap' /etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json; then + rm /etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json +fi diff --git a/snap/hooks/disconnect-plug-browser-extension b/snap/hooks/disconnect-plug-hostfs-mozilla-native-messaging-jabref similarity index 99% rename from snap/hooks/disconnect-plug-browser-extension rename to snap/hooks/disconnect-plug-hostfs-mozilla-native-messaging-jabref index 5af57cf27f9..280d1afc79d 100755 --- a/snap/hooks/disconnect-plug-browser-extension +++ b/snap/hooks/disconnect-plug-hostfs-mozilla-native-messaging-jabref @@ -4,4 +4,4 @@ if [ ! -f /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts/org.jabre exit 0 elif grep --quiet '"path": "/snap' /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json; then rm /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json -fi \ No newline at end of file +fi diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index ccba913feba..3734858e789 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -12,6 +12,28 @@ license: MIT architectures: - build-on: amd64 +plugs: + desktop: + desktop-legacy: + wayland: + unity7: + home: + opengl: + network-bind: + removable-media: + hostfs-mozilla-native-messaging-jabref: + interface: system-files + write: + - /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json + etc-opt-chrome-native-messaging-jabref: + interface: system-files + write: + - /etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json + etc-chromium-native-messaging-jabref: + interface: system-files + write: + - /etc/chromium/native-messaging-hosts/org.jabref.jabref.json + apps: jabref: command: bin/JabRef @@ -22,34 +44,13 @@ apps: environment: _JAVA_OPTIONS: "-Duser.home=$SNAP_USER_DATA" -plugs: - desktop: - desktop-legacy: - wayland: - unity7: - home: - opengl: - network-bind: - removable-media: - plugs: - hostfs-mozilla-native-messaging-jabref: - interface: system-files - write: - - /var/lib/snapd/hostfs/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json - hostfs-chrome-native-messaging-jabref: - interface: system-files - write: - - /var/lib/snapd/hostfs/etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json - hostfs-chromium-native-messaging-jabref: - interface: system-files - write: - - /var/lib/snapd/hostfs/etc/chromium/native-messaging-hosts/org.jabref.jabref.json + parts: jabref: plugin: dump - source: build/distribution/JabRef-portable_linux.tar.gz + # source: build/distribution/JabRef-5.0-portable_linux.tar.gz # Use this source for debug purposes: - # source: https://builds.jabref.org/master/JabRef-portable_linux.tar.gz + source: https://builds.jabref.org/master/JabRef-5.0-portable_linux.tar.gz stage-packages: - x11-utils override-build: | diff --git a/src/main/java/org/jabref/gui/cleanup/FieldFormatterCleanupsPanel.java b/src/main/java/org/jabref/gui/cleanup/FieldFormatterCleanupsPanel.java index f75e08b9761..70cc748e2b7 100644 --- a/src/main/java/org/jabref/gui/cleanup/FieldFormatterCleanupsPanel.java +++ b/src/main/java/org/jabref/gui/cleanup/FieldFormatterCleanupsPanel.java @@ -106,6 +106,7 @@ private void buildLayout() { actionsList = new ListView<>(actions); actionsList.setMinHeight(100.0); actionsList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); + new ViewModelListCellFactory() .withText(action -> action.getField().getDisplayName() + ": " + action.getFormatter().getName()) .withStringTooltip(action -> action.getFormatter().getDescription()) @@ -179,6 +180,7 @@ private GridPane getSelectorPanel() { .withStringTooltip(Formatter::getDescription) .install(formattersCombobox); EasyBind.subscribe(formattersCombobox.valueProperty(), e -> updateDescription()); + formattersCombobox.getSelectionModel().selectFirst(); builder.add(formattersCombobox, 3, 1); addButton = new Button(Localization.lang("Add")); diff --git a/src/main/java/org/jabref/logic/util/Version.java b/src/main/java/org/jabref/logic/util/Version.java index 0775fd6a0fb..c98b1d9b007 100644 --- a/src/main/java/org/jabref/logic/util/Version.java +++ b/src/main/java/org/jabref/logic/util/Version.java @@ -29,8 +29,9 @@ public class Version { private static final Version UNKNOWN_VERSION = new Version(); private final static Pattern VERSION_PATTERN = Pattern.compile("(?\\d+)(\\.(?\\d+))?(\\.(?\\d+))?(?-alpha|-beta)?(?-?dev)?.*"); - private static final String JABREF_GITHUB_RELEASES = "https://api.github.com/repos/JabRef/JabRef/releases"; + private final static Pattern CI_SUFFIX_PATTERN = Pattern.compile("-ci\\.\\d+"); + private static final String JABREF_GITHUB_RELEASES = "https://api.github.com/repos/JabRef/JabRef/releases"; private String fullVersion = BuildInfo.UNKNOWN_VERSION; private int major = -1; @@ -58,6 +59,10 @@ public static Version parse(String version) { Version parsedVersion = new Version(); + // remove "-ci.1" suffix + Matcher ciSuffixMatcher = CI_SUFFIX_PATTERN.matcher(version); + version = ciSuffixMatcher.replaceAll(""); + parsedVersion.fullVersion = version; Matcher matcher = VERSION_PATTERN.matcher(version); if (matcher.find()) { @@ -277,7 +282,7 @@ public static DevelopmentStage parse(String stage) { } else if (stage.equals(BETA.stage)) { return BETA; } - LOGGER.warn("Unknown development stage: " + stage); + LOGGER.warn("Unknown development stage: {}", stage); return UNKNOWN; } diff --git a/src/main/resources/csl-locales/CONTRIBUTING.md b/src/main/resources/csl-locales/CONTRIBUTING.md index 4f3c43b5591..86a47e1baa8 100644 --- a/src/main/resources/csl-locales/CONTRIBUTING.md +++ b/src/main/resources/csl-locales/CONTRIBUTING.md @@ -4,14 +4,14 @@ We welcome contributions to the Citation Style Language (CSL) locale files in th The CSL locale files provide the standard translations for automatic localization of CSL styles. As such, the CSL locale files should generally contain the most commonly used translations for a given locale. -Less common translations can be [provided in the individual CSL styles](http://docs.citationstyles.org/en/stable/specification.html#locale) that require them, which will overwrite the CSL locale file translations. +Less common translations can be [provided in the individual CSL styles](https://docs.citationstyles.org/en/stable/specification.html#locale) that require them, which will overwrite the CSL locale file translations. Because each CSL locale file offers the standard translations for all CSL styles, changes should be made conservatively and carefully. We will often ask a second native speaker and/or past contributor to look over your proposed changes. ## Licensing and crediting -By creating a pull request, you agree to license your contributions under the [Creative Commons Attribution-ShareAlike 3.0 Unported license](http://creativecommons.org/licenses/by-sa/3.0/) license. +By creating a pull request, you agree to license your contributions under the [Creative Commons Attribution-ShareAlike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/) license. In addition, if you're interested in being credited, please add yourself to the locale file as translator. See the example below (both the `` and `` elements are optional): diff --git a/src/main/resources/csl-styles/associacao-brasileira-de-normas-tecnicas-ufrgs.csl b/src/main/resources/csl-styles/associacao-brasileira-de-normas-tecnicas-ufrgs.csl index d6aa337e34e..15ee7cf73da 100644 --- a/src/main/resources/csl-styles/associacao-brasileira-de-normas-tecnicas-ufrgs.csl +++ b/src/main/resources/csl-styles/associacao-brasileira-de-normas-tecnicas-ufrgs.csl @@ -1,5 +1,5 @@ - diff --git a/src/main/resources/csl-styles/john-benjamins-publishing-company-linguistik-aktuell-linguistics-today.csl b/src/main/resources/csl-styles/john-benjamins-publishing-company-linguistik-aktuell-linguistics-today.csl index c874eab2bfc..9ff15e224f0 100644 --- a/src/main/resources/csl-styles/john-benjamins-publishing-company-linguistik-aktuell-linguistics-today.csl +++ b/src/main/resources/csl-styles/john-benjamins-publishing-company-linguistik-aktuell-linguistics-today.csl @@ -599,6 +599,11 @@ + + + + + diff --git a/src/main/resources/csl-styles/journal-of-forensic-sciences.csl b/src/main/resources/csl-styles/journal-of-forensic-sciences.csl index b7138121b17..08102ac4fb2 100644 --- a/src/main/resources/csl-styles/journal-of-forensic-sciences.csl +++ b/src/main/resources/csl-styles/journal-of-forensic-sciences.csl @@ -47,11 +47,7 @@ - - - - - + @@ -127,19 +123,19 @@ - + - - - - - + + + + + - + diff --git a/src/main/resources/csl-styles/laboratory-animal-science-professional.csl b/src/main/resources/csl-styles/laboratory-animal-science-professional.csl new file mode 100644 index 00000000000..adc6edd901d --- /dev/null +++ b/src/main/resources/csl-styles/laboratory-animal-science-professional.csl @@ -0,0 +1,228 @@ + + diff --git a/src/main/resources/csl-styles/pediatric-infectious-disease-journal.csl b/src/main/resources/csl-styles/pediatric-infectious-disease-journal.csl new file mode 100644 index 00000000000..b2c063db879 --- /dev/null +++ b/src/main/resources/csl-styles/pediatric-infectious-disease-journal.csl @@ -0,0 +1,262 @@ + + diff --git a/src/main/resources/csl-styles/the-university-of-tokyo-law-review.csl b/src/main/resources/csl-styles/the-university-of-tokyo-law-review.csl new file mode 100644 index 00000000000..86a699c2f94 --- /dev/null +++ b/src/main/resources/csl-styles/the-university-of-tokyo-law-review.csl @@ -0,0 +1,143 @@ + + diff --git a/src/main/resources/journals/journalList.csv b/src/main/resources/journals/journalList.csv index eb3a83416ce..993a4650bc5 100644 --- a/src/main/resources/journals/journalList.csv +++ b/src/main/resources/journals/journalList.csv @@ -11802,11 +11802,8 @@ Physica Scripta;Phys. Scr.;; Physica Scripta, T;Phys. Scr., T;; Physica Scripta, T.;Phys. Scr. T.;; Physica Status Solidi A: Applications and Materials Science;Phys. Status Solidi A;; -Physica Status Solidi AApplications and Material Science;Phys. Status Solidi A;; Physica Status Solidi B: Basic Solid State Physics;Phys. Status Solidi B;; -Physica Status Solidi BBasic Solid State Physics;Phys. Status Solidi B;; Physica Status Solidi C: Conferences and Critical Reviews;Phys. Status Solidi C;; -Physica Status Solidi CCurrent Topics in Solid State Physics;Phys. Status Solidi C;; Physica Status Solidi Rapid Research Letters;Phys. Status Solidi RRL;; Physical Biology;Phys. Biol.;; Physical Chemistry Chemical Physics;Phys. Chem. Chem. Phys.;; diff --git a/src/main/resources/l10n/JabRef_fr.properties b/src/main/resources/l10n/JabRef_fr.properties index 476f48bd790..db7a8ea2911 100644 --- a/src/main/resources/l10n/JabRef_fr.properties +++ b/src/main/resources/l10n/JabRef_fr.properties @@ -1336,9 +1336,9 @@ No\ results\ found.=Aucun résultat trouvé. Found\ %0\ results.=%0 résultats trouvés. Invalid\ regular\ expression=Expression régulière invalide plain\ text=texte brut -This\ search\ contains\ entries\ in\ which\ any\ field\ contains\ the\ regular\ expression\ %0=Cette recherche contient des entrées pour lesquelles au moins un champ contient l'expression régulière %0 -This\ search\ contains\ entries\ in\ which\ any\ field\ contains\ the\ term\ %0=Cette recherche contient des entrées pour lesquelles au moins un champ contient le terme %0 -This\ search\ contains\ entries\ in\ which=Cette recherche contient des entrées pour lequelles +This\ search\ contains\ entries\ in\ which\ any\ field\ contains\ the\ regular\ expression\ %0=Cette recherche renvoie des entrées pour lesquelles au moins un champ contient l'expression régulière %0 +This\ search\ contains\ entries\ in\ which\ any\ field\ contains\ the\ term\ %0=Cette recherche renvoie des entrées pour lesquelles au moins un champ contient le terme %0 +This\ search\ contains\ entries\ in\ which=Cette recherche renvoie des entrées pour lesquelles Hint\:\ To\ search\ specific\ fields\ only,\ enter\ for\ example\:=Astuce \: Pour rechercher uniquement des champs spécifiques, entrez par exemple \: Unable\ to\ autodetect\ OpenOffice/LibreOffice\ installation.\ Please\ choose\ the\ installation\ directory\ manually.=La détection automatique de OpenOffice/LibreOffice a échouée. Veuillez sélectionner manuellement le répertoire d'installation. diff --git a/src/test/java/org/jabref/logic/util/VersionTest.java b/src/test/java/org/jabref/logic/util/VersionTest.java index 7601f29910e..f0b12ad01be 100644 --- a/src/test/java/org/jabref/logic/util/VersionTest.java +++ b/src/test/java/org/jabref/logic/util/VersionTest.java @@ -282,4 +282,16 @@ public void alphaShouldBeUpdatedToStables() { List availableVersions = Arrays.asList(Version.parse("2.8-beta"), stable); assertEquals(Optional.of(stable), alpha.shouldBeUpdatedTo(availableVersions)); } + + @Test + public void ciSuffixShouldBeRemoved() { + Version v50ci = Version.parse("5.0-ci.1"); + assertEquals("5.0", v50ci.getFullVersion()); + } + + @Test + public void ciSuffixShouldBeRemovedIfDateIsPresent() { + Version v50ci = Version.parse("5.0-ci.1--2020-03-06--289142f"); + assertEquals("5.0--2020-03-06--289142f", v50ci.getFullVersion()); + } }