[Bug]: Correctly named PDFs (citekey) don't open but instead show up in Finder

Bug Description
Correctly named PDFs (citekey) don't open when selected holding down the relevant key but instead show up in Finder. I think it's because the workflow is not trying to open the citekey filename but is appending a __BOOK TITLE to the search as in the logs below:
should be gurtner2020ClarkEncyclopediaSecond
but instead produces gurtner2020ClarkEncyclopediaSecond_T & T Clark Encyclopedia of Second Temple Judaism
Relevant Screenshot
No response
To Reproduce
No response
Debugging Log
[17:40:52.182] Supercharged Citation Picker[Hotkey] Processing complete
[17:40:52.186] Supercharged Citation Picker[Hotkey] Passing output '' to Script Filter
[17:40:52.204] Supercharged Citation Picker[Script Filter] Queuing argument '(null)'
[17:40:52.359] Supercharged Citation Picker[Script Filter] Script with argv '(null)' finished
[17:40:52.362] Supercharged Citation Picker[Script Filter] {"items":[{"title":"Biblia patristica 2: Le troisi\\'eme si\\'ecle Orig\\'ene excep…","autocomplete":"patristiques","subtitle":"patristiques et al. (Eds.) 1977   📕","match":"@1977BibliaPatristicaTroisieme Biblia patristica 2: Le troisi\\'eme si\\'ecle Orig\\'ene except\\'e patristiques scientifique calcul 1977   book pdf","arg":"1977BibliaPatristicaTroisieme","icon":{"path":"icons/book.png"},"uid":"1977BibliaPatristicaTroisieme","text":{"copy":"","largetype":"Biblia patristica 2: Le troisi\\'eme si\\'ecle Orig\\'ene except\\'e \n(citekey: 1977BibliaPatristicaTroisieme)"},"quicklookurl":"","mods":{"fn":{"arg":"1977BibliaPatristicaTroisieme_Biblia patristica 2- Le troisi-eme si-ecle Orig-"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Biblia patristica. Suppl\\'ement, Philon d'Alexandrie","autocomplete":"(France)","subtitle":"(France) (Ed.) 1982   📕 🏷 5","match":"@1982BibliaPatristicaSupplement #Bible #Christian literature; Early #Dictionaries indexes #Indexes #Philo Biblia patristica. Suppl\\'ement, Philon d'Alexandrie (France) 1982   book pdf","arg":"1982BibliaPatristicaSupplement","icon":{"path":"icons/book.png"},"uid":"1982BibliaPatristicaSupplement","text":{"copy":"","largetype":"Biblia patristica. Suppl\\'ement, Philon d'Alexandrie \n(citekey: 1982BibliaPatristicaSupplement)\n\nkeywords: Bible, Christian literature; Early, Dictionaries indexes, Indexes, Philo"},"quicklookurl":"","mods":{"fn":{"arg":"1982BibliaPatristicaSupplement_Biblia patristica. Suppl-ement Philon dAlexandr"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Biblia patristica 4: Eus\\'ebe de C\\'esar\\'ee, Cyrille de J\\'…","autocomplete":"patristiques","subtitle":"patristiques (Ed.) 1987   📕 📄","match":"@1987BibliaPatristicaEusebe Biblia patristica 4: Eus\\'ebe de C\\'esar\\'ee, Cyrille de J\\'erusalem, Epiphane de Salamine patristiques 1987   book pdf","arg":"1987BibliaPatristicaEusebe","icon":{"path":"icons/book.png"},"uid":"1987BibliaPatristicaEusebe","text":{"copy":"","largetype":"Biblia patristica 4: Eus\\'ebe de C\\'esar\\'ee, Cyrille de J\\'erusalem, Epiphane de Salamine \n(citekey: 1987BibliaPatristicaEusebe)\n\nEusebius of Caesarea, Cyril of Jerusalem, Epiphanius"},"quicklookurl":"","mods":{"fn":{"arg":"1987BibliaPatristicaEusebe_Biblia patristica 4- Eus-ebe de C-esar-ee Cyri"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Biblia patristica 5: Basile de C\\'esar\\'ee, Gr\\'egoire de Na…","autocomplete":"patristiques","subtitle":"patristiques (Ed.) 1991   📕 📄","match":"@1991BibliaPatristicaBasile Biblia patristica 5: Basile de C\\'esar\\'ee, Gr\\'egoire de Nazianze, Gr\\'egoire de Nysse, Amphiloque d'Iconium patristiques 1991   book pdf","arg":"1991BibliaPatristicaBasile","icon":{"path":"icons/book.png"},"uid":"1991BibliaPatristicaBasile","text":{"copy":"","largetype":"Biblia patristica 5: Basile de C\\'esar\\'ee, Gr\\'egoire de Nazianze, Gr\\'egoire de Nysse, Amphiloque d'Iconium \n(citekey: 1991BibliaPatristicaBasile)\n\nBasil of caesarea, Gregory of Nazianzus, Gregory of Nyssa, Amphiloque..."},"quicklookurl":"","mods":{"fn":{"arg":"1991BibliaPatristicaBasile_Biblia patristica 5- Basile de C-esar-ee Gr-eg"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Biblia patristica 3: Orig\\'ene","subtitle":" 1991   📕","match":"@1991BibliaPatristicaOrigene Biblia patristica 3: Orig\\'ene 1991   book pdf","arg":"1991BibliaPatristicaOrigene","icon":{"path":"icons/book.png"},"uid":"1991BibliaPatristicaOrigene","text":{"copy":"","largetype":"Biblia patristica 3: Orig\\'ene \n(citekey: 1991BibliaPatristicaOrigene)"},"quicklookurl":"","mods":{"fn":{"arg":"1991BibliaPatristicaOrigene_Biblia patristica 3- Orig-ene"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Biblia Patristica 6: Hilaire De Poitiers Ambroise De Milan A…","autocomplete":"patristiques","subtitle":"patristiques (Ed.) 1995   ","match":"@1995BibliaPatristicaHilaire Biblia Patristica 6: Hilaire De Poitiers Ambroise De Milan Ambrosiaster patristiques 1995   book","arg":"1995BibliaPatristicaHilaire","icon":{"path":"icons/book.png"},"uid":"1995BibliaPatristicaHilaire","text":{"copy":"","largetype":"Biblia Patristica 6: Hilaire De Poitiers Ambroise De Milan Ambrosiaster \n(citekey: 1995BibliaPatristicaHilaire)"},"quicklookurl":"","mods":{"fn":{"arg":"1995BibliaPatristicaHilaire_Biblia Patristica 6- Hilaire De Poitiers Ambroise "},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"The Oxford Handbook of Late Antiquity","subtitle":" 2012   ","match":"@2012OxfordHandbookLate The Oxford Handbook of Late Antiquity 2012   book","arg":"2012OxfordHandbookLate","icon":{"path":"icons/book.png"},"uid":"2012OxfordHandbookLate","text":{"copy":"","largetype":"The Oxford Handbook of Late Antiquity \n(citekey: 2012OxfordHandbookLate)"},"quicklookurl":"","mods":{"fn":{"arg":"2012OxfordHandbookLate_The Oxford Handbook of Late Antiquity"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"On Being Reformed: Debates over a Theological Identity","subtitle":" 2018   📕 📄","match":"@2018BeingReformedDebates On Being Reformed: Debates over a Theological Identity 2018   book pdf","arg":"2018BeingReformedDebates","icon":{"path":"icons/book.png"},"uid":"2018BeingReformedDebates","text":{"copy":"","largetype":"On Being Reformed: Debates over a Theological Identity \n(citekey: 2018BeingReformedDebates)\n\nThis book provides a focus for future discussion in one of the most important debates within historical theology within the protestant tradition - the debate about the definition of a category of analysis that operates over five centuries of religious faith and practice and in a globalising religion. In March 2009, TIME magazine listed 'the new Calvinism' as being among the 'ten ideas shaping the world.' In response to this revitalisation of reformation thought, R. Scott Clark and D. G. Hart have proposed a definition of 'Reformed' that excludes many of the theologians who have done most to promote this driver of global religious change. In this book, the Clark-Hart proposal becomes the focus of a debate. Matthew Bingham, Chris Caughey, and Crawford Gribben suggest a broader and (they argue) more historically responsible definition for 'Reformed, ' as Hart and Scott respond to their arguments"},"quicklookurl":"","mods":{"fn":{"arg":"2018BeingReformedDebates_On Being Reformed- Debates over a Theological Iden"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Israel, Church, and the Gentiles in the Gospel of Matthew","autocomplete":"Konradt","subtitle":"Konradt 2014   📄 🏷 5","match":"@9783161536083 #Ekklesiologie #Israel #Kirche #Matthäus #Matthäusevangelium Israel, Church, and the Gentiles in the Gospel of Matthew Konradt 2014   book","arg":"9783161536083","icon":{"path":"icons/book.png"},"uid":"9783161536083","text":{"copy":"","largetype":"Israel, Church, and the Gentiles in the Gospel of Matthew \n(citekey:<PHONE_NUMBER>083)\n\nMatthias Konradt addresses one of the central theological problems of Matthew's Gospel: what are the relationships between Israel and the Church and between the mission to Israel and the mission to the Gentiles? To answer these questions, the author traces the surprising transition from the Israel-centered words and deeds of Jesus (and his disciples) before Easter to the universal mission of Jesus' earliest followers after his resurrection.\n\nkeywords: Ekklesiologie, Israel, Kirche, Matthäus, Matthäusevangelium"},"quicklookurl":"","mods":{"fn":{"arg":"9783161536083_Israel Church and the Gentiles in the Gospel of "},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Corporate Election in Romans 9: A Reply to Thomas Schreiner","autocomplete":"Abasciano","subtitle":"Abasciano 2006    In: JETS 49(2)   🌐 📄","match":"@abasciano2006CorporateElectionRomans Corporate Election in Romans 9: A Reply to Thomas Schreiner Abasciano 2006  JETS article","arg":"abasciano2006CorporateElectionRomans","icon":{"path":"icons/article.png"},"uid":"abasciano2006CorporateElectionRomans","text":{"copy":"https://doi.org/Journal article","largetype":"Corporate Election in Romans 9: A Reply to Thomas Schreiner \n(citekey: abasciano2006CorporateElectionRomans)\n\nIt has been a little over a dozen years since Thomas Schreiner argued in this journal that Romans 9 teaches individual election unto salvation. 1 He correctly points out that Romans 9 is a standard proof text for Calvinists, who hold that God unconditionally elects ..."},"quicklookurl":"","mods":{"fn":{"arg":"abasciano2006CorporateElectionRomans_Corporate Election in Romans 9- A Reply to Thomas "},"ctrl":{"valid":true,"arg":"https://doi.org/Journal article","subtitle":"⌃: Open URL – https://doi.org/Journal article"}}},{"title":"The Oxford Handbook of the Epistemology of Theology","autocomplete":"Abraham","subtitle":"Abraham & Aquino (Eds.) 2017   📄 🏷 5","match":"@abraham2017OxfordHandbookEpistemology #Knowledge; Theory of (Religion) #Theologie #Theologische Erkenntnistheorie #Theology #Wissenschaftsphilosophie The Oxford Handbook of the Epistemology of Theology Abraham Aquino 2017   book","arg":"abraham2017OxfordHandbookEpistemology","icon":{"path":"icons/book.png"},"uid":"abraham2017OxfordHandbookEpistemology","text":{"copy":"","largetype":"The Oxford Handbook of the Epistemology of Theology \n(citekey: abraham2017OxfordHandbookEpistemology)\n\nThe Oxford Handbook of the Epistemology of Theology brings together leading scholars in the fields of theology and epistemology to examine and articulate what can be categorized as appropriate epistemic evaluation in theology. Part one focuses on some of the epistemic concepts that have been traditionally employed in theology such as knowledge of God, revelation and scripture, reason and faith, experience, and tradition. This section also considers concepts that have not received sufficient epistemological attention in theology, such as saints, authority, ecclesial practices, spiritual formation, and discernment. Part two concentrates on epistemic concepts that have received significant attention in contemporary epistemology and can be related to theology such as understanding, wisdom, testimony, virtue, evidence, foundationalism, realism/antirealism, skepticism, and disagreement. Part three offers examples from key figures in the Christian tradition and investigates the relevant epistemological issues and insights in these writers, as well as recognizing the challenges of connecting insights from contemporary epistemology with the subject of theology proper, namely, God. Part four centers on five emerging areas that warrant further epistemological consideration: Liberation Theology, Continental Philosophy, modern Orthodox writers, Feminism, and Pentecostalism. This authoritative collection explores how the various topics, figures, and emerging conversations can be reconceived and addressed in light of recent developments in epistemology. Each chapter provides an analysis of the crucial moves, positions, and debates, while also identifying relevant epistemic considerations. This Handbook fulfils the need for the development of this new conversation that will take its natural place in the intersection of theology and epistemology. It links the fields of theology and epistemology in robust, meaningful, and significant ways. —\n\nkeywords: Knowledge; Theory of (Religion), Theologie, Theologische Erkenntnistheorie, Theology, Wissenschaftsphilosophie"},"quicklookurl":"","mods":{"fn":{"arg":"abraham2017OxfordHandbookEpistemology_The Oxford Handbook of the Epistemology of Theolog"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Volume V c.1198-c.1300","autocomplete":"Abulafia","subtitle":"Abulafia (Ed.) 2004   📕 🏷 4","match":"@abulafia2004Volume1198c1300 #476 1492 #Europe #History #Middle Ages Volume V c.1198 c.1300 Abulafia 2004   book pdf","arg":"abulafia2004Volume1198c1300","icon":{"path":"icons/book.png"},"uid":"abulafia2004Volume1198c1300","text":{"copy":"","largetype":"Volume V c.1198-c.1300 \n(citekey: abulafia2004Volume1198c1300)\n\nkeywords: 476-1492, Europe, History, Middle Ages"},"quicklookurl":"","mods":{"fn":{"arg":"abulafia2004Volume1198c1300_Volume V c.1198-c.1300"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Sacred Misinterpretation: Reaching across the Christian-Musl…","autocomplete":"Accad","subtitle":"Accad 2019   ","match":"@accad2019SacredMisinterpretationReaching Sacred Misinterpretation: Reaching across the Christian Muslim Divide Accad 2019   book","arg":"accad2019SacredMisinterpretationReaching","icon":{"path":"icons/book.png"},"uid":"accad2019SacredMisinterpretationReaching","text":{"copy":"","largetype":"Sacred Misinterpretation: Reaching across the Christian-Muslim Divide \n(citekey: accad2019SacredMisinterpretationReaching)"},"quicklookurl":"","mods":{"fn":{"arg":"accad2019SacredMisinterpretationReaching_Sacred Misinterpretation- Reaching across the Chri"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Ad Alpes","subtitle":"    ","match":"@AdAlpes Ad Alpes    misc","arg":"AdAlpes","icon":{"path":"icons/manuscript.png"},"uid":"AdAlpes","text":{"copy":"","largetype":"Ad Alpes \n(citekey: AdAlpes)"},"quicklookurl":"","mods":{"fn":{"arg":"AdAlpes_Ad Alpes"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Preface","autocomplete":"Adam","subtitle":"Adam (Ed.) 2017   🌐 📕","match":"@adam2017Preface Preface Adam 2017 Contra Academicos, De Beata Vita, De Ordine  inbook pdf","arg":"adam2017Preface","icon":{"path":"icons/book_chapter.png"},"uid":"adam2017Preface","text":{"copy":"https://doi.org/10.1515/9783110445244-001","largetype":"Preface \n(citekey: adam2017Preface)"},"quicklookurl":"","mods":{"fn":{"arg":"adam2017Preface_Preface"},"ctrl":{"valid":true,"arg":"https://doi.org/10.1515/9783110445244-001","subtitle":"⌃: Open URL – https://doi.org/10.1515/9783110445244-001"}}},{"title":"Involuntary Sins","autocomplete":"Adams","subtitle":"Adams 1985    In: The Philosophical Review 94(1)   🌐 📄","match":"@adams1985InvoluntarySins Involuntary Sins Adams 1985  The Philosophical Review article","arg":"adams1985InvoluntarySins","icon":{"path":"icons/article.png"},"uid":"adams1985InvoluntarySins","text":{"copy":"https://doi.org/10.2307/2184713","largetype":"Involuntary Sins \n(citekey: adams1985InvoluntarySins)\n\nDate of Input: 8/29/2007 Date Modified: 9/1/2011 Priority: Normal Web: http://www.jstor.org/stable/2184713"},"quicklookurl":"","mods":{"fn":{"arg":"adams1985InvoluntarySins_Involuntary Sins"},"ctrl":{"valid":true,"arg":"https://doi.org/10.2307/2184713","subtitle":"⌃: Open URL – https://doi.org/10.2307/2184713"}}},{"title":"Divine Commands and the Social Nature of Obligation","autocomplete":"Adams","subtitle":"Adams 1987   ","match":"@adams1987DivineCommandsSocial Divine Commands and the Social Nature of Obligation Adams 1987   article","arg":"adams1987DivineCommandsSocial","icon":{"path":"icons/article.png"},"uid":"adams1987DivineCommandsSocial","text":{"copy":"","largetype":"Divine Commands and the Social Nature of Obligation \n(citekey: adams1987DivineCommandsSocial)"},"quicklookurl":"","mods":{"fn":{"arg":"adams1987DivineCommandsSocial_Divine Commands and the Social Nature of Obligatio"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Moral Arguments for Theistic Belief","autocomplete":"Adams","subtitle":"Adams 1987    In: The Virtue of Faith and Other Essays in Philosophical Theology   📄 🏷 5","match":"@adams1987MoralArgumentsTheistic #God #Goodness #Happiness #Moral Argument #Proof Moral Arguments for Theistic Belief Adams 1987  The Virtue of Faith and Other Essays in Philosophical Theology article","arg":"adams1987MoralArgumentsTheistic","icon":{"path":"icons/article.png"},"uid":"adams1987MoralArgumentsTheistic","text":{"copy":"","largetype":"Moral Arguments for Theistic Belief \n(citekey: adams1987MoralArgumentsTheistic)\n\nThe most important types of moral argument for theistic belief are analyzed, and some of them are defended. among the conclusions advocated are: that the most satisfactory theory of the nature of right and wrong is theological; that there is moral advantage in believing there is a moral order of the universe; that it can be right to be influenced in one's theoretical beliefs, under certain conditions, by one's view of the moral advantages of believing certain things; and that moral arguments support the belief that if there is a supremely knowledgeable and powerful creator he is good more strongly than they support the belief that there is a creator.\n\nkeywords: God, Goodness, Happiness, Moral Argument, Proof"},"quicklookurl":"","mods":{"fn":{"arg":"adams1987MoralArgumentsTheistic_Moral Arguments for Theistic Belief"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Martha Nussbaum and Susan Wolf","autocomplete":"Adams","subtitle":"Adams et al. 2002    In: Philosophy and Phenomenological Research LXIV(2)   ","match":"@adams2002MarthaNussbaumSusan Martha Nussbaum and Susan Wolf Adams Nussbaum Wolf 2002  Philosophy and Phenomenological Research article","arg":"adams2002MarthaNussbaumSusan","icon":{"path":"icons/article.png"},"uid":"adams2002MarthaNussbaumSusan","text":{"copy":"","largetype":"Martha Nussbaum and Susan Wolf \n(citekey: adams2002MarthaNussbaumSusan)"},"quicklookurl":"","mods":{"fn":{"arg":"adams2002MarthaNussbaumSusan_Martha Nussbaum and Susan Wolf"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Kierkegaard ' s Arguments Against","autocomplete":"Adams","subtitle":"Adams et al.    ","match":"@adamsKierkegaardArguments Kierkegaard ' s Arguments Against Adams Mccord Harvey Kselman    article","arg":"adamsKierkegaardArguments","icon":{"path":"icons/article.png"},"uid":"adamsKierkegaardArguments","text":{"copy":"","largetype":"Kierkegaard ' s Arguments Against \n(citekey: adamsKierkegaardArguments)"},"quicklookurl":"","mods":{"fn":{"arg":"adamsKierkegaardArguments_Kierkegaard  s Arguments Against"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Classical Philosophy","autocomplete":"Adamson","subtitle":"Adamson 2014   📕 🏷 3","match":"@adamson2014ClassicalPhilosophy #History #Philosophy #Philosophy; Ancient Classical Philosophy Adamson 2014   book pdf","arg":"adamson2014ClassicalPhilosophy","icon":{"path":"icons/book.png"},"uid":"adamson2014ClassicalPhilosophy","text":{"copy":"","largetype":"Classical Philosophy \n(citekey: adamson2014ClassicalPhilosophy)\n\nkeywords: History, Philosophy, Philosophy; Ancient"},"quicklookurl":"","mods":{"fn":{"arg":"adamson2014ClassicalPhilosophy_Classical Philosophy"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Philosophy in the Hellenistic and Roman Worlds: A History of…","autocomplete":"Adamson","subtitle":"Adamson 2015   📕 📄","match":"@adamson2015PhilosophyHellenisticRoman Philosophy in the Hellenistic and Roman Worlds: A History of Philosophy Without Any Gaps, Volume 2 Adamson 2015   book pdf","arg":"adamson2015PhilosophyHellenisticRoman","icon":{"path":"icons/book.png"},"uid":"adamson2015PhilosophyHellenisticRoman","text":{"copy":"","largetype":"Philosophy in the Hellenistic and Roman Worlds: A History of Philosophy Without Any Gaps, Volume 2 \n(citekey: adamson2015PhilosophyHellenisticRoman)\n\nPeter Adamson's History of Philosophy without any gaps series of podcasts is one of the most ambitious educational works on the web. It aims to do nothing less than take listeners through the entire history of philosophy 'without any gaps'. It assumes no prior knowledge making it ideal forbeginners. This is the second volume to make these witty, and highly accessible, podcasts available in book form. Philosophy in the Hellenistic and Roman Worlds offers a tour through a period of eight hundred years when some of the most influential of all schools of thought were formed. From thecounter-cultural witticisms of Diogenes the Cynic to the political philosophy of Augustine, the book gathers together all aspects of later ancient thought in a way that is a pleasure to read."},"quicklookurl":"","mods":{"fn":{"arg":"adamson2015PhilosophyHellenisticRoman_Philosophy in the Hellenistic and Roman Worlds- A "},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Philosophy in the Islamic World","autocomplete":"Adamson","subtitle":"Adamson & Adamson 2018   📕 🏷 2","match":"@adamson2018PhilosophyIslamicWorld #History #Islamic philosophy Philosophy in the Islamic World Adamson Adamson 2018   book pdf","arg":"adamson2018PhilosophyIslamicWorld","icon":{"path":"icons/book.png"},"uid":"adamson2018PhilosophyIslamicWorld","text":{"copy":"","largetype":"Philosophy in the Islamic World \n(citekey: adamson2018PhilosophyIslamicWorld)\n\nkeywords: History, Islamic philosophy"},"quicklookurl":"","mods":{"fn":{"arg":"adamson2018PhilosophyIslamicWorld_Philosophy in the Islamic World"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Medieval Philosophy","autocomplete":"Adamson","subtitle":"Adamson 2019   📕 📄 🏷 2","match":"@adamson2019MedievalPhilosophy #History #Philosophy; Medieval Medieval Philosophy Adamson 2019   book pdf","arg":"adamson2019MedievalPhilosophy","icon":{"path":"icons/book.png"},"uid":"adamson2019MedievalPhilosophy","text":{"copy":"","largetype":"Medieval Philosophy \n(citekey: adamson2019MedievalPhilosophy)\n\n\"Peter Adamson presents a lively introduction to six hundred years of European philosophy, from the beginning of the ninth century to the end of the fourteenth century. The medieval period is one of the richest in the history of philosophy, yet one of the least widely known. Adamson introduces us to some of the greatest thinkers of the Western intellectual tradition, including Peter Abelard, Anselm of Canterbury, Thomas Aquinas, John Duns Scotus, William of Ockham, and Roger Bacon. And the medieval period was notable for the emergence of great women thinkers, including Hildegard of Bingen, Marguerite Porete, and Julian of Norwich. Original ideas and arguments were developed in every branch of philosophy during this period - not just philosophy of religion and theology, but metaphysics, philosophy of logic and language, moral and political theory, psychology, and the foundations of mathematics and natural science.\"—\n\nkeywords: History, Philosophy; Medieval"},"quicklookurl":"","mods":{"fn":{"arg":"adamson2019MedievalPhilosophy_Medieval Philosophy"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Byzantine and Renaissance Philosophy","autocomplete":"Adamson","subtitle":"Adamson 2022   📕 🏷 3","match":"@adamson2022ByzantineRenaissancePhilosophy #Byzantine Empire #Philosophy #Philosophy; Renaissance Byzantine and Renaissance Philosophy Adamson 2022   book pdf","arg":"adamson2022ByzantineRenaissancePhilosophy","icon":{"path":"icons/book.png"},"uid":"adamson2022ByzantineRenaissancePhilosophy","text":{"copy":"","largetype":"Byzantine and Renaissance Philosophy \n(citekey: adamson2022ByzantineRenaissancePhilosophy)\n\nkeywords: Byzantine Empire, Philosophy, Philosophy; Renaissance"},"quicklookurl":"","mods":{"fn":{"arg":"adamson2022ByzantineRenaissancePhilosophy_Byzantine and Renaissance Philosophy"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Reconsidering the Macro-Narrative in Global History: John Da…","autocomplete":"Adas","subtitle":"Adas 2009    In: Journal of Global History 4(1)   🌐 📕","match":"@adas2009ReconsideringMacronarrativeGlobal Reconsidering the Macro Narrative in Global History: John Darwin's \\emphAfter Tamerlane and the Case for Comparison Adas 2009  Journal of Global History article pdf","arg":"adas2009ReconsideringMacronarrativeGlobal","icon":{"path":"icons/article.png"},"uid":"adas2009ReconsideringMacronarrativeGlobal","text":{"copy":"https://doi.org/10.1017/S1740022809003003","largetype":"Reconsidering the Macro-Narrative in Global History: John Darwin's \\emphAfter Tamerlane and the Case for Comparison \n(citekey: adas2009ReconsideringMacronarrativeGlobal)"},"quicklookurl":"","mods":{"fn":{"arg":"adas2009ReconsideringMacronarrativeGlobal_Reconsidering the Macro-Narrative in Global Histor"},"ctrl":{"valid":true,"arg":"https://doi.org/10.1017/S1740022809003003","subtitle":"⌃: Open URL – https://doi.org/10.1017/S1740022809003003"}}},{"title":"The Last Muslim Conquest: The Ottoman Empire and Its Wars in…","autocomplete":"\\'Agoston","subtitle":"\\'Agoston 2021   📕 📄 🏷 8","match":"@agoston2021LastMuslimConquest #1288 1918 #Civilization #Europe #Foreign relations #History #History; Military #Ottoman Empire; 1288 1918 #Turkey The Last Muslim Conquest: The Ottoman Empire and Its Wars in Europe \\'Agoston 2021   book pdf","arg":"agoston2021LastMuslimConquest","icon":{"path":"icons/book.png"},"uid":"agoston2021LastMuslimConquest","text":{"copy":"","largetype":"The Last Muslim Conquest: The Ottoman Empire and Its Wars in Europe \n(citekey: agoston2021LastMuslimConquest)\n\n\"The Last Muslim Conquest chronicles the emergence of the Ottoman dynasty and its conquests in Europe, offering a new synthesis of the Ottoman impact on early modern Europe. In telling the story of conquest and imperial rivalry, the book introduces myriad characters, from sultans, kings, popes, generals, and admirals, to lesser-known but equally colorful viziers, frontier governors, envoys, interpreters, spies, and pirates. The narrative brings to light the characteristics of Ottoman strategy and statecraft, challenging long-held views. Historian G\\'abor \\'Agoston rejects the \"clash of civilizations\" narrative by demonstrating the multi-ethnic and multi-confessional character of the empire and its entanglements in European politics. He examines the varied methods of Ottoman conquest, including dynastic marriages, religious accommodation, and the incorporation of the conquered people into the Ottoman military and administration. But \\'Agoston also rebuffs more recent distortions of Ottoman history that have turned Ottoman sultans into Renaissance princes and blurred the cultural fault lines between Islam and Christendom. He argues that while the Ottomans were an integral part of Europe and, in many ways, a \"European\" empire, theirs was a polity principally shaped by Turco-Iranian and Islamic models. He also demonstrates how religion - both Ottoman holy wars and Christian crusades - remained paramount for legitimating policies and mobilizing one's supporters for conquest and defense. Chapters on military capabilities, frontier management, lawfare, and diplomacy offer a new explanation of the gradual shift in power between the Ottomans and their European rivals, reframing the old story of Ottoman decline\"—\n\nkeywords: 1288-1918, Civilization, Europe, Foreign relations, History, History; Military, Ottoman Empire; 1288-1918, Turkey"},"quicklookurl":"","mods":{"fn":{"arg":"agoston2021LastMuslimConquest_The Last Muslim Conquest- The Ottoman Empire and I"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"The Ideal of Brevitas et Facilitas: The Theological Hermeneu…","autocomplete":"Ahn","subtitle":"Ahn 1999   📄 🏷 7","match":"@ahn1999IdealBrevitasFacilitas #1509 1564 – Bible – Criticism #Brevitas et facilitas #Calvin #etc. #interpretation #Jean #John The Ideal of Brevitas et Facilitas: The Theological Hermeneutics of John Calvin Ahn 1999   article","arg":"ahn1999IdealBrevitasFacilitas","icon":{"path":"icons/article.png"},"uid":"ahn1999IdealBrevitasFacilitas","text":{"copy":"","largetype":"The Ideal of Brevitas et Facilitas: The Theological Hermeneutics of John Calvin \n(citekey: ahn1999IdealBrevitasFacilitas)\n\nContinued 2001 as 'Verbum et Ecclesia'\n\nkeywords: 1509-1564 – Bible – Criticism, Brevitas et facilitas, Calvin, etc., interpretation, Jean, John"},"quicklookurl":"","mods":{"fn":{"arg":"ahn1999IdealBrevitasFacilitas_The Ideal of Brevitas et Facilitas- The Theologica"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"1, 2, 3 John","autocomplete":"Akin","subtitle":"Akin 2001   ","match":"@akin2001John 1, 2, 3 John Akin 2001   book","arg":"akin2001John","icon":{"path":"icons/book.png"},"uid":"akin2001John","text":{"copy":"","largetype":"1, 2, 3 John \n(citekey: akin2001John)"},"quicklookurl":"","mods":{"fn":{"arg":"akin2001John_1 2 3 John"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"'Ulama and Caliphs New Understanding of the \"God's Caliph''…","autocomplete":"Alajmi","subtitle":"Alajmi 2011    In: Journal of Islamic Law and Culture 13(1)   🌐 📕","match":"@alajmi2011UlamaCaliphsNew 'Ulama and Caliphs New Understanding of the \"God's Caliph'' Term Alajmi 2011  Journal of Islamic Law and Culture article pdf","arg":"alajmi2011UlamaCaliphsNew","icon":{"path":"icons/article.png"},"uid":"alajmi2011UlamaCaliphsNew","text":{"copy":"https://doi.org/10.1080/1528817X.2012.693391","largetype":"'Ulama and Caliphs New Understanding of the \"God's Caliph'' Term \n(citekey: alajmi2011UlamaCaliphsNew)"},"quicklookurl":"","mods":{"fn":{"arg":"alajmi2011UlamaCaliphsNew_Ulama and Caliphs New Understanding of the Gods"},"ctrl":{"valid":true,"arg":"https://doi.org/10.1080/1528817X.2012.693391","subtitle":"⌃: Open URL – https://doi.org/10.1080/1528817X.2012.693391"}}},{"title":"Novum Testamentum Graece","autocomplete":"Aland","subtitle":"Aland et al. 2012   ","match":"@aland2012NovumTestamentumGraece Novum Testamentum Graece Aland Aland Karavidopoulos Martini Metzger 2012   book","arg":"aland2012NovumTestamentumGraece","icon":{"path":"icons/book.png"},"uid":"aland2012NovumTestamentumGraece","text":{"copy":"","largetype":"Novum Testamentum Graece \n(citekey: aland2012NovumTestamentumGraece)"},"quicklookurl":"","mods":{"fn":{"arg":"aland2012NovumTestamentumGraece_Novum Testamentum Graece"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"Holy War in Ibn Khald\\","autocomplete":"Albarrán","subtitle":"Albarrán 2019    In: Journal of Medieval Worlds 1(1)   🌐 📕 📄","match":"@albarran2019HolyWarIbn Holy War in Ibn Khald\\ Albarrán 2019  Journal of Medieval Worlds article pdf","arg":"albarran2019HolyWarIbn","icon":{"path":"icons/article.png"},"uid":"albarran2019HolyWarIbn","text":{"copy":"https://doi.org/10.1525/jmw.2019.100004","largetype":"Holy War in Ibn Khald\\ \n(citekey: albarran2019HolyWarIbn)\n\nThis article aims to compare the different conceptions of holy war in Islam and Christianity by way of its depiction by Muslim sources, and to examine if the Islamic context would have conceived of a war carried out by Christians, and therefore infidels, as a holy one. This leads to analysis of whether the Islamic idea of holy war could be understood as a transcultural one or if, on the contrary, its sole conception was limited to those actions carried out by Muslims. To that end, Ibn Khald\\"},"quicklookurl":"","mods":{"fn":{"arg":"albarran2019HolyWarIbn_Holy War in Ibn Khald-"},"ctrl":{"valid":true,"arg":"https://doi.org/10.1525/jmw.2019.100004","subtitle":"⌃: Open URL – https://doi.org/10.1525/jmw.2019.100004"}}},{"title":"Job","autocomplete":"Alden","subtitle":"Alden 1993   ","match":"@alden1993Job Job Alden 1993   book","arg":"alden1993Job","icon":{"path":"icons/book.png"},"uid":"alden1993Job","text":{"copy":"","largetype":"Job \n(citekey: alden1993Job)"},"quicklookurl":"","mods":{"fn":{"arg":"alden1993Job_Job"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}},{"title":"The Recent Revival of Cosmological Arguments","autocomplete":"Alexander","subtitle":"Alexander 2008    In: Philosophy Compass 3(3)   🌐 📄","match":"@alexander2008RecentRevivalCosmological The Recent Revival of Cosmological Arguments Alexander 2008  Philosophy Compass article","arg":"alexander2008RecentRevivalCosmological","icon":{"path":"icons/article.png"},"uid":"alexander2008RecentRevivalCosmological","text":{"copy":"https://doi.org/10.1111/j.1747-9991.2008.00134.x","largetype":"The Recent Revival of Cosmological Arguments \n(citekey: alexander2008RecentRevivalCosmological)\n\nCosmological arguments have received more attention in the past ten years. One reason for this is that versions with restricted or even no reliance on the principle of sufficient reason (PSR) have been formulated. By not relying on PSR — what many consider to be a necessary falsehood — philosophers have been able to escape many of the old criticisms of cosmological arguments. In this essay I survey two recent attempts at presenting a sound version of a cosmological argument. I spend more time on Robert Koons' since his has not yet received the kind of quality attention that the other has."},"quicklookurl":"","mods":{"fn":{"arg":"alexander2008RecentRevivalCosmological_The Recent Revival of Cosmological Arguments"},"ctrl":{"valid":true,"arg":"https://doi.org/10.1111/j.1747-9991.2008.00134.x","subtitle":"⌃: Open URL – https://doi.org/10.1111/j.1747-9991.2008.00134.x"}}},{"title":"Problems for Moral/Natural Supervenience","autocomplete":"Alexander","subtitle":"Alexander 2011    In: Religious Studies 47(1)   🌐 📄","match":"@alexander2011ProblemsMoralNatural Problems for Moral/Natural Supervenience Alexander 2011  Religious Studies article","arg":"alexander2011ProblemsMoralNatural","icon":{"path":"icons/article.png"},"uid":"alexander2011ProblemsMoralNatural","text":{"copy":"https://doi.org/10.1017/S0034412510000053","largetype":"Problems for Moral/Natural Supervenience \n(citekey: alexander2011ProblemsMoralNatural)\n\n\"Everyone agrees that the moral features of things supervene on their natural features\" (Smith (1994), 22). Everyone is wrong, or so I will argue. In the first section, I explain the version of moral supervenience that Smith and others argue everyone should accept. In the second section, I argue that the mere conceptual possibility of a divine command theory of morality (DCT) is sufficient to refute the version of moral supervenience under consideration. Lastly, I consider and respond to two objections, showing, among other things, that while DCT is sufficient to refute this version of moral supervenience it is not necessary."},"quicklookurl":"","mods":{"fn":{"arg":"alexander2011ProblemsMoralNatural_Problems for Moral-Natural Supervenience"},"ctrl":{"valid":true,"arg":"https://doi.org/10.1017/S0034412510000053","subtitle":"⌃: Open URL – https://doi.org/10.1017/S0034412510000053"}}},{"title":"Goodness, God, and Evil","autocomplete":"Alexander","subtitle":"Alexander 2012   📓 📄 🏷 3","match":"@alexander2012GoodnessGodEvil #Language Arts & Disciplines / Linguistics / General #Language Arts & Disciplines / Linguistics / Semantics #Religion / Philosophy Goodness, God, and Evil Alexander 2012   book *","arg":"alexander2012GoodnessGodEvil","icon":{"path":"icons/book.png"},"uid":"alexander2012GoodnessGodEvil","text":{"copy":"","largetype":"Goodness, God, and Evil \n(citekey: alexander2012GoodnessGodEvil)\n\nMost contemporary versions of moral realism are beset with difficulties. Many of these difficulties arise because of a faulty conception of the nature of goodness. Goodness, God, and Evil lays out and defends a new version of moral realism that re-conceives the nature of goodness.  Alexander argues that the adjective 'good' is best thought of as an attributive adjective and not as a predicative one. In other words, the adjective 'good' logically cannot be detached from the noun (or noun phrase) that it modifies. It is further argued that this conception of the function of the adjective implies that recent attempts to provide necessary a posteriori identities between goodness and something else must fail.  The convertibility of being and goodness, the privation theory of evil, a denial of the fact-value distinction, human nature as the ground of human morality and even a novel argument for the existence of God are some of the implications of the account of goodness that Alexander offers.\n\nkeywords: Language Arts & Disciplines / Linguistics / General, Language Arts & Disciplines / Linguistics / Semantics, Religion / Philosophy"},"quicklookurl":"/Users/michaelbaldwin/Library/Mobile Documents/iCloud~md~obsidian/Documents/Zettelkasten/20 Literature Notes/alexander2012GoodnessGodEvil.md","mods":{"fn":{"arg":"alexander2012GoodnessGodEvil_Goodness God and Evil"},"ctrl":{"valid":false,"arg":"","subtitle":"⛔ There is no URL or DOI."}}}....
Too long so truncated......
{"path":"icons/book.png"},"uid":"augustine1990Tr [truncated]
[17:41:02.861] Supercharged Citation Picker[Script Filter] Processing complete
[17:41:02.876] Supercharged Citation Picker[Script Filter] Passing output 'gurtner2020ClarkEncyclopediaSecond_T & T Clark Encyclopedia of Second Temple Judaism' to Run Script

Sample BibTeX Entries
@book{gurtner2020ClarkEncyclopediaSecond,
  title = {T \& {{T Clark}} Encyclopedia of {{Second Temple Judaism}}},
  editor = {Gurtner, Daniel M. and Stuckenbruck, Loren T.},
  year = {2020},
  volume = {1},
  publisher = {{New York, NY : T\&T Clark}},
  address = {{London}},
  abstract = {The T \& T Clark Encyclopedia of Second Temple Judaism provides a comprehensive reference resource of over 600 scholarly articles aimed at those studying Judaism in the Second Temple Period, and the numerous texts and artefacts related to it. The work is split into four parts across two volumes. Part One locates the discipline in relation to other relevant fields (for example the Hebrew Bible, Rabbinics, Christian Origins) and provides an orientation to the discipline's distinctive nomenclatures and debates. The history of research in the area is also presented in full. Part Two presents an overview of respective contexts of the discipline set within the broad framework of historical chronology. Social/cultural, literary, linguistic, geographical, political, and religious contexts are all explained, from the time period of the conquests of Alexander the Great (332 B.C.E.) through to the reign of Hadrian (135 C.E.). Part Three focuses specifically on the literature of the Second Temple period, summarizing the content of key texts, and examining their similarities and differences with other texts of the period. This section includes surveys of scholarship on date, provenance, location, language(s), and interpretative issues. The reception history of texts is considered. Part Four addresses topics, specifically those relevant to Second Temple literature such as places, practices, historical figures and artefacts. The volumes include 14 specially created color maps and over 60 charts and illustrations},
  isbn = {978-0-567-65811-1 978-0-567-66094-7 978-0-567-66144-9},
  lccn = {BM176 .T324 2020},
  keywords = {586 B.C.-70 A.D,Bible,Criticism; interpretation; etc.; Jewish History,Encyclopedias,History,Jews,Judaism,Judaism History,Post-exilic period; 586 B.C.-210 A.D,Religious pluralism},
  annotation = {OCLC: on1003204298},
  file = {/Users/michaelbaldwin/OneDrive/Zotero/gurtner2020ClarkEncyclopediaSecond.pdf}
}

@book{gutting2009WhatPhilosophersKnow,
  title = {What {{Philosophers Know}}: {{Case Studies}} in {{Recent Analytic Philosophy}}},
  author = {Gutting, Gary},
  year = {2009},
  publisher = {{Cambridge University Press}},
  address = {{Cambridge}},
  langid = {english},
  file = {/Users/michaelbaldwin/OneDrive/Zotero/gutting2009WhatPhilosophersKnow.pdf}
}

@article{gutman2015OttomanHistoriographyEnd,
  title = {Ottoman {{Historiography}} and the {{End}} of the {{Genocide Taboo}}: {{Writing}} the {{Armenian Genocide}} into {{Late Ottoman History}}},
  shorttitle = {Ottoman {{Historiography}} and the {{End}} of the {{Genocide Taboo}}},
  author = {{Gutman}},
  year = {2015},
  journal = {Journal of the Ottoman and Turkish Studies Association},
  volume = {2},
  number = {1},
  pages = {167},
  issn = {23760699},
  doi = {10.2979/jottturstuass.2.1.167},
  langid = {english},
  file = {/Users/michaelbaldwin/OneDrive/Zotero/gutman2015OttomanHistoriographyEnd.pdf}
}

Buffer Files
last_version.txt
CHANGED THE JSON FILE TO TXT BECAUSE THIS GITHUB BOX WON"T LET ME ATTACH IT OTHERWISE
change buffer json.txt
Workflow Configuration

Checklist

[X] I have updated to the latest version of this workflow.
[X] I have tried manually reloading the buffer (Alfred keyword scp, select Force Buffer Reload).

I have made some improvements to the PDF opening function. It will now also notify you if the PDF cannot be found. (Download the latest release)
Try again opening the PDF. It will now either work or give you an error message that the PDF cannot be found.
If neither is the case, try using ⌘⌥⇧⌃ ↵ explicitly, meaning pressing all four modifier keys plus return.  If that works, but hyper + ↵ does not work, it means your remapping software has some issues. If ⌘⌥⇧⌃ ↵ also fails, please comment, and I'll re-open the issue 🙂

It works now! Thanks very much for sorting it!

I have made some improvements to the PDF opening function. It will now also notify you if the PDF cannot be found. (Download the latest release)
Try again opening the PDF. It will now either work or give you an error message that the PDF cannot be found.
If neither is the case, try using ⌘⌥⇧⌃ ↵ explicitly, meaning pressing all four modifier keys plus return. If that works, but hyper + ↵ does not work, it means your remapping software has some issues. If ⌘⌥⇧⌃ ↵ also fails, please comment, and I'll re-open the issue 🙂


RP-34 Remove BeanFactory from business logic

Remove BeanFactory from business logic.

Fixed by https://github.com/zwieback/old-relef-parser/pull/67


Bro can you please upload latest version of dll files here

These dll files giving issue please update these files and reupload invisiwind
Thank you foe do this all

It's been a while, but I've just released newly built dlls after a project upgrade.


Feature Request: Wildcard subdomain support

Since January 4 2018 Let's Encrypt introduced a public test API endpoint for the ACME v2 protocol and wildcard support:
https://letsencrypt.org/2017/07/06/wildcard-certificates-coming-jan-2018.html
https://community.letsencrypt.org/t/acme-sh-supports-acme-v2-wildcard-now/49685
Is there any plan on adding this feature for this extension? If so, when could we expect to have it released? Thank you!

It's alive: https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579

This would be very useful to implement. The sooner the better :)

I agree and hope you allow to use external name servers

@rkosolapov Can this now be achieved using the command line in some way until it's supported from the Plesk control panel or using the Plesk plugin for Let's Encrypt and the command line are mutually excluding?

Any hope for implementing this feature sooner?

@enekochan you can use third-party client to get a wildcard certificate.  Plesk will not touch it (there is a little nuance - the name of the certificate should not begin with "Let's Encrypt").
Regarding the feature implementation - first version is planned to be released soon (next month maybe), that release will cover basic scenarios only.
@CHfish-ch, could you describe your case with external name servers?  Do you mean your DNS servers are not synchronised with DNS zones in Plesk?   Looks like we can't automate this case, the only thing we can do - provide an instruction what DNS record should be added to the zone.

@rkosolapov Indeed: My providers DNS servers are not synced with Plesk - but I'd be willing to manually add the requested entry to DNS if it is displayed... So thank you for adding such an option!

@rkosolapov what about it ?

The final announcement of the ACMEv2 release with wildcard support: https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579
Some technical information about ACMEv2: https://community.letsencrypt.org/t/acme-v2-production-environment-wildcards/55578

Is this feature planned for the Plesk extension?

@MrSnoozles https://support.plesk.com/hc/en-us/articles/115000490174/comments/360000314893

It's in. Check the link above

Too bad the domains still do not renew automatically yet.

wildcard option still broken and the workaround instructions (link below) don't work because you can no longer uncheck the aliases options (they get checked and disabled when checking wildcard option).
https://support.plesk.com/hc/en-us/articles/360008040893-www-alias-subdomains-are-not-included-into-the-issued-wildcard-Let-s-Encrypt-Certificate
would've followed the manual instructions here:
https://talk.plesk.com/threads/lets-encrypt-wildcard-certificates.347562/
but unfortunately I have to wait a week now because I got hit by the renewal rate-limit bug described in:
https://github.com/plesk/letsencrypt-plesk/issues/207


Establish external dependency baseline and testing strategy.

Spring Boot customers might be overriding dependency versions that SDKs ship with.
We should identify intersection between SDK and Spring BOM and make sure that dependency versions defined by supported spring lines are runtime compatible with SDKs.
For example:

define place where we can configure min versions of SDK dependencies.
add jobs in test matrixes that use those min versions.

The Spring CI recently added additional jobs which changes the Spring Boot version to the minor baseline version (ex 2.6.6 -> 2.6.0) and runs testing again. We could investigate whether the same concept would work for us, I'd initially aim for testing:

Jackson
Reactor Core
Reactor Netty

as they're our three most used dependencies.
This should eventually span minor versions as well once we have the capability to shim minor versions.

Related: #25244, #20514

related: #30198

This has been standardized and being used currently for testing different versions of Reactor, Reactor Netty, and Jackson


Show code examples on usage site

Currently we build to a usage site here: https://tscircuit.github.io/jscad-fiber
But there is no way to see the code for each example. Let's create a way to see the code for each example. This will help people learn to use jscad-fiber better.
/bounty $40

@seveibar How's about adding a code button here in the side menu

and then rendering code snippets below side panel ?

Would like to get your inputs here and assigned the issue to me : )

@DhairyaMajmudar go ahead with that

hey @seveibar I had a try and make this

hey @seveibar I had a try and make this

To be honest, I’ve been working on it since yesterday. I haven’t commented yet because I wasn’t sure, but I gave it a try and finally got it done!

@anas-sarkez can you post your screenshot? It was pretty good- i think it was definitely an acceptable aesthetic

@DevGajjar28 looks ok but yea syntax highlighting and more of an overlay or integrated into cosmos is better.
As far as who gets it im just going to merge PRs and do reviews like i normally would, for frequent contributors i do assignments but this repo doesnt have many freqent contributors

Hey @seveibar, I have completed the task and am raising my PR. Please review it!
Preview:
https://github.com/user-attachments/assets/882150b1-15ef-498f-aaee-0d76af81c935


TestMaxBlockSize flake

Problem
--- FAIL: TestIntegrationTestSuite (21.86s)
    --- FAIL: TestIntegrationTestSuite/TestMaxBlockSize (13.12s)
        integration_test.go:[27](https://github.com/celestiaorg/celestia-app/actions/runs/7817375365/job/21325106901?pr=3085#step:4:28)1:
            	Error Trace:	/home/runner/work/celestia-app/celestia-app/app/test/integration_test.go:271
            	            				/home/runner/work/celestia-app/celestia-app/app/test/integration_test.go:174
            	            				/home/runner/go/pkg/mod/github.com/stretchr/testify@v1.8.4/suite/suite.go:112
            	Error:      	Not equal:
            	            	expected: []byte{0xe8, 0xf8, 0x5b, 0xba, 0xe5, 0x85, 0xc6, 0x19, 0xf3, 0xbd, 0x98, 0x4, 0x5e, 0xe5, 0x4d, 0x63, 0xc1, 0xd, 0x77, 0x8d, 0x22, 0x8a, 0x33, 0xea, 0xc6, 0x60, 0x[28](https://github.com/celestiaorg/celestia-app/actions/runs/7817375365/job/21325106901?pr=3085#step:4:29), 0x78, 0x82, 0x28, 0xbf, 0xbd}
            	            	actual  : []byte{0xd5, 0x5c, 0xaf, 0xbb, 0x44, 0x65, 0x4e, 0xc1, 0xb5, 0x7e, 0xf9, 0x43, 0x83, 0x97, 0x9e, 0x7c, 0x[31](https://github.com/celestiaorg/celestia-app/actions/runs/7817375365/job/21325106901?pr=3085#step:4:32), 0xc, 0xd, 0xcc, 0x92, 0x75, 0x7c, 0xde, 0xfd, 0xdd, 0x9b, 0xa5, 0x53, 0x6b, 0xc4, 0x5}

            	            	Diff:
            	            	--- Expected
            	            	+++ Actual
            	            	@@ -1,4 +1,4 @@
            	            	 ([]uint8) (len=[32](https://github.com/celestiaorg/celestia-app/actions/runs/7817375365/job/21325106901?pr=3085#step:4:33)) {
            	            	- 00000000  e8 f8 5b ba e5 85 c6 19  f3 bd 98 04 5e e5 4d 63  |..[.........^.Mc|
            	            	- 00000010  c1 0d 77 8d 22 8a [33](https://github.com/celestiaorg/celestia-app/actions/runs/7817375365/job/21325106901?pr=3085#step:4:34) ea  c6 60 28 78 82 28 bf bd  |..w.".3..`(x.(..|
            	            	+ 00000000  d5 5c af bb 44 65 4e c1  b5 7e f9 [43](https://github.com/celestiaorg/celestia-app/actions/runs/7817375365/job/21325106901?pr=3085#step:4:44) 83 97 9e 7c  |.\..DeN..~.C...||
            	            	+ 00000010  31 0c 0d cc 92 75 7c de  fd dd 9b a5 53 6b c4 05  |1....u|.....Sk..|
            	            	 }
            	Test:       	TestIntegrationTestSuite/TestMaxBlockSize
    network.go:48: tearing down testnode
FAIL

Occurences

https://github.com/celestiaorg/celestia-app/actions/runs/7817375365/job/21325106901?pr=3085#step:4:27

I got this to reproduce locally so here's more info: bad_block_EJVzDj.json
My hypothesis was that this test starts with app version 1 and then the bad block gets produced with app version 2 because some other test upgraded the testnode version but I re-ran the test locally with debug logs and this time it passed and all blocks appear to use app version 2.
height 238 app version 2
height 239 app version 2
height 240 app version 2
height 241 app version 2
height 242 app version 2

Pretty confident the testnode app version is on 0 but the blocks are getting produced with app version 2 🤔

Notes while revisiting this:

The test name TestMaxBlockSize isn't accurate because this test verifies the max square size is hit, not the max block size. Word choice matters here because block size != square size so the max block size != max square size.
I don't understand why the TestMaxSquareSize performs ExtendBlockTest. IMO these should be two separate tests to make it easier to identify what broke when one test fails.
I'm trying to figure out why blocks get produced with app version 2 when it looks like app version is 0 in prepare and process proposal.

app version in prepare proposal 0
app version 0 block header 0
app version in process proposal 0
app version 0 block header 2

To repro more quickly, one can run:
cd app/test && go test -run TestIntegrationTestSuite/TestMaxBlockSize -count 5 -v

I wasn't able to get visibility because I was trying to log the version in prepare/process proposal using:
	fmt.Printf("app version in prepare proposal %v\n", sdkCtx.ConsensusParams().Version.AppVersion)

which was silently panicing so I only observed test timeouts. It is possible to print the version via:
	fmt.Printf("app version in prepare proposal %v\n", sdkCtx.ConsensusParams().Version.GetAppVersion())

Interestingly can't repro with single blob or multi blob test cases. Can only repro with randomTxGen. The app version in prepare / process proposal was 2 before and after:
app version in prepare proposal 2
app version in process proposal 2
=== NAME  TestIntegrationTestSuite/TestMaxBlockSize
    integration_test.go:277:
        	Error Trace:	/Users/rootulp/git/rootulp/celestiaorg/celestia-app/app/test/integration_test.go:277
        	            				/Users/rootulp/git/rootulp/celestiaorg/celestia-app/app/test/integration_test.go:174
        	            				/Users/rootulp/go/pkg/mod/github.com/stretchr/testify@v1.9.0/suite/suite.go:115
        	Error:      	Not equal:
        	            	expected: []byte{0xd7, 0x72, 0x7a, 0xd0, 0x5f, 0xef, 0xa3, 0x9f, 0x52, 0x7f, 0xe3, 0x4f, 0x82, 0xcf, 0xa2, 0x87, 0xbc, 0xbb, 0x8a, 0xc0, 0xcf, 0x52, 0x72, 0x3e, 0xc4, 0x21, 0x3d, 0x43, 0x8c, 0x97, 0xf9, 0x62}
        	            	actual  : []byte{0x35, 0x48, 0x18, 0x18, 0x2b, 0xba, 0x90, 0xb5, 0xd8, 0x6b, 0xde, 0xad, 0x9c, 0x36, 0x29, 0x75, 0x60, 0xa1, 0x6, 0x6d, 0x3, 0xe4, 0x1, 0x2e, 0x4c, 0x4b, 0x92, 0x1f, 0x81, 0x19, 0x67, 0x18}

        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1,4 +1,4 @@
        	            	 ([]uint8) (len=32) {
        	            	- 00000000  d7 72 7a d0 5f ef a3 9f  52 7f e3 4f 82 cf a2 87  |.rz._...R..O....|
        	            	- 00000010  bc bb 8a c0 cf 52 72 3e  c4 21 3d 43 8c 97 f9 62  |.....Rr>.!=C...b|
        	            	+ 00000000  35 48 18 18 2b ba 90 b5  d8 6b de ad 9c 36 29 75  |5H..+....k...6)u|
        	            	+ 00000010  60 a1 06 6d 03 e4 01 2e  4c 4b 92 1f 81 19 67 18  |`..m....LK....g.|
        	            	 }
        	Test:       	TestIntegrationTestSuite/TestMaxBlockSize
app version in prepare proposal 2
app version in process proposal 2

There is a discrepancy in the square sizes used in process_proposal.go and extend_block.go. The latter looks incorrect because it always uses the square size upper bound rather than the max effective square size (i.e. the minimum of: gov max square size, upper bound versioned const).
https://github.com/celestiaorg/celestia-app/blob/f3fb834dd3e0b6e8c79eb077d2fbe97257eb8bcb/app/process_proposal.go#L122
https://github.com/celestiaorg/celestia-app/blob/f3fb834dd3e0b6e8c79eb077d2fbe97257eb8bcb/app/extend_block.go#L18

At least locally, I was able to resolve flakiness via the diff in https://github.com/celestiaorg/celestia-app/pull/3150

Fortunately it looks like celestia-node doesn't use the ExtendBlock function exported from celestia-app (see this search). But it does have it's own buggy implementation (see here) because I think that should be using the max effective square size.

A few concrete action items:

[breaking] Modify ExtendBlock to be a method on app. It likely also needs an sdkCtx so the function signature will change.
[breaking] Consider un-exporting ExtendBlock because it isn't used by celestia-node.
[breaking] Rename GovSquareSizeUpperBound to MaxEffectiveSquareSize.
Add unit tests to ExtendBlock that are stand-alone from the TestMaxBlockSize.

this might stem all the way back to https://github.com/celestiaorg/celestia-app/pull/1772, where we covered up an underlying issue with square by using the same stateful param in ProcessProposal instead of fixing the non-determinism issue we're seeing now

Copying from a Slack convo, we may actually want to use the upper bound in process proposal and extend block so that celestia-node isn't stateful (i.e. doesn't need access to gov max square size) when it tries to extend squares.

Separately, celestia-node needs a way to figure out the max effective square size from app and then use that to extend the block.

It can query the gov max square size and perform the same method of taking the min of the two. The problem is that if this were to change celestia-node wouldn't know unless it was constantly querying the square size each block. I remember talking about this problem several months ago and just concluding that it wasn't a problem if light nodes just use the upper bound and we rely on the validator set to ensure that it is within bounds

Created https://github.com/celestiaorg/go-square/issues/47

Blocked on a release of go-square with https://github.com/celestiaorg/go-square/pull/49. The team has different opinions on whether it should be released as 1.0.1 or 2.0.0. We're meeting tomorrow to decide.


Playground should fallback to .env file when no env context was provided via CLI / Middleware

Implemented in latest version.


DevEx/CI improvements

adds additional console logging so users know where the CLI is looking for input/compiled/proven/etc files
updates the CI to build and use local package links so no more optimistic publishing is required
updates interface names in react to be in line with client names
adds additional exports in client so that users do not need to import lower-layer axiom npm packages

PR description updated and ready for review @yi-sun @jonathanpwang


Pets: Feed button doesn't seem to do anything

When I try to feed my Tux, nothing seems to happen.
He has been starving for almost 4 days now :sob:
My Interface.json indicates that he has never been fed:
    "pet": {
        "lastFeedDate": "2022-09-16T22:53:57.115",
        "petBirthDay": "2022-09-16T22:53:57.115",
        "petColor": 0.5,
        "petFeedCount": 0,
        "petName": "Titi",
        "petSpecies": 3
    },

Looking at the log, it seems like this might be some sort of weird conflict:
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine] [MaddersNameTags.js] [UncaughtException signalHandlerException] Error: Unable to parse JSON string in https://hifi-utils.jollysoft.com/HiFiApps/MaddersNameTags/MaddersNameTags.js:313
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine] [Backtrace]
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine]     <anonymous>(event = 'feed') at https://hifi-utils.jollysoft.com/HiFiApps/MaddersNameTags/MaddersNameTags.js:313
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine]     <global>() at -1
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine] [pets.js] [UncaughtException signalHandlerException] Error: Result of expression 'pet.lastFeedDate.getMonth' [undefined] is not a function. in https://theanine3d.github.io/pets/pets.js:599
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine] [Backtrace]
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine]     feedPet() at https://theanine3d.github.io/pets/pets.js:599
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine]     onWebEventReceived(message = 'feed') at https://theanine3d.github.io/pets/pets.js:670
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine]     <global>() at -1
[09/20 09:19:17] [DEBUG] [hifi.scriptengine] [defaultScripts.js] editModes.js, EditTools.webEventReceived: Cannot parse received JSON data
[09/20 09:19:17] [DEBUG] [hifi.scriptengine.script] [defaultScripts.js] entityList.js: Error parsing JSON
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine] [defaultScripts.js] [UncaughtException signalHandlerException] Error: Unable to parse JSON string in file:///tmp/.mount_Overte7cSr3v/overte/interface/scripts/system/emote.js:74
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine] [Backtrace]
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine]     onWebEventReceived(event = 'feed') at file:///tmp/.mount_Overte7cSr3v/overte/interface/scripts/system/emote.js:74
[09/20 09:19:17] [CRITICAL] [hifi.scriptengine]     <global>() at -1

I encountered this issue myself after switching to the remote version of the app. Recreating the pet with the Abandon button fixed it. The issue appears to be related to the saved data, specifically the lastFeedDate variable isn't showing valid time/date data after switching to the remote version (and thus causing the getMonth() function to error). I'll see if I can potentially add some code to reset the date if it comes back as undefined/null, so that people don't have to recreate their pets all over again.

Can you reload the script and then try to feed again? Let me know if it's fixed for you now. I just updated the script with a change that seems to fix the issue, at least on my end.

I think I fixed the issue. It looks like it was being caused by the pet.lastFeedDate being turned into a string instead of a Date object. Because of that, the Date getMonth() method was failing. There's now a check to see if it's a string, and if it is, it converts it back to a Date object. Let me know if you're still encountering the issue!

:tada:

I encountered this issue myself after switching to the remote version of
the app. Recreating the pet with the Abandon button fixed it. The issue
appears to be related to the saved data, specifically the lastFeedDate
variable isn't showing valid time/date data after switching to the remote
version (and thus causing the getMonth() function to error). I'll see if I
can potentially add some code to check that so that people don't have to
recreate their pets all over again.
On Tue, Sep 20, 2022, 12:18 AM Julian Groß @.***> wrote:

—
Reply to this email directly, view it on GitHub
https://github.com/theanine3D/overte-addons/issues/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVGVCHM2DGYED3TY2JIOUDTV7FQKTANCNFSM6AAAAAAQQYSG4E
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Towards #11 Add support for enums

enum slices don't work - need scalar support

I have not gone through all of it in detail, but the tests, oh boy what they enable! Enum variants with inner types! 🤯

Pretty cool in theory right?! This might be a bit ahead of its time though in terms of downstream uses, since querying nested types doesn't seem to be a thing?  But this could be useful for flight rpc or parquet (assuming nested types are already supported or will be supported in the future). Read-only structured data for example JSON docs, can be cleaned and easily stored in parquet.

yeap, very impressive! It reminds me of flatbuffers and the like that can store these type of nested enum variants, but in Arrow and typing in Rust! Amazing idea and implementation, @ncpenke !
Agree that is probably ahead of its time - I do not think arrow2 (or C++ for fwiw) even tests these complex types over IPC lol


baselines break with version bumps

Currently, baselines have no notion of which version of detect-secrets created it. This makes things slightly annoying, because with a major version bump, it could invalidate old baselines, requiring the user to recreate the baseline to be compliant once again.
At the very least, we should have baselines know which detect-secrets version created it, so we can be aware when this happens.

0.8.2 are one version, 0.8.8 is a new, breaking version. Due to detect-secrets thinking the secrets that have the same hash but different types are different. (https://github.com/Yelp/detect-secrets/pull/26/files was the change you will notice if you update to 0.8.8)

Note: If we don't update/change the plugin version types in the future, this is relatively preventable IMO

A related aside: I didn't update the CHANGELOG when I bumped, in a rush. Feel free to not approve my next PR until I do so. (May add emojis


Implement component pack indexer

This contains drafts for both the "indexer" and the "planner" (which is currently also taking care of the file copying (= "plan execution")).
I consider this still a "spiking phase", so there are no tests yet, because I'm still constantly shuffling stuff around and changing interfaces. I'll write tests as soon as stuff has settled into a more stable state, pinky promise :sweat_smile:
The code is also very often pretty ugly. I'd still consider this mergeable so you can hook it into the CLI and actually get to a first working version.
The current state:

Assumption: the target repo doesn't have any component files yet
This call copies all component pack files to the project:

WeirdPhlex::Core::Planner.initial_full_installation_plan.perform!

How to use this currently:

Have the target project and component pack dev repos checked out at avi-sample
Run the code above from the target project Rails console

I consider this still a "spiking phase", so there are no tests yet, because I'm still constantly shuffling stuff around and changing interfaces. I'll write tests as soon as stuff has settled into a more stable state, pinky promise :sweat_smile:
The code is also very often pretty ugly. I'd still consider this mergeable so you can hook it into the CLI and actually get to a first working version.
The current state:

Assumption: the target repo doesn't have any component files yet
This call copies all component pack files to the project:

WeirdPhlex::Core::Planner.initial_full_installation_plan.perform!

I could not test it that much, but the method component_packs from Indexer you've mentioned here didn't work at all. It's non existent at this stage.

That comment was the original API from when I first requested a review. It was outdated. I moved the contents of my up-to-date comment into the PR description and deleted the old description.


dts: Add binding and nodes representing Nordic ECB peripheral

This PR adds binding for the Nordic ECB (AES electronic codebook mode encryption) peripheral and corresponding devicetree nodes for nRF SoCs that feature this peripheral. The crypto_nrf_ecb driver is converted so that it creates its instance basing on DT, and the CRYPTO_NRF_ECB_NAME Kconfig option is removed as no longer needed.
The first commit does an additional minor cleanup in one of the files modified by this PR.

Rebased and updated accordingly (used NRF_DEFAULT_IRQ_PRIORITY instead of 1 in interrupts properties) after #20894 has been merged.

Rebased and updated accordingly (used NRF_DEFAULT_IRQ_PRIORITY instead of 1 in interrupts properties) after #20894 has been merged.

Rebased on master, to solve the problem with reported undefined Kconfig options being referenced (those from the recently added modules/audio/sof project that was not fetched by west before the rebase).

Rebased on master, to solve the problem with reported undefined Kconfig options being referenced (those from the recently added modules/audio/sof project that was not fetched by west before the rebase).


Was unable to start default crouton xfce install, but fixed it

name: xenial
encrypted: no
Entering /mnt/stateful_partition/crouton/chroots/xenial...
crouton: version 1-20220111101058~master:a9eafaee
release: xenial
architecture: armhf
xmethod: xorg
targets: xorg,xiwi,xfce
host: version 12105.100.0 (Official Build) stable-channel daisy
kernel: Linux localhost 3.8.11 #1 SMP Sun Jul 14 00:09:57 PDT 2019 armv7l armv7l armv7l GNU/Linux
freon: yes
Unmounting /mnt/stateful_partition/crouton/chroots/xenial...
Please describe your issue:
I am using a Samsung Chromebook XE303C12-A01NL.
The issue I was having was that after installing crouton xfce (like the readme suggested), it just would not launch. When using the command to launch xfce: sudo startxfce4 It would try to start, show a black screen and quickly crash back to the shell. Chrome OS would still be running but it would show errors like in this screenshot

In other forums I saw people hinting on a few addons that were not (correctly) installed. They said that installing/updating xiwi would fix the issue. So I tried the following command: sudo crouton -u -t xiwi
That failed!! but I stumbled upon a few dependencies that were missing.
xserver-xorg-core and xserver-xorg-video-dummy
I looked up how people install packages in chrome os/crouton. And found that sudo apt install does not work in the default shell in chrome os, but:

Go into the chroot using sudo enter-chroot
It might tell you that there is a chroot setup script still existant, ignore it by pressing n
Inside the chroot execute the following command to install/update both dependancies
sudo apt install xserver-xorg-core xserver-xorg-video-dummy (you have to accept a few prompts)
Now that those are installed type exit and you will return to the default shell of chrome os.
After that I, just to be sure, executed sudo crouton -u -t xorg (I dont think it is needed though)
Then I could launch xfce with sudo startxfce4

Now, you might have noticed; I'm not a pro in linux, so if anyone has a way that is better or anything, please add to this thread
It is working like a charm now!

very nice you have some expert knowledge if you got this far
i have no error messages the dummy driver has crouton that may not work anymore

Thank-you for writing this. It helped me recall the issues for the Samsung ARM ChromeBook and I was able to get my replacement XE303 working with xfce.
It works if one installs xiwi before xfce, i.e.
.> sudo crouton -t xiwi,xfce
Google ChromeBooks switched from using X11 to using freon as its display server. As a result, ARM devices can only run the XFCE desktop in an XIWI window.


Support new ROS2 distributions (Humble, Iron or Jazzy)

Is your feature request related to a problem? Please describe.
It would be great to support a non-deprecated ROS2 distribution. ROS2 Galactic reached its EOL (end-of-life), and is no longer officially supported. Thus, there are no security fixes and no bug fixes.
I have already tried and tested ROS2 Humble with the iot fleetwise edge and also made the CI changes necessary to build the artifacts. I am happy to share those if it helps.

Hi, thank you for reporting this.
To give you some context, we currently support Galactic because it is the one available to be installed on Ubuntu 20.04, which is still our base development image.
We indeed want to support other ROS2 releases, but since we want to keep supporting Ubuntu 20.04, we would have to keep the code compatible with Galactic.
If you don't mind, could you share the changes in a PR just for us to have an idea of how much it changed? If there aren't a lot of breaking changes, we might be able to have the code working with both Galactic and Humble soon. But if there are big differences between both releases we will require more time to complete this.


Won't work with SSR

Hey,
Thank you so much for this component.
Although, This works fairly well with Vue. It doesn't support SSR for Vue.
I guess it's an important feature that we are missing right here.
What do you think?

This might be able to help us:
https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/mixins/detachable.js
https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/components/VDialog/VDialog.js


OmniAuth oauth2-google missing credentials

We need google API credentials in order to use the google-oauth2 gem, its currently throwing a 400 error when attempting to log in.

Can you push the branch you are working on this with so I can see your work so far, and also share where you encountered the error message or prompt related to this.

fixed, can now login with gmail credentials


Unable to change JSX pragma

Changing jsx pragma throws following error

webpackbin 2  is coming soon:
https://github.com/cerebral/webpackbin/
https://webpackbin-test.firebaseapp.com/

The issue is still present in webpackbin 2.

@developit Have you checked webpackbin.com ? Can not reproduce there.

Yup - that's where I was editing.  On this bin, try removing the /** @jsx h */ comments - you'll get an error saying "React is undefined" because it's trying to use React.createElement.

Ah, I see! Noted, will look into it as soon as I can :)


[BUG] Fix broken "Update a comment with size" step in the CI flow

Right now when the build pipeline runs it errors as follows. Although this failure is not reported as failure! So this is a failed run from the following run:
Run echo "pull id $ISSUEID size $BASE_SIZE  $TOOLS_SIZE"  && \
pull id 412 size<PHONE_NUMBER><PHONE_NUMBER>
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
{
  "message": "Resource not accessible by integration",
100   231  100   153  100    78    973    496 --:--:-- --:--:-- --:--:--  1480
  "documentation_url": "https://docs.github.com/rest/issues/comments#create-an-issue-comment"
}

Tried to fix it here: https://github.com/Azure/CloudShell/pull/413


Invoice creation

Invoices get generated and emailed when someone clicks a button
Pantry fee, fixed percentage
Late fee, fixed percentage or flat fee with threshold

Originally created by Tom Smyth at 2015-08-19 01:53, migrated from redmine-#2875

Tracker changed from Tweak to Feature

By Tom Smyth at 2015-09-23 06:13

Category set to Accounts

By Tom Smyth at 2015-09-14 03:35

Priority changed from 4 to 2

By Tom Smyth at 2015-10-18 17:23

Status changed from New to Closed

By Tom Smyth at 2015-11-09 05:31


You must install .NET Desktop Runtime to run this application

Microsoft PowerToys version
0.64.1
Installation method
Scoop
Running as admin
No
Area(s) with issue?
General
Steps to reproduce
So I installed using scoop and also installed .NET using .\dotnet-install.ps1 script as I have no admin rights. I get the following errors however and cannot work out why. Bit of a noob but have followed this https://github.com/microsoft/PowerToys/issues/411#issuecomment-1185372359
I get this

Any info would be awesome
✔ Expected Behavior
Power toys works
❌ Actual Behavior
Power toys doesn't work
Other Software
No response

we don't support the scoop method currently.  We are proactively working on this and
/dup https://github.com/microsoft/PowerToys/issues/19761  (work done)
/dup https://github.com/microsoft/PowerToys/issues/411


bug: finish event emits immediately

I have tried to use it on a bot that is based on Discord.js version 13, but for some reason, the dispatcher emits the "finish" event immediately.
i'm listening for "start", "finish", "error" and "debug" events,
I have the logs of "debug" events here:
from {"status":"buffering","resource":true,"stepTimeout":false}
to {"status":"playing","missedFrames":0,"playbackDuration":0,"resource":true,"stepTimeout":false}

No outputs from "error" events though.
The stream is also coming directly from ytdl-core (as it is in the example),
Here is my PlayOptions object:
{
     metadata: {
           ctx,
           track,
           connection
     },
     behaviours: {
           noSubscriber: NoSubscriberBehavior.Stop
     },
          inlineVolume: true,
          initialVolume: 100 / 100
}

any idea or any solution?

Source code of the full command and others can be found in this repository

This could be caused by ytdl stream closing immediately. Have you tried using other streams?
You could perhaps try playing local file stream and see if that works.

the funny thing is, the new state that is being changed, is "playing" and not even "finished" but still fires up "finish" events.

Just tried playing ytdl stream on a test bot and everything seems to be fine.

The procedure is simple:
const song = ytdl(vid.url, {
    highWaterMark: 1 << 25,
    filter: "audioonly",
    quality: "highestaudio"
});

connection.play(song, {
    metadata: {
        video: vid,
        message: message as Message<true>
    }
});

I was using discord-ytdl-core, i switched to ytdl-core seems to be fine now.

The problem could be the output format of discord-ytdl-core with input format set on voice being different.


add ability to decode an extrinsic

adds a method to the AssetTransferApi to decode an extrinsic given the hex of its tx

closes: #160

I just added this issue: https://github.com/paritytech/asset-transfer-api/issues/166 and it kind of relates to this PR, Since you added the westmint mock api. We should update the other two metadata's to be 9420 at the least. It might require some fixing of the tests results which is a bit of a pain, but it would probably do us good in the future.


Compiler segfault with optimisation enabled (possibly due to 'Combine redundant instructions')

The following code triggers a segfault in ponyc when optimisations are enabled.
The highlight is:
Stack dump:
0.      Running pass 'CallGraph Pass Manager' on module 'optimisationcallgraph'.
1.      Running pass 'Combine redundant instructions' on function '@Main_tag_create_oo'
Segmentation fault (core dumped)

The interesting thing is that the bug is very sensitive to any code changes. So, I have not really managed to simplify the snippet much further. If I do any of the following then the bug is not triggered:

remove the double call in create, the bug is not
change expect == actual to expect is actual
change TimeStamp from (I64,I64) to just I64
simplify the nested ifs in compare

So, essentially, I don't really have enough insight into what the optimiser is trying to do, to be able to build a simpler code snippet that triggers the bug.
Below please find:

the code snippet that triggers the compiler bug
the output when optimisation is enabled and the compiler crashes
the output when optimisation is disabled
the ponyc compiler version

Code snippet triggering compiler bug
$ cat optimisation-bug.pony

actor Main

  new create(env: Env) =>
		check[Compare](Equal, TimeStamps.compare((0,1), TimeStamps.max((0,0), (0,1))))
		check[Compare](Equal, TimeStamps.compare((0,1), TimeStamps.max((0,1), (0,0))))

	fun check[A: (Equatable[A] #read)]
		(expect: A, actual: A, msg: String = "", loc: SourceLoc = __loc): Bool =>
		expect == actual

type TimeStamp is (I64, I64)

primitive TimeStamps
	fun compare(lhs: TimeStamp, rhs: TimeStamp): Compare =>
		if lhs._1 == rhs._1 then
			if lhs._2 == rhs._2 then
				Equal
			elseif lhs._2 < rhs._2 then
				Less
			else
				Greater
			end
		elseif lhs._1 < rhs._1 then
			Less
		else
			Greater
		end

	fun max(lhs: TimeStamp, rhs: TimeStamp): this->TimeStamp =>
		match(TimeStamps.compare(lhs,rhs))
		| Less => rhs
		| Greater => lhs
		| Equal => lhs
		end

Compiler Segfault with optimisation enabled
$ ~/opt/pony/bleed/build/release/ponyc
Building builtin -> /home/stewart/opt/pony/bleed/packages/builtin
Building . -> /home/stewart/opt/pony/bugs/optimisationcallgraph
Generating
 Reachability
 Selector painting
 Data prototypes
 Data types
 Function prototypes
 Functions
 Descriptors
Optimising
Stack dump:
0.      Running pass 'CallGraph Pass Manager' on module 'optimisationcallgraph'.
1.      Running pass 'Combine redundant instructions' on function '@Main_tag_create_oo'
Segmentation fault (core dumped)

Successful build without optimisation
$ ~/opt/pony/bleed/build/release/ponyc -d
Building builtin -> /home/stewart/opt/pony/bleed/packages/builtin
Building . -> /home/stewart/opt/pony/bugs/optimisationcallgraph
Generating
 Reachability
 Selector painting
 Data prototypes
 Data types
 Function prototypes
 Functions
 Descriptors
Writing ./optimisationcallgraph.o
Linking ./optimisationcallgraph
Warning: environment variable $CC undefined, using cc as the linker

Pony Version
$ ~/opt/pony/bleed/build/release/ponyc --version
0.19.3-bfebd40 [release]
compiled with: llvm 3.9.1 -- cc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609

$ lldb ~/opt/pony/bleed/build/debug/ponyc
(lldb) target create "/home/stewart/opt/pony/bleed/build/debug/ponyc"
Current executable set to '/home/stewart/opt/pony/bleed/build/debug/ponyc' (x86_64).
(lldb) run
Process 22400 launched: '/home/stewart/opt/pony/bleed/build/debug/ponyc' (x86_64)
Building builtin -> /home/stewart/opt/pony/bleed/packages/builtin
Building . -> /home/stewart/opt/pony/bugs/optimisationcallgraph
Generating
 Reachability
 Selector painting
 Data prototypes
 Data types
 Function prototypes
 Functions
 Descriptors
Optimising
Process 22400 stopped
* thread #1: tid = 22400, 0x0000000001175558 ponyc`llvm::Value::getType(this=0x0000000000000000) const + 12 at Value.h:227, name = 'ponyc', stop reason = signal SIGSEGV: invalid address (fault address: 0x8)
    frame #0: 0x0000000001175558 ponyc`llvm::Value::getType(this=0x0000000000000000) const + 12 at Value.h:227
   224    /// @}
   225
   226    /// \brief All values are typed, get the type of this value.
-> 227    Type *getType() const { return VTy; }
   228
   229    /// \brief All values hold a context through their type.
   230    LLVMContext &getContext() const;

I have a very slightly simpler snippet
actor Main

  new create(env: Env) =>
		let lc: Compare = TimeStamps.compare((0,1), TimeStamps.max((0,0), (0,1)))
		let rc: Compare = TimeStamps.compare((0,1), TimeStamps.max((0,1), (0,0)))
		lc == Equal
		rc == Equal

type TimeStamp is (I64, I64)

primitive TimeStamps
	fun compare(lhs: TimeStamp, rhs: TimeStamp): Compare =>
		if lhs._1 == rhs._1 then
			if lhs._2 == rhs._2 then
				Equal
			elseif lhs._2 < rhs._2 then
				Less
			else
				Greater
			end
		elseif lhs._1 < rhs._1 then
			Less
		else
			Greater
		end

	fun max(lhs: TimeStamp, rhs: TimeStamp): this->TimeStamp =>
		match(TimeStamps.compare(lhs,rhs))
		| Less => rhs
		| Greater => lhs
		| Equal => lhs
		end

And from the lldb back trace for ponyc it is clear that at some point a "null" operand is sneaking in to the compiler optimiser. So, LLVM is trying to do a comparison of an instruction with a NULL.
(llvm::Constant) *C2 = <parent is NULL>

(lldb) bt
* thread #1: tid = 23753, 0x0000000001175558 ponyc`llvm::Value::getType(this=0x0000000000000000) const + 12 at Value.h:227, name = 'ponyc', stop reason = signal SIGSEGV: invalid address (fault address: 0x8)
    frame #0: 0x0000000001175558 ponyc`llvm::Value::getType(this=0x0000000000000000) const + 12 at Value.h:227
  * frame #1: 0x00000000031abc57 ponyc`llvm::ConstantExpr::getCompare(Predicate=32, C1=0x00000000058216d0, C2=0x0000000000000000, OnlyIfReduced=false) + 53 at Constants.cpp:1857
    frame #2: 0x0000000002f54740 ponyc`llvm::ConstantFoldCompareInstOperands(Predicate=32, Ops0=0x00000000058216d0, Ops1=0x0000000000000000, DL=0x00000000057fd638, TLI=0x00000000058fdad0) + 1266 at ConstantFolding.cpp:1167
    frame #3: 0x0000000002f53b8d ponyc`llvm::ConstantFoldInstruction(I=0x000000000585ce90, DL=0x00000000057fd638, TLI=0x00000000058fdad0) + 1223 at ConstantFolding.cpp:1018
    frame #4: 0x0000000002b81638 ponyc`::AddReachableCodeToWorklist(BB=0x000000000587a3f0, DL=0x00000000057fd638, Visited=0x00007fffffffd1c0, ICWorklist=0x000000000590aa60, TLI=0x00000000058fdad0) + 660 at InstructionCombining.cpp:3007
    frame #5: 0x0000000002b81cb7 ponyc`::prepareICWorklistFromFunction(F=0x0000000005810c18, DL=0x00000000057fd638, TLI=0x00000000058fdad0, ICWorklist=0x000000000590aa60) + 134 at InstructionCombining.cpp:3095
    frame #6: 0x0000000002b82013 ponyc`::combineInstructionsOverFunction(F=0x0000000005810c18, Worklist=0x000000000590aa60, AA=0x00000000058a69c0, AC=0x00000000058ea460, TLI=0x00000000058fdad0, DT=0x000000000590b340, ExpensiveCombines=true, LI=0x0000000000000000) + 556 at InstructionCombining.cpp:3137
    frame #7: 0x0000000002b8239e ponyc`llvm::InstructionCombiningPass::runOnFunction(this=0x000000000590aa40, F=0x0000000005810c18) + 258 at InstructionCombining.cpp:3198
    frame #8: 0x0000000003281e14 ponyc`llvm::FPPassManager::runOnFunction(this=0x0000000005909050, F=0x0000000005810c18) + 330 at LegacyPassManager.cpp:1526
    frame #9: 0x0000000002f431cf ponyc`(anonymous namespace)::CGPassManager::RunPassOnSCC(this=0x0000000005907b90, P=0x0000000005909050, CurSCC=0x00007fffffffd6f0, CG=0x0000000005868020, CallGraphUpToDate=0x00007fffffffd616, DevirtualizedCall=0x00007fffffffd6da) const + 627 at CallGraphSCCPass.cpp:151
    frame #10: 0x0000000002f44265 ponyc`(anonymous namespace)::CGPassManager::RunAllPassesOnSCC(this=0x0000000005907b90, CurSCC=0x00007fffffffd6f0, CG=0x0000000005868020, DevirtualizedCall=0x00007fffffffd6da) const + 607 at CallGraphSCCPass.cpp:420
    frame #11: 0x0000000002f445a8 ponyc`(anonymous namespace)::CGPassManager::runOnModule(this=0x0000000005907b90, M=0x00000000057fd500) const + 482 at CallGraphSCCPass.cpp:475
    frame #12: 0x0000000003282328 ponyc`(anonymous namespace)::MPPassManager::runOnModule(this=0x00000000058faf20, M=0x00000000057fd500) const + 638 at LegacyPassManager.cpp:1603
    frame #13: 0x0000000003282a3d ponyc`llvm::legacy::PassManagerImpl::run(this=0x00000000058faa40, M=0x00000000057fd500) + 271 at LegacyPassManager.cpp:1706
    frame #14: 0x0000000003282c49 ponyc`llvm::legacy::PassManager::run(this=0x00007fffffffd970, M=0x00000000057fd500) + 39 at LegacyPassManager.cpp:1737
    frame #15: 0x0000000001173739 ponyc`::optimise(c=0x00007fffffffdc60, pony_specific=true) + 1449 at genopt.cc:1355
    frame #16: 0x0000000001173943 ponyc`::genopt(c=0x00007fffffffdc60, pony_specific=true) + 84 at genopt.cc:1367
    frame #17: 0x000000000116ca2a ponyc`genexe(c=0x00007fffffffdc60, program=0x00007ffff68c7d00) + 719 at genexe.c:428
    frame #18: 0x000000000115c7a2 ponyc`codegen(program=0x00007ffff68c7d00, opt=0x00007fffffffe140) + 338 at codegen.c:1036
    frame #19: 0x00000000011545d4 ponyc`generate_passes(program=0x00007ffff68c7d00, options=0x00007fffffffe140) + 53 at pass.c:301
    frame #20: 0x0000000001130755 ponyc`compile_package(path=".", opt=0x00007fffffffe140, print_program_ast=false, print_package_ast=false) + 147 at main.c:259
    frame #21: 0x0000000001130c14 ponyc`main(argc=1, argv=0x00007fffffffe2b8) + 1194 at main.c:400
    frame #22: 0x00007ffff6928830 libc.so.6`__libc_start_main(main=(ponyc`main at main.c:265), argc=1, argv=0x00007fffffffe2b8, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffe2a8) + 240 at libc-start.c:291
    frame #23: 0x0000000001130539 ponyc`_start + 41

For the above, the "constant" types being compared, as seen by the debugger are:
(llvm::ConstantInt) *C1 = {
  llvm::ConstantData = {
    llvm::Constant = {
      llvm::User = {
        llvm::Value = {
          VTy = 0x00000000057fcc60
          UseList = 0x000000000587c7d8
          SubclassID = '\x12'
          HasValueHandle = '\0'
          SubclassOptionalData = '\0'
          SubclassData = 0
          NumUserOperands = 0
          IsUsedByMD = 1
          HasName = 0
          HasHungOffUses = 0
          HasDescriptor = 0
        }
      }
    }
  }
  Val = {
    BitWidth = 64
     = {
      VAL = 0
      pVal = 0x0000000000000000
    }
  }
}
(lldb) frame variable *C2
(llvm::Constant) *C2 = <parent is NULL>

I suspect that your snippet triggers an undefined behaviour in LLVM's passes. Could you try compiling with a version of LLVM with assertions enabled, to see if some trigger?
Also, you can print LLVM values and types in their human-readable IR form by calling dump() on them in the debugger (or LLVMDumpValue/Type in the C API).

OK, I've managed to simplify the code snippet further:
primitive GT
	fun arb(): Bool => true
primitive LT
	fun arb(): Bool => true

type Comp is (LT | GT)

type Tuple is (I32, I32)

actor Main

	new create(env: Env) =>
		let b: Tuple = if select((1,1),(1,1)) is LT then
			(1,0)
		else
			(1,1)
		end
		let c: Comp = select((1,1), b)
		c.arb()

	fun select(lhs: Tuple, rhs: Tuple): Comp =>
		if lhs._1 < rhs._1 then
			LT
		else
			GT
		end

(lldb) p C1->dump()
i32 1

OK, I've tweaked the code further (see below) in order to tease out the constants involved. Unfortunately p C1->dump() doesn't always work, but looking at frame variable *C1 the gives an idea of which values are involved (5).
Interestingly the bug is only triggered when some constants are set to the same value, which is why I needed to reuse 5.
So, (lots of hand waving here, since I really don't know much about how the pony compiler or LLVM in particular work under the hood) I am assuming that the something is going wrong with some form of constant propagation or equivalent. Additionally the rest of the contrived code is probably simply to prevent the compiler from doing constant folding and optimising away the errant code.
(lldb) frame variable *C1
(llvm::ConstantInt) *C1 = {
...
     = {
      VAL = 5
      pVal = 0x0000000000000005
    }
...
}

primitive GT
	fun arb(): Bool => true
primitive LT
	fun arb(): Bool => true

type Comp is (LT | GT)

type Tuple is (I32, I32)

actor Main

	new create(env: Env) =>
		let b: Tuple = if select((5,0),(2,0)) is LT then
			(0,0)
		else
			(0,1)
		end
		let c: Comp = select((5,0), b)
		c.arb()

	fun select(lhs: Tuple, rhs: Tuple): Comp =>
		if lhs._1 < rhs._1 then
			LT
		else
			GT
		end

btw, I was fairly sure that most of the above logs are from a debug build, but I did rebuild ponyc and LLVM to double check and ensure that assertions where enabled.
Alas, no assertions are triggered.
In fact the code the crashes is part of an attempted evaluation of an assertion Constants.cpp:1857 and causing getType() to be called on a null pointer and triggering SIGSEGV:
1857   assert(C1->getType() == C2->getType() && "Op types should be identical!");

I think this is caused by the same LLVM bug that caused https://github.com/ponylang/ponyc/issues/1919. The bug is that constant extractvalue instructions (generated by Pony tuple reads) aren't handled correctly, causing undefined behaviour.
The good news is that this bug has been fixed in LLVM 5. The bad news is that we aren't supporting LLVM 5 yet because of another bug (see #2061).
If you have access to LLVM 5, could you try compiling ponyc with @kulibali's WIP branch for LLVM 5 and see if the crash still happens?

Building against @kulibali's branch I now trigger a different LLVM assertion.
Note, this was building against the latest LLVM code from their git mirror (I see that the RC1 for 5.0.1 is a few days away, and I wasn't sure which commit in the git repo was closest to 5.0.1).
Ponyc Compiler Logs
$ ~/opt/pony/kulibali/build/debug/ponyc
Building builtin -> /home/stewart/opt/pony/kulibali/packages/builtin
Building . -> /home/stewart/work/ecn/projects/work/bin/ecn-work.src
Building collections -> /home/stewart/opt/pony/kulibali/packages/collections
Building ponytest -> /home/stewart/opt/pony/kulibali/packages/ponytest
Building time -> /home/stewart/opt/pony/kulibali/packages/time
Building format -> /home/stewart/opt/pony/kulibali/packages/format
Building json -> /home/stewart/opt/pony/kulibali/packages/json
Building graphs -> /home/stewart/work/ecn/projects/work/bin/ecn-work.src/graphs
Building itertools -> /home/stewart/opt/pony/kulibali/packages/itertools
Building files -> /home/stewart/opt/pony/kulibali/packages/files
Building buffered -> /home/stewart/opt/pony/kulibali/packages/buffered
Building capsicum -> /home/stewart/opt/pony/kulibali/packages/capsicum
Building cli -> /home/stewart/opt/pony/kulibali/packages/cli
Building collections/persistent -> /home/stewart/opt/pony/kulibali/packages/collections/persistent
Building random -> /home/stewart/opt/pony/kulibali/packages/random
Generating
 Reachability
 Selector painting
 Data prototypes
 Data types
 Function prototypes
 Functions
 Descriptors
Optimising
ponyc: /home/stewart/opt/pony/llvm/llvm.src/lib/IR/Value.cpp:402: void llvm::Value::doRAUW(llvm::Value*, bool): Assertion `New->getType() == getType() && "replaceAllUses of value with new value of different type!"' failed.
Stack dump:
0.      Running pass 'Function Pass Manager' on module 'ecn-work.src'.
1.      Running pass 'Move heap allocations to the stack' on function '@_TestWorkItemTupleNest_ref_apply_oo'
Aborted (core dumped)

Ponyc Version
$ ~/opt/pony/kulibali/build/debug/ponyc --version
0.20.0-eeb6d5e [debug]
compiled with: llvm 6.0.0svn -- cc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609

As an aside, when I used @kulibali's version with LLVM 6.0.0svn but turned off ponyc optimisations (i.e. ponyc -d) then when the program ran I bumped into a pony runtime assertion.
This only happened infrequently, and I was only able to reproduce it by rerunning the program in a tight shell loop — presumably a timing issue. Also it only occurred once the program had completed and as terminating. But I thought it was worth noting for reference none the less.
ecn-work.src: src/libponyrt/actor/messageq.c:49: ponyint_messageq_destroy: Assertion `(((uintptr_t)__extension__ ({ __auto_type __atomic_load_ptr = (&q->head); __typeof__ (*__atomic_load_ptr) __atomic_load_tmp; _
_atomic_load (__atomic_load_ptr, &__atomic_load_tmp, (memory_order_relaxed)); __atomic_load_tmp; }) & ~(uintptr_t)1)) == (uintptr_t)tail' failed.
Aborted (core dumped)


Laplace/Gaussian partition selection strategies.

Context
From key definitions (see there for more details):
A partition is a subset of the data corresponding to a given value of the aggregation criterion. Usually we want to aggregate each partition separately. For example, if we count visits to restaurants, the visits for one particular restaurant are a single partition, and the count of visits to that restaurant would be the aggregate for that partition.
A partition key is the aggregation key corresponding to a partition.
Partition selection is a process of identifying the partition keys that are safe to release in the sense that they don’t break the DP guarantees and don’t leak any user information.
Private partition selection is partition selection when partition keys are identified from data.
There are multiple strategies how to do private partition selections. 3 of them are implemented in the Google C++ DP building block library and exposed to Python in PyDP. Those methods are
1.Truncated geometric.
2.Laplace thresholding (which works as if n_privacy_ids + laplace noise > threshould then release).
3.Gaussian thresholding (which works as if n_privacy_ids + laplace noise > threshould then release).
Now in PipelineDP only the first one is used (code).
Different partition selection strategies have own strength and weeknesses, so it makes sense to be able to use all of them.
In-Depth reading:
1.Truncated geometric partition selection.
2.Laplace/Gaussian thresholding.
Goals
Implement possibility to use Laplace/Gaussian thresholding.
Code references:

DPEngine.aggregate is API function that performs DP aggregation, it has an argument AggregateParams with all parameters. We need to add field partition_selection_strategy with options.
Applying partition selection strategy.

I will add laplace_partition_strategy and gaussian_partition_strategy in the DPEngine.aggregate.

Thank you!

Hi, @tohaowu , are you still working on this?
If not, I'd like to work on it, if you don't mind.

No, I'm not. Yes, you can. Thanks
On Wed, Sep 7, 2022 at 3:45 AM Ricardo Carvalho @.***>
wrote:

Hi, @tohaowu https://github.com/tohaowu , are you still working on this?
If not, I'd like to work on it, if you don't mind.
—
Reply to this email directly, view it on GitHub
https://github.com/OpenMined/PipelineDP/issues/281#issuecomment-1239222002,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGC3OWHT7RPGXFKQNXZLVZ3V5BW4DANCNFSM5WIORQZQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

So this issue can be closed too, right @tohaowu ?

Yes


Establish a cleaner process for clang-tidy in CI

Back to the process topic. I noticed when running clang-tidy on multiple files, the tool actually filtered out repeated messages and reported them once only. Running the whole charge of files, however, in a single core will be too long for a CI job.
I will probably either batch/bash or GNUmake/CMake something and handle redundant messages with either a parser of a lexer in some sensible way. Once done, Ill add this to a single CI job.

See also #145

Are you sure about this? Could this be because the tool gives up when there's too much noise / difficulty parsing?
More importantly, could it ever miss something. Remember that the typical use case - once you've eliminated all the initial diagnostics - is that one or two errors is emitted on new code which introduces a new problem. Are you sure the tool would fail in this case?
It's easy to make things more complicated for a small benefit. But unless you're really bringing value, the complexity is almost never worth the burden it brings. Complex code is so much harder to work with.

Are you sure about this?

Hardly sure at all, John. My running of the tool was probably just about as unsophisticated as possible.
I just hammered in this line, adding one more file at a time as soon as the message bulk got small enough to handle the next file(s).
I could put that line in a CI batch immediately.  -I/mnt/c/boost/boost_1_78_0 -DWIDE_INTEGER_HAS_MUL_8_BY_8_UNROLL \
> tidy.txt

Yeah, it's not a trivial task - especially when drowning in messages. Firstly, make sure the config file is valid YAML using an online checker. Then run the checks in parallel to single out an offending .cpp file - it doesn't matter which one. Divide and conqueror: start running the single file and addressing the issues until that one's clean.

Hi @johnmcfarlane I ended up making a little 3-file make system based on old-school GNUmake with pass/fail in CI based on old-school *nix commands. Aside from using legace GNUmake, i think you might actually like some of the ideas in that process, although I'm aware that you've already solved this particular problem for your repos in your own way...

All this is cycling in CI in #160

Note to self: apply similar process for #161.


Remove zendesk

@wallrj this is a blocker for having intercom on fli-docs and flockerhub-docs which already have this change, do you think we can expedite this?

Thanks @ferrantim. Closing in favour of #2945 which merges into the release branch.