From 1052aea198d478147606d81e627e90beb7e3a4f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Feb 2021 15:23:02 +0100 Subject: [PATCH 1/8] Bump styfle/cancel-workflow-action from 0.7.0 to 0.8.0 (#7446) Bumps [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) from 0.7.0 to 0.8.0. - [Release notes](https://github.com/styfle/cancel-workflow-action/releases) - [Commits](https://github.com/styfle/cancel-workflow-action/compare/0.7.0...3d86a7cc43670094ac248017207be0295edbc31d) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deployment.yml | 2 +- .github/workflows/tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 99248cad847..6cb29aaaf1e 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -42,7 +42,7 @@ jobs: name: Create installer and portable version for ${{ matrix.displayName }} steps: - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.7.0 + uses: styfle/cancel-workflow-action@0.8.0 with: access_token: ${{ github.token }} - name: Fetch all history for all tags and branches diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 655c92ef490..b645f193574 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.7.0 + uses: styfle/cancel-workflow-action@0.8.0 with: access_token: ${{ github.token }} - name: Checkout source From 2818a6146f08d7f81d1ba75a99a975f336b2e433 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Feb 2021 15:23:25 +0100 Subject: [PATCH 2/8] Bump me.champeau.gradle.jmh from 0.5.2 to 0.5.3 (#7444) Bumps me.champeau.gradle.jmh from 0.5.2 to 0.5.3. Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b3b3f16fd2c..4e9a90edd55 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ import org.jabref.build.xjc.XjcTask plugins { id 'application' id "com.simonharrer.modernizer" version '2.1.0-1' - id 'me.champeau.gradle.jmh' version '0.5.2' + id 'me.champeau.gradle.jmh' version '0.5.3' id 'com.github.ben-manes.versions' version '0.36.0' id 'org.javamodularity.moduleplugin' version '1.7.0' id 'org.openjfx.javafxplugin' version '0.0.9' From f26e25b7bedbbae81f3bec8b30dd482aba3d251c Mon Sep 17 00:00:00 2001 From: ibe-314 Date: Mon, 15 Feb 2021 15:25:38 +0100 Subject: [PATCH 3/8] Zbmath fetcher (#7440) * add IdBasedParserFetcher to zbmath fetcher * add test for id-based zbmath fetcher * Add changes to CHANGELOG.md * fix zbmath fetcher test * Made changelog message more understandable * implement entry based fetcher for zbmath * handle case that no zbmath entry is found and add tests * remove console output * change tests for zbmathfetcher * fix zbmath fetcher test * remove unused import * Add changes to CHANGELOG * add requested changes for PR 7440 * fix checkstyle error --- CHANGELOG.md | 1 + .../importer/EntryBasedParserFetcher.java | 14 +++- .../jabref/logic/importer/WebFetchers.java | 1 + .../jabref/logic/importer/fetcher/ZbMATH.java | 71 ++++++++++++++++--- .../model/entry/field/StandardField.java | 1 + .../logic/importer/fetcher/ZbMATHTest.java | 32 ++++++++- 6 files changed, 106 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09ec5e5f4e4..b56b38b1be2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve ### Added +- We added zbmath to the public databases from which the bibliographic information of an existing entry can be updated. [#7437](https://github.com/JabRef/jabref/issues/7437) - We added the possibility to add a new entry via its zbMath ID (zbMATH can be chosen as ID type in the "Select entry type" window). [#7202](https://github.com/JabRef/jabref/issues/7202) - We added the extension support and the external application support (For Texshow, Texmaker and LyX) to the flatpak [#7248](https://github.com/JabRef/jabref/pull/7248) - We added some symbols and keybindings to the context menu in the entry editor. [#7268](https://github.com/JabRef/jabref/pull/7268) diff --git a/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java b/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java index 48348c8f582..0adef8aca44 100644 --- a/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java +++ b/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java @@ -6,6 +6,7 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; +import java.util.Collections; import java.util.List; import java.util.Objects; @@ -54,15 +55,22 @@ default void doPostCleanup(BibEntry entry) { default List performSearch(BibEntry entry) throws FetcherException { Objects.requireNonNull(entry); - try (InputStream stream = new BufferedInputStream(getURLForEntry(entry).openStream())) { + URL UrlForEntry; + try { + if ((UrlForEntry = getURLForEntry(entry)) == null) { + return Collections.emptyList(); + } + } catch (MalformedURLException | URISyntaxException e) { + throw new FetcherException("Search URI is malformed", e); + } + + try (InputStream stream = new BufferedInputStream(UrlForEntry.openStream())) { List fetchedEntries = getParser().parseEntries(stream); // Post-cleanup fetchedEntries.forEach(this::doPostCleanup); return fetchedEntries; - } catch (URISyntaxException e) { - throw new FetcherException("Search URI is malformed", e); } catch (IOException e) { // TODO: Catch HTTP Response 401 errors and report that user has no rights to access resource throw new FetcherException("A network error occurred", e); diff --git a/src/main/java/org/jabref/logic/importer/WebFetchers.java b/src/main/java/org/jabref/logic/importer/WebFetchers.java index cd595e558b0..cfff2895366 100644 --- a/src/main/java/org/jabref/logic/importer/WebFetchers.java +++ b/src/main/java/org/jabref/logic/importer/WebFetchers.java @@ -140,6 +140,7 @@ public static SortedSet getEntryBasedFetchers(ImportFormatPre set.add(new IsbnFetcher(importFormatPreferences)); set.add(new MathSciNet(importFormatPreferences)); set.add(new CrossRef()); + set.add(new ZbMATH(importFormatPreferences)); return set; } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ZbMATH.java b/src/main/java/org/jabref/logic/importer/fetcher/ZbMATH.java index 69ea0c81b2a..1794c678455 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/ZbMATH.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/ZbMATH.java @@ -4,10 +4,13 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; import org.jabref.logic.cleanup.FieldFormatterCleanup; import org.jabref.logic.cleanup.MoveFieldCleanup; import org.jabref.logic.formatter.bibtexfields.RemoveBracesFormatter; +import org.jabref.logic.importer.EntryBasedParserFetcher; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.IdBasedParserFetcher; import org.jabref.logic.importer.ImportFormatPreferences; @@ -16,18 +19,23 @@ import org.jabref.logic.importer.fetcher.transformators.ZbMathQueryTransformer; import org.jabref.logic.importer.fileformat.BibtexParser; import org.jabref.logic.net.URLDownload; +import org.jabref.model.entry.AuthorList; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UnknownField; import org.jabref.model.util.DummyFileUpdateMonitor; +import kong.unirest.HttpResponse; +import kong.unirest.JsonNode; +import kong.unirest.Unirest; +import kong.unirest.json.JSONArray; import org.apache.http.client.utils.URIBuilder; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; /** * Fetches data from the Zentralblatt Math (https://www.zbmath.org/) */ -public class ZbMATH implements SearchBasedParserFetcher, IdBasedParserFetcher { +public class ZbMATH implements SearchBasedParserFetcher, IdBasedParserFetcher, EntryBasedParserFetcher { private final ImportFormatPreferences preferences; @@ -40,17 +48,62 @@ public String getName() { return "zbMATH"; } - /** - * TODO: Implement EntryBasedParserFetcher - * We use the zbMATH Citation matcher (https://www.zbmath.org/citationmatching/) - * instead of the usual search since this tool is optimized for finding a publication based on partial information. - */ - /* @Override public URL getURLForEntry(BibEntry entry) throws URISyntaxException, MalformedURLException, FetcherException { - // Example: https://zbmath.org/citationmatching/match?q=Ratiu + Optional zblidInEntry = entry.getField(StandardField.ZBL_NUMBER); + if (zblidInEntry.isPresent()) { + // zbmath id is already present + return getUrlForIdentifier(zblidInEntry.get()); + } + + URIBuilder uriBuilder = new URIBuilder("https://zbmath.org/citationmatching/match"); + uriBuilder.addParameter("n", "1"); // return only the best matching entry + uriBuilder.addParameter("m", "5"); // return only entries with a score of at least 5 + + entry.getFieldOrAlias(StandardField.TITLE).ifPresent(title -> uriBuilder.addParameter("t", title)); + entry.getFieldOrAlias(StandardField.JOURNAL).ifPresent(journal -> uriBuilder.addParameter("j", journal)); + entry.getFieldOrAlias(StandardField.YEAR).ifPresent(year -> uriBuilder.addParameter("y", year)); + entry.getFieldOrAlias(StandardField.PAGINATION) + .ifPresent(pagination -> uriBuilder.addParameter("p", pagination)); + entry.getFieldOrAlias(StandardField.VOLUME).ifPresent(volume -> uriBuilder.addParameter("v", volume)); + entry.getFieldOrAlias(StandardField.ISSUE).ifPresent(issue -> uriBuilder.addParameter("i", issue)); + + if (entry.getFieldOrAlias(StandardField.AUTHOR).isPresent()) { + // replace "and" by ";" as citation matching API uses ";" for separation + AuthorList authors = AuthorList.parse(entry.getFieldOrAlias(StandardField.AUTHOR).get()); + String authorsWithSemicolon = authors.getAuthors().stream() + .map(author -> author.getLastFirst(false)) + .collect(Collectors.joining(";")); + uriBuilder.addParameter("a", authorsWithSemicolon); + } + + /* + zbmath citation matching API does only return json, thus we use the + citation matching API to extract the zbl_id and then use getUrlForIdentifier + to get the bibtex data. + */ + String urlString = uriBuilder.build().toString(); + HttpResponse response = Unirest.get(urlString) + .asJson(); + String zblid = null; + if (response.getStatus() == 200) { + JSONArray result = response.getBody() + .getObject() + .getJSONArray("results"); + if (result.length() > 0) { + zblid = result.getJSONObject(0) + .get("zbl_id") + .toString(); + } + } + if (zblid == null) { + // citation matching API found no matching entry + return null; + } else { + return getUrlForIdentifier(zblid); + } } - */ + @Override public URL getURLForQuery(QueryNode luceneQuery) throws URISyntaxException, MalformedURLException, FetcherException { URIBuilder uriBuilder = new URIBuilder("https://zbmath.org/bibtexoutput/"); diff --git a/src/main/java/org/jabref/model/entry/field/StandardField.java b/src/main/java/org/jabref/model/entry/field/StandardField.java index 750f532612a..8b11e02dd8d 100644 --- a/src/main/java/org/jabref/model/entry/field/StandardField.java +++ b/src/main/java/org/jabref/model/entry/field/StandardField.java @@ -135,6 +135,7 @@ public enum StandardField implements Field { YEAR("year", FieldProperty.NUMERIC), YEARFILED("yearfiled"), MR_NUMBER("mrnumber"), + ZBL_NUMBER("zbl"), XDATA("xdata", FieldProperty.MULTIPLE_ENTRY_LINK), XREF("xref", FieldProperty.SINGLE_ENTRY_LINK), diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java b/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java index 2dff3b5cfb9..5d281fa7213 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java @@ -8,7 +8,6 @@ import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; -import org.jabref.model.entry.field.UnknownField; import org.jabref.model.entry.types.StandardEntryType; import org.jabref.testutils.category.FetcherTest; @@ -44,7 +43,7 @@ void setUp() throws Exception { donaldsonEntry.setField(StandardField.TITLE, "An application of gauge theory to four dimensional topology"); donaldsonEntry.setField(StandardField.VOLUME, "18"); donaldsonEntry.setField(StandardField.YEAR, "1983"); - donaldsonEntry.setField(new UnknownField("zbl"), "0507.57010"); + donaldsonEntry.setField(StandardField.ZBL_NUMBER, "0507.57010"); } @Test @@ -58,4 +57,33 @@ void searchByIdFindsEntry() throws Exception { Optional fetchedEntry = fetcher.performSearchById("0507.57010"); assertEquals(Optional.of(donaldsonEntry), fetchedEntry); } + + @Test + void searchByEntryFindsEntry() throws Exception { + BibEntry searchEntry = new BibEntry(); + searchEntry.setField(StandardField.TITLE, "An application of gauge theory to four dimensional topology"); + searchEntry.setField(StandardField.AUTHOR, "S. K. {Donaldson}"); + + List fetchedEntries = fetcher.performSearch(searchEntry); + assertEquals(Collections.singletonList(donaldsonEntry), fetchedEntries); + } + + @Test + void searchByNoneEntryFindsNothing() throws Exception { + BibEntry searchEntry = new BibEntry(); + searchEntry.setField(StandardField.TITLE, "t"); + searchEntry.setField(StandardField.AUTHOR, "a"); + + List fetchedEntries = fetcher.performSearch(searchEntry); + assertEquals(Collections.emptyList(), fetchedEntries); + } + + @Test + void searchByIdInEntryFindsEntry() throws Exception { + BibEntry searchEntry = new BibEntry(); + searchEntry.setField(StandardField.ZBL_NUMBER, "0507.57010"); + + List fetchedEntries = fetcher.performSearch(searchEntry); + assertEquals(Collections.singletonList(donaldsonEntry), fetchedEntries); + } } From edcd71156427b2b569e1c75fffef6067ef761e97 Mon Sep 17 00:00:00 2001 From: Landi29 Date: Mon, 15 Feb 2021 20:44:14 +0100 Subject: [PATCH 4/8] Fixes the issue "Non valid number as font size results in an uncaught exception." (#7438) * Added a textformatter. * Added a comment for the fontSizeFormatter. * Added changes to change log. * Removed newline. * Checkstyle corrections. * Checkstyle. * Checkstyle. --- CHANGELOG.md | 1 + .../gui/preferences/appearance/AppearanceTab.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b56b38b1be2..69586759a15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We fixed an issue where changing the font size makes the font size field too small. [#7085](https://github.com/JabRef/jabref/issues/7085) - We fixed an issue with TexGroups on Linux systems, where the modification of an aux-file did not trigger an auto-update for TexGroups. Furthermore, the detection of file modifications is now more reliable. [#7412](https://github.com/JabRef/jabref/pull/7412) - We fixed an issue where the Unicode to Latex formatter produced wrong results for characters with a codepoint higher than Character.MAX_VALUE. [#7387](https://github.com/JabRef/jabref/issues/7387) +- We fixed an issue where a non valid value as font size results in an uncaught exception. [#7415](https://github.com/JabRef/jabref/issues/7415) ### Removed diff --git a/src/main/java/org/jabref/gui/preferences/appearance/AppearanceTab.java b/src/main/java/org/jabref/gui/preferences/appearance/AppearanceTab.java index a731fbf24db..d26d2985ab6 100644 --- a/src/main/java/org/jabref/gui/preferences/appearance/AppearanceTab.java +++ b/src/main/java/org/jabref/gui/preferences/appearance/AppearanceTab.java @@ -1,5 +1,7 @@ package org.jabref.gui.preferences.appearance; +import java.util.regex.Pattern; + import javafx.application.Platform; import javafx.fxml.FXML; import javafx.geometry.Pos; @@ -7,6 +9,8 @@ import javafx.scene.control.RadioButton; import javafx.scene.control.Spinner; import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.util.converter.IntegerStringConverter; import org.jabref.gui.preferences.AbstractPreferenceTabView; import org.jabref.gui.preferences.PreferencesTab; @@ -27,6 +31,16 @@ public class AppearanceTab extends AbstractPreferenceTabView fontSizeFormatter = new TextFormatter(new IntegerStringConverter(), 9, + c -> { + if (Pattern.matches("\\d*", c.getText())) { + return c; + } + c.setText("0"); + return c; + }); + public AppearanceTab() { ViewLoader.view(this) .root(this) @@ -48,6 +62,7 @@ public void initialize() { fontSize.getEditor().setAlignment(Pos.CENTER_RIGHT); fontSize.setValueFactory(AppearanceTabViewModel.fontSizeValueFactory); fontSize.getEditor().textProperty().bindBidirectional(viewModel.fontSizeProperty()); + fontSize.getEditor().setTextFormatter(fontSizeFormatter); themeLight.selectedProperty().bindBidirectional(viewModel.themeLightProperty()); themeDark.selectedProperty().bindBidirectional(viewModel.themeDarkProperty()); From 837210b74740d6d280b8fd8976704bae8436d487 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Tue, 16 Feb 2021 06:38:45 +0100 Subject: [PATCH 5/8] Remove unmaintained AUTHORS file --- AUTHORS | 436 -------------------------------------------------------- 1 file changed, 436 deletions(-) delete mode 100644 AUTHORS diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index c7790f81828..00000000000 --- a/AUTHORS +++ /dev/null @@ -1,436 +0,0 @@ -# This file lists all individuals having contributed content to the repository. -# For how it is generated, see `scripts/generate-authors.sh`. -1160300608 -1160300614 -Aaron Chen -Abhishek Rai -Abraham Polk -Adam Rehn -Admir Obralija -Adrian Daerr -Akash Deep -Alain Vaucher -Aleksandrs Gusevs -Alessio Pollero -Alex Montgomery -Alex Petrov -Alex Tarrix -Alexander Girgis -Alexis Gallagher -Alexsandro Lauber -Ali Ayan -Ali Zhagparov -Alick Zhao -Allison Sampaio -Aman Jain -Ambrogio Oliva -Amish Shah -Andreas Amann -Andreas Buhr -Andreas Rudert -Andrew Collins -Andrew Kuncevich -Andrew Levit -André Schlichting -Andrés Sánchez -Anh Nghia Tran -Anita Armbruster -Antonio Ribeiro -Arno Blouin -Arthur Fröhlich -AtrusRiven -Atul Kaushik -August Janse -Ayachi Nene -Bartosz J. Kaczkowski -Bartłomiej Dach -Baruch Oltman -Behrouz Javanmardi -Benedikt Tutzer -Benjamin Köhler -Benjamin Schroth -Berk Gureken -Bernd Kalbfuss -Bernhard Tempel -Bharat Raghunathan -Bhargava Varadharajan -Bherwani Ayush -Bitor Tonixa Biriato Balença -Brian Quistorff -Brian Van Essen -Cai Zhichun -Caleb Tillman -captain123 -Carl Christian Snethlage -carlg0ransson -Carlos Morales -Carlos Silla -Carlos Silva -Catarina Gomes -Cerrianne Santos -Chamod Shehanka -Chelsey Ong -Chen Yuheng -Chris Brown -Christian Bartsch -Christian Kopf -Christoph Braun -Christoph Hochreiner -Christoph Schwentker -Christoph Treude -Christopher Oezbek -Christopher S. Lester -conorfos -cs464osu -Cyrille d'Haese -Dale Visser -Daniel Bruehl -Daniel Mair -Daniel Price -Daniel Rodrigues -Daniel Svärd -David Gleich -David Méndez -David Stevens -David Weitzman -Dawid Motyka -Dawid Owoc -Deepak Kumar -Dennis Tschechlov -DevSiroukane -Dilan Coss -dima -Dimitra Karadima -Domenico Cufalo -Dominik Schrempf -Dominik Traczyk -Dominik Voigt -Dominik Waßenhoven -Douglas Nassif Roma Junior -Eduard Braun -Eduardo Greco -eetian -Egon Willighagen -Eiswindyeti -Ellen Reitmayr -Erdem Derebasoglu -Erdem Derebaşoğlu -Eric Lau -Erik Putrycz -Ervin Kolenovic -Escoul -Ethan Harris -Fabian Bauer -Fabian Bieker -Fabiani Giovanni -Fabio Marcos -Fabrice Dessaint -Fancy Zhang -Fedor Bezrukov -Felix Berger -Felix Langner -Felix Luthman -Felix Wilke -Fernando Santagata -ffffatgoose -Fiyinfolu Eludire -Florian Beetz -Florian Straßer -Foivos Christoulakis -fpguy -Francois Charette -Frank Steimle -frasca80 -Fred Stevens -Frédéric Darboux -Galileo Sartor -Gennadiy Stakhovskiy -Geoffrey Taerim Kim -Gert Renckens -Giovanni Caldarola -Giri -Goutam Lavudiya -Graeme Stewart -Gregor Herrmann -Grzegorz Popiel -guenesaydin -Guillaume Gardey -Hakan Duran -Hannes Restel -Harinda Samarasekara -hemantgs -HifeFish -Hollyqqqqq -Houssem Nasri -hrandrianasolo -Hussain Arif -IfIWantedTo -Igor Chernyavsky -Igor Steinmacher -Illes Solt -Ingvar Jackal -Isaac Roles -Isabel Beckenbach -Jackson Ryan -Jan Frederik Maas -Jan Kubovy -Jan Schäfer -Janosch Kutscherauer -Jason Pickering -Jasper Vandemalle -Javier Muñoz Ferrara -jcampbell11245 -Jeff Kerr -Jeff Miller -Jeffrey Kuhn -Jeffrey Sander -Jens Döcke -joeyzgraggen -Johan Del Valle -Johannes Hupe -Johannes Manner -Johannes Theiner -John David -John Relph -John Zedlewski -Jonas Lähnemann -Jonas Moosmann -Jonatan Asketorp -Jonathan Powell -Jong-Ho Shinn -Jorge Tornero -josephshin93 -Joshua Ramon Enslin -José Jesús Sinohui Fernández -Julian Pfeifer -Julien Bénard -Jure Slak -József Pallagi -Jörg Lenhard -Jörg Wegner -Jörg Zieren -Jørgen Kvalsvik -Jürgen Lange -k3KAW8Pnf7mkmdSMPHz27 -Kai Mindermann -Kai Takac -Kaique Komata -Karsten Hiekmann -Kelly Click -Koji Yokota -KOLANICH -Kolja Brix -Kristoffer Gunnarsson -Krunoslav Zubrinic -Krzysztof A. Kościuszkiewicz -Kyle Johnson -Laura Hernández Gómez -Lavabit -Le-wi -Lee Patton -Leonardo Haddad -Leonhard Wolz -Li Yiming -Li Zhilin -Ling Wang -Linus Dietz -Lorenzo Genta -Lucas Beretti -Luciana de Melo e Abud -Lugduni Desrosiers -Luis Romero -Luis Valdez -Mairieli Wessel -Malik Atalla -Malte Deiseroth -Manas Singh -Manuel Siebeneicher -Manuel Wtfjoke -Marcel Luethi -Marco Aurélio Graciotto Silva -Marco Konersmann -Mariana Prudencio -Marius Kleiner -Mark Schenk -Martin Kähmer -Martin Stolle -Martin W. Kirst -Martina Catizone -Mathias Walter -Matthias Geiger -Matthias Mayr -Matthias Mueller -Matthijs van der Burgh -Mattia Bunel -Mattias Ulbrich -mcmoody -Meltem Demirköprü -MhhhxX -Michael Beckmann -Michael Falkenthal -Michael Lass -Michael Mauersberger -Michael McCann -Michael Schwarmi -Michael Spiegel -Michael Wrighton -Michal Rican -Michel Baylac -Michel Krämer -Mihu -Mike Smoot -mohamean -Mootez Saad -Morgan Lovato -Moritz Ringler -Morten Alver -ms111ds -muachilin -Muhammad Arsalan Badar -Mélanie Tremblay -Nadeem Mahmood -Nathan Dunn -Nathan Sheffield -Nick Mancuso -Nick S. Weatherley -Nico Schlömer -Nicolas Pavillon -Niffler -Nikita Borovikov -Niklas Schmitt -nikmilpv -NikodemKch -Nikolaus Koopmann -Nils Streijffert -Niv Ierushalmi -Nivedha Sunderraj -Nizar N. Batada -noravanq -obsluk00 -Olaf Lenz -Oliver Beckmann -Oliver Kopp -omer-rotem1 -Oscar Gustafsson -Owen Huang -P4trice -Param Mittal -Patrick Lin -Patrick Scheibe -Paul Krappatsch -Paul Martin -pavlapp -Peter Ansell -Philip Johnson -Prasan Yapa -Predrag Milanovic -Qing -Quentin Fritz -Rachel Wu -Raik Nagel -razvan05 -Redevectored -Renato Massao -Richard Schneeman -Robert Jäschke -Robin Lichtenthaeler -Rodrigo Paula da Silva -Rolf Green -Rolf Starre -Ronak Lakhotia -Roy Storey -Rudolf Seemann -Rui Kang -Ruy Minoru Ito Takata -Ryo Igarashi -S M Mahbub Murshed -S. Krause -Saivert -Sam Robertson -Samin Muhammad Ridwanul Karim -Samiya Caur -Sandro Speth -Sascha Hunold -Sascha Zeller -Saulius Gražulis -Saverio Mori -Schaggerlag -Scott Pogatetz -Scott Townsend -Seb Wills -Serban Iordache -Shadow Devil -Shikun Xiong -ShiqingLiu -Shitikanth -shubhamatlani -Simon Harrer -Simon Rutishauser -Songyu Wang -speed9 -Stanley Foerster -Stefan Feyer -Stefan Gerzmann -Stefan Kolb -Stefan Kufer -Stefan Robert -Stefan Scheffel -Stefano Gariazzo -Steffin Stanly -Stephan Lau -Stephan Rave -Stephen Beitzel -Stéphane Curet -Super-Tang -Sven Jäger -systemoperator -Thiago Toledo -Thomas Arildsen -Thomas F. Duellmann -Thomas Hu -Thomas Ilsche -Thorsten Dahlheimer -Tianjian Lei -Tim Kilian -Tim van Rossum -Tim Würtele -Timucin Merdin -Tobias Boceck -Tobias Bouschen -Tobias Denkinger -Tobias Diez -Tom Warnke -Tommy Samuelsson -Tomás Morales de Luna -Tony K -Toralf Senger -uid112001 -Ulrich Stärk -Ulrik Stervbo -UltimaBGD -Uwe Kuehn -Valentin Pons -Venceslas Roullier -Victor Figueira -Victor Michelan -Vincent Gagnon -Vincent W. Yang -Vlad Topala -Waida Fan -Waluyo Adi Siswanto -WangAooa -Ward Poelmans -Wenbo Yang -wuw -Yang Zongze -Yara Grassi Gouffon -Yash Kothari -Yichen Sun -Yifan Peng -Yunsheng Luo -Yurick Honda -zacmks -Zeabin -Zgarbul Andrey -Zhang Liang -ZhouSky From aeec64f65a7bbc4f047fbbdf93928532e5a62828 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 16 Feb 2021 09:49:38 +0100 Subject: [PATCH 6/8] Clarify that changelog is user-facing --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 7bece4ad46d..dc16a47b170 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -11,7 +11,7 @@ The title of the PR must not reference an issue, because GitHub does not support - Please don't remove any items, just leave them unchecked if they are not applicable. --> -- [ ] Change in CHANGELOG.md described (if applicable) +- [ ] Change in `CHANGELOG.md` described in a way that is understandable for the average user (if applicable) - [ ] Tests created for changes (if applicable) - [ ] Manually tested changed features in running JabRef (always required) - [ ] Screenshots added in PR description (for UI changes) From 30c1b885fedff077d4de6402d374c56ca704366a Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Tue, 16 Feb 2021 09:56:07 +0100 Subject: [PATCH 7/8] Auto-approve depend-a-bot-PRs (#7332) * Auto-approve depend-a-bot-PRs * try to integrate in auto merge * Moved checks to global ones (line 8) * Ignore more actions Co-authored-by: Siedlerchr --- .github/workflows/automerge.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 2a94957fddb..d73eb3c0686 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -5,16 +5,21 @@ jobs: automerge: name: Automerge Dependabot runs-on: ubuntu-latest - if: github.actor == 'dependabot[bot]' + if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]' steps: - name: 'Wait for status checks' id: waitforstatuschecks uses: "WyriHaximus/github-action-wait-for-status@v1.3" with: - ignoreActions: Automerge Dependabot,codecov/project + 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.0.0 + if: steps.waitforstatuschecks.outputs.status == 'success' + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Merge pull requests uses: pascalgn/automerge-action@v0.13.0 if: steps.waitforstatuschecks.outputs.status == 'success' From a7948e8f2857636cd7965eb30b5d6613153958e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Feb 2021 09:18:51 +0000 Subject: [PATCH 8/8] Bump pascalgn/automerge-action from v0.13.0 to v0.13.1 (#7445) --- .github/workflows/automerge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index d73eb3c0686..230e6818721 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -21,7 +21,7 @@ jobs: with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Merge pull requests - uses: pascalgn/automerge-action@v0.13.0 + uses: pascalgn/automerge-action@v0.13.1 if: steps.waitforstatuschecks.outputs.status == 'success' env: MERGE_METHOD: "squash"