From 8bb953446cd3cd724b8f731785fd7fcd57f5eecf Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Tue, 30 Jan 2024 13:56:52 +0100 Subject: [PATCH 01/12] =?UTF-8?q?(de)(pronouns)=20rename=20article=5F*=20t?= =?UTF-8?q?o=20relative=5F*=20as=20this=20is=20the=20dominant=20usage=20on?= =?UTF-8?q?ly=20exception=20is=20in=20the=20example=20sentence=20wher=20?= =?UTF-8?q?=E2=80=9C{'relative=5Fn}=20Einzige=E2=80=9D=20is=20really=20an?= =?UTF-8?q?=20article=20add=20relative=20and=20demonstrative=20to=20die/de?= =?UTF-8?q?nen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locale/de/pronouns/GrammarTables.vue | 10 +++++----- locale/de/pronouns/examples.tsv | 2 +- locale/de/pronouns/morphemes.js | 2 +- locale/de/pronouns/pronouns.tsv | 14 +++++++------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/locale/de/pronouns/GrammarTables.vue b/locale/de/pronouns/GrammarTables.vue index 250214746..99a7a96f7 100644 --- a/locale/de/pronouns/GrammarTables.vue +++ b/locale/de/pronouns/GrammarTables.vue @@ -67,13 +67,13 @@ - + Relativpronomen - - - - + + + + Demonstrativpronomen diff --git a/locale/de/pronouns/examples.tsv b/locale/de/pronouns/examples.tsv index 7417dba1e..89d7208ed 100644 --- a/locale/de/pronouns/examples.tsv +++ b/locale/de/pronouns/examples.tsv @@ -7,5 +7,5 @@ Meine Lieblingsfarbe ist violett, {possessive_f_n} ist gelb. FALSE TRUE Wir freuen uns {pronoun_g}. FALSE TRUE Ich bin {pronoun_d} erst kürzlich begegnet. FALSE FALSE Ich verstehe {pronoun_a} so gut. FALSE FALSE -{'article_n} Einzige, {article_a} ich kenne, {article_d} wir noch einen Gefallen schulden. {'article_n} Einzigen, {article_a} ich kenne, {article_d} wir noch einen Gefallen schulden. FALSE TRUE +{'relative_n} Einzige, {relative_a} ich kenne, {relative_d} wir noch einen Gefallen schulden. {'relative_n} Einzigen, {relative_a} ich kenne, {relative_d} wir noch einen Gefallen schulden. FALSE TRUE {'demonstrative_n} Studierende kennt alle Lösungen {possessive_f_g} Übungsaufgabe. {'demonstrative_n} Studierende kennen alle Lösungen {possessive_f_g} Übungsaufgabe. FALSE TRUE diff --git a/locale/de/pronouns/morphemes.js b/locale/de/pronouns/morphemes.js index b11f9f461..2ac4b8d41 100644 --- a/locale/de/pronouns/morphemes.js +++ b/locale/de/pronouns/morphemes.js @@ -10,7 +10,7 @@ const morphemeGroups = [ morphemeByCase('possessive_f'), morphemeByCase('possessive_m'), morphemeByCase('possessive_n'), - morphemeByCase('article'), + morphemeByCase('relative'), morphemeByCase('demonstrative'), ]; export default morphemeGroups.flatMap((morphemeGroup) => morphemeGroup); diff --git a/locale/de/pronouns/pronouns.tsv b/locale/de/pronouns/pronouns.tsv index d8acf54e1..738d6e37b 100644 --- a/locale/de/pronouns/pronouns.tsv +++ b/locale/de/pronouns/pronouns.tsv @@ -1,12 +1,12 @@ -key description normative pronoun_n pronoun_g pronoun_d pronoun_a possessive_f_n possessive_f_g possessive_f_d possessive_f_a possessive_m_n possessive_m_g possessive_m_d possessive_m_a possessive_n_n possessive_n_g possessive_n_d possessive_n_a article_n article_g article_d article_a demonstrative_n demonstrative_g demonstrative_d demonstrative_a plural pluralHonorific pronounceable history thirdForm smallForm sourcesInfo -er,er/sein,er/ihm Maskulinum TRUE er seiner ihm ihn seine seiner seiner seine sein seines seinem seinen sein seines seinem sein der des dem den dieser dieses diesem diesen FALSE FALSE TRUE -sie,sie/ihr Femininum TRUE sie ihrer ihr sie ihre ihrer ihrer ihre ihr ihres ihrem ihren ihr ihres ihrem ihr die der der die diese dieser dieser diese FALSE FALSE TRUE -es,es/sein,es/ihm Neutrum TRUE es seiner ihm es seine seiner seiner seine sein seines seinem seinen sein seines seinem sein das des dem das dieses dieses diesem dieses FALSE FALSE TRUE -es/ihr Neutrum mit femininen Formen FALSE es ihrer ihr es ihre ihrer ihrer ihre ihr ihres ihrem ihren ihr ihres ihrem ihr das der der das dieses dieser dieser dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch {/sie=feminine} Formen ersetzt werden -es/denen Neutrum mit inflexiven Formen FALSE es derer denen es deren deren deren deren deren deren deren deren deren deren deren deren das des dem das dieses dieses diesem dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei die meisten Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch inflexive Formen ersetzt werden, wie sie auch in {/dey/denen=„dey/denen“} verwendet werden +key description normative pronoun_n pronoun_g pronoun_d pronoun_a possessive_f_n possessive_f_g possessive_f_d possessive_f_a possessive_m_n possessive_m_g possessive_m_d possessive_m_a possessive_n_n possessive_n_g possessive_n_d possessive_n_a relative_n relative_g relative_d relative_a demonstrative_n demonstrative_g demonstrative_d demonstrative_a plural pluralHonorific pronounceable history thirdForm smallForm sourcesInfo +er,er/sein,er/ihm Maskulinum TRUE er seiner ihm ihn seine seiner seiner seine sein seines seinem seinen sein seines seinem sein der dessen dem den dieser dieses diesem diesen FALSE FALSE TRUE +sie,sie/ihr Femininum TRUE sie ihrer ihr sie ihre ihrer ihrer ihre ihr ihres ihrem ihren ihr ihres ihrem ihr die deren der die diese dieser dieser diese FALSE FALSE TRUE +es,es/sein,es/ihm Neutrum TRUE es seiner ihm es seine seiner seiner seine sein seines seinem seinen sein seines seinem sein das dessen dem das dieses dieses diesem dieses FALSE FALSE TRUE +es/ihr Neutrum mit femininen Formen FALSE es ihrer ihr es ihre ihrer ihrer ihre ihr ihres ihrem ihren ihr ihres ihrem ihr das deren der das dieses dieser dieser dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch {/sie=feminine} Formen ersetzt werden +es/denen Neutrum mit inflexiven Formen FALSE es derer denen es deren deren deren deren deren deren deren deren deren deren deren deren das deren dem das dieses dieses diesem dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei die meisten Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch inflexive Formen ersetzt werden, wie sie auch in {/dey/denen=„dey/denen“} verwendet werden dey,dey/denen Neopronomen „dey“ FALSE dey derer denen dey deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen/demm=„demm”} üblich. pronoun_a dey/denen/demm Neopronomen „dey“ FALSE dey derer denen demm deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen=„dey”} üblich. pronoun_a -die,die/denen Neopronomen „die“ FALSE die derer denen die deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE +die,die/denen Neopronomen „die“ FALSE die derer denen die deren deren deren deren deren deren deren deren deren deren deren deren die deren denen die diese dieser dieser diese FALSE FALSE TRUE el,el/em Neopronomen „el“ FALSE el|ɛl emser|ɛmzɐ em|ɛm en|ɛn emse|ɛmzə emser|ɛmzɐ emser|ɛmzɐ emse|ɛmzə ems|ɛmz emses|ɛmzəs emsem|ɛmzəm emsen|ɛmzən ems|ɛmz emses|ɛmzəs emsem|ɛmzəm ems|ɛmz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE em,em/em Neopronomen „em“ FALSE em|ɛm emser|ɛmzɐ em|ɛm em|ɛm ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE en,en/en Neopronomen „en“ FALSE en|ɛn enser|ɛnzɐ en|ɛn en|ɛn ense|ɛnzə enser|ɛnzɐ enser|ɛnzɐ ense|ɛnzə enses|ɛnzəs enses|ɛnzəs ensem|ɛnzəm ensen|ɛnzən ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ens|ɛnz de|deː ders|dɛrz derm|dɛrm de|deː de|deː dersen|dɛrzən derm|dɛrm de|deː FALSE FALSE TRUE Erstellt vom österreichischen LGBTIQA+-Kongress 2018 in St. Pölten From 99904cc5d31966709a0aa6bcf102f1ebe4ec140a Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Tue, 30 Jan 2024 14:45:31 +0100 Subject: [PATCH 02/12] (de)(pronouns) add new pronouns dej/denen gets a short name to be consistent with dey/denen, even though there is only one variant for it die/:plural has a similar syntax to those for a generated pronoun in slash format --- locale/de/pronouns/pronounGroups.tsv | 2 +- locale/de/pronouns/pronouns.tsv | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/locale/de/pronouns/pronounGroups.tsv b/locale/de/pronouns/pronounGroups.tsv index 9609d5d6b..9bf1f8b46 100644 --- a/locale/de/pronouns/pronounGroups.tsv +++ b/locale/de/pronouns/pronounGroups.tsv @@ -1,5 +1,5 @@ key name pronouns description binäre Binäre Pronomen sie,er Es ist wichtig zu betonen, dass Pronomen und Geschlecht unterschiedliche Konzepte sind. Eine Person kann nicht-binär sein und gleichzeitig die Pronomen nutzen, die bei der Geburt zugewiesen wurden – oder aber diesen normativ gegenübergestellt sind. neutrum Neutrum es,es/ihr,es/denen Das Pronomen „es“ ist zwar sehr gebräuchlich im Deutschen, aber nicht im Bezug auf Menschen. Einige wenige Personenwörter wie „Mädchen“, „Individuum“ und „Mitglied“ sind zwar sächlich. Doch viele Deutschsprachige empfinden das Neutrum dennoch als versächlichend und entmündigend, wenn es statt „sie“ oder „er“ für Personen verwendet wird, was manche transfeindliche Personen auch ausnutzen. Daher solltest du vorsichtig sein und dieses Pronomen nur gebrauchen, wenn die entsprechende Person es sich ausdrücklich wünscht. Viele Formen sind im Neutrum identisch mit denen des Maskulinums, daher bevorzugen einige Menschen modifizierte Varianten bei denen diese ausgetauscht werden. -neopronomen Neopronomen dey,dey/denen/demm,die,el,em,en,en/em,et,ey,hän,hen,hie,iks,ind,mensch,nin,oj,per,ser,sier,they,xier,zet,ersie Im Gegensatz zu anderen Pronomen, die offiziell als „grammatikalisch korrekt“ anerkannt werden, sind Neopronomen neu geschaffen. Doch nur weil sie (noch) nicht in offiziellen Wörterbüchern stehen, sind sie noch lange nicht „schlechter“ oder „falsch“! +neopronomen Neopronomen dej,dey,dey/denen/dem,dey/denen/demm,die,die/:plural,el,em,en,en/em,ens,et,ex,ey,hän,hen,hie,iks,ind,mensch,nin,oj,per,ser,sier,they,xier,y,zet,ersie,* Im Gegensatz zu anderen Pronomen, die offiziell als „grammatikalisch korrekt“ anerkannt werden, sind Neopronomen neu geschaffen. Doch nur weil sie (noch) nicht in offiziellen Wörterbüchern stehen, sind sie noch lange nicht „schlechter“ oder „falsch“! sonderzeichen Pronomen mit Sonderzeichen er:sie,er*sie,er_sie Diese Pronomen benutzen Sonderzeichen, die der Trennung der Bestandteile dienen und vor einem Vokal als {https://de.wikipedia.org/wiki/Glottaler_Plosiv=Glottisschlag} ausgesprochen werden. diff --git a/locale/de/pronouns/pronouns.tsv b/locale/de/pronouns/pronouns.tsv index 738d6e37b..6b477f7d2 100644 --- a/locale/de/pronouns/pronouns.tsv +++ b/locale/de/pronouns/pronouns.tsv @@ -4,13 +4,18 @@ sie,sie/ihr Femininum TRUE sie ihrer ihr sie ihre ihrer ihrer ihre ihr ihres ihr es,es/sein,es/ihm Neutrum TRUE es seiner ihm es seine seiner seiner seine sein seines seinem seinen sein seines seinem sein das dessen dem das dieses dieses diesem dieses FALSE FALSE TRUE es/ihr Neutrum mit femininen Formen FALSE es ihrer ihr es ihre ihrer ihrer ihre ihr ihres ihrem ihren ihr ihres ihrem ihr das deren der das dieses dieser dieser dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch {/sie=feminine} Formen ersetzt werden es/denen Neutrum mit inflexiven Formen FALSE es derer denen es deren deren deren deren deren deren deren deren deren deren deren deren das deren dem das dieses dieses diesem dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei die meisten Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch inflexive Formen ersetzt werden, wie sie auch in {/dey/denen=„dey/denen“} verwendet werden -dey,dey/denen Neopronomen „dey“ FALSE dey derer denen dey deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen/demm=„demm”} üblich. pronoun_a -dey/denen/demm Neopronomen „dey“ FALSE dey derer denen demm deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen=„dey”} üblich. pronoun_a -die,die/denen Neopronomen „die“ FALSE die derer denen die deren deren deren deren deren deren deren deren deren deren deren deren die deren denen die diese dieser dieser diese FALSE FALSE TRUE +dej,dej/denen Neopronomen „dej“ FALSE dej|deɪ derer denen dej|deɪ deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Wie {/dey/denen=„dey“}, allerdings mit einer stärker eingedeutschten Schreibweise pronoun_a +dey,dey/denen Neopronomen „dey“ FALSE dey|deɪ derer denen dey|deɪ deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen/demm=„dem”} bzw. {/dey/denen/demm=„demm”} üblich pronoun_a +dey/denen/dem Neopronomen „dey“ FALSE dey|deɪ derer denen dem|dɛm deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen=„dey”} üblich. Wie {/dey/denen/demm=„demm”}, allerdings näher an der englischen Schreibweise pronoun_a +dey/denen/demm Neopronomen „dey“ FALSE dey|deɪ derer denen demm|dɛm deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen=„dey”} üblich. Wie {/dey/denen/dem=„dem”}, allerdings mit einer stärker eingedeutschten Schreibweise pronoun_a +die,die/denen Pronomen „die“ (Singular) FALSE die derer denen die deren deren deren deren deren deren deren deren deren deren deren deren die deren denen die diese dieser dieser diese FALSE FALSE TRUE +die/:plural,die/denen/:plural Pronomen „die“ (Plural) FALSE die derer denen die deren deren deren deren deren deren deren deren deren deren deren deren die deren denen die diese dieser diesen diese TRUE FALSE TRUE el,el/em Neopronomen „el“ FALSE el|ɛl emser|ɛmzɐ em|ɛm en|ɛn emse|ɛmzə emser|ɛmzɐ emser|ɛmzɐ emse|ɛmzə ems|ɛmz emses|ɛmzəs emsem|ɛmzəm emsen|ɛmzən ems|ɛmz emses|ɛmzəs emsem|ɛmzəm ems|ɛmz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE em,em/em Neopronomen „em“ FALSE em|ɛm emser|ɛmzɐ em|ɛm em|ɛm ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE en,en/en Neopronomen „en“ FALSE en|ɛn enser|ɛnzɐ en|ɛn en|ɛn ense|ɛnzə enser|ɛnzɐ enser|ɛnzɐ ense|ɛnzə enses|ɛnzəs enses|ɛnzəs ensem|ɛnzəm ensen|ɛnzən ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ens|ɛnz de|deː ders|dɛrz derm|dɛrm de|deː de|deː dersen|dɛrzən derm|dɛrm de|deː FALSE FALSE TRUE Erstellt vom österreichischen LGBTIQA+-Kongress 2018 in St. Pölten en/em Neopronomen „en“ FALSE en|ɛn enser|ɛnzɐ em|ɛm en|ɛn ense|ɛnzə enser|ɛnzɐ enser|ɛnzɐ ense|ɛnzə ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ensen|ɛnzən ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ens|ɛnz de|deː ders|dɛrz derm|dɛrm de|deː de|deː dersen|dɛrzən derm|dɛrm de|deː FALSE FALSE TRUE Erstellt vom {https://geschlechtsneutral.net/=Verein für geschlechtsneutrales Deutsch} +ens Neopronomen „ens“ FALSE ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz ens|ɛnz dens|dɛnz dens|dɛnz dens|dɛnz dens|dɛnz dens|dɛnz dens|dɛnz dens|dɛnz dens|dɛnz FALSE FALSE TRUE Vorgestellt von Lann Hornscheidt +ex Neopronome „ex“ FALSE ex ex ex ex ex ex ex ex ex ex ex ex ex ex ex ex ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Vorgestellt von {https://www.lannhornscheidt.com/w_ortungen/nonbinare-w_ortungen/=Lann Hornscheidt und Lio Oppenländer}@„ex“ steht für Exit Gender und soll in Abgrenzung zu anderen Formen explizit beschreiben, dass sich eine Person nicht über Gender versteht ey,ey/emm Neopronomen „ey“ FALSE ey eyser emm emm eyse eyser eyser eyse eys eyses eysem eysen eys eyses eysem eys ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE et,et/siem Neopronomen „et“ FALSE et sierer siem sien siere sierer sierer siere sier sieres sierem sieren sier sieres sierem sieren dat diesers diem dien dieset ~ diesigen diesetne FALSE FALSE TRUE hän,hän/sim Neopronomen „hän“ FALSE hän sirer sim sin sire sirer sirer sire sir sires sirem siren sir sires sirem siren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE @@ -24,8 +29,10 @@ oj,oj/juj,oj/ojm Neopronomen „oj“ FALSE oj jujer ojm ojn juje jujer jujer ju per,per/per Neopronomen „per“ FALSE per perer per per pers pers pers pers pers pers pers pers pers pers pers pers ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Vom Wort „Person“ ser,ser/sem Neopronomen „ser“ FALSE ser seser sem sen ses ses ses ses ses ses ses ses ses ses ses ses ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE sier,sier/siem Neopronomen „sier“ FALSE sier|zi:ɐ̯ sieser|zi:sɐ siem|zi:m sien|zi:n siese|zi:zə sieser|zi:zɐ sieser|zi:zɐ siese|zi:zə sies|zi:z sieses|zi:zəs siesem|zi:zəm siesen|zi:zən sies|zi:z sieses|zi:zəs siesem|zi:zəm sies|zi:z dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n FALSE FALSE TRUE Erstellt von {https://www.annaheger.de/pronomen21/=Illi Anna Heger} -they,they/them Äquivalent zu englischem „they“ FALSE they them them them their their their their their their their their their their their their ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Aus dem Englischen, sieh: {https://en.pronouns.page/they=they/them} -xier,xier/xiem Neopronomen „xier“ FALSE xier|ksi:ɐ̯ xieser|ksi:sɐ xiem|ksi:m xien|ksi:n xiese|ksi:zə xieser|ksi:ɐ̯sɐ xieser|ksi:ɐ̯sɐ xiese|ksi:zə xies|ksi:z xieses|ksi:zəs xiesem|ksi:zəm xiesen|ksi:zən xies|ksi:z xieses|ksi:zəs xiesem|ksi:zəm xies|ksi:z dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n FALSE FALSE TRUE Erstellt von {https://www.annaheger.de/pronomen33/=Illi Anna Heger}. +they,they/them Äquivalent zu englischem „they“ FALSE they them them them their their their their their their their their their their their their ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Aus dem Englischen, siehe: {https://en.pronouns.page/they=they/them} +xier,xier/xiem Neopronomen „xier“ FALSE xier|ksi:ɐ̯ xieser|ksi:sɐ xiem|ksi:m xien|ksi:n xiese|ksi:zə xieser|ksi:ɐ̯sɐ xieser|ksi:ɐ̯sɐ xiese|ksi:zə xies|ksi:z xieses|ksi:zəs xiesem|ksi:zəm xiesen|ksi:zən xies|ksi:z xieses|ksi:zəs xiesem|ksi:zəm xies|ksi:z dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n FALSE FALSE TRUE Erstellt von {https://www.annaheger.de/pronomen33/=Illi Anna Heger} +y Neopronomen „Y“ FALSE Y|waɪ Y|waɪ Y|waɪ Y|waɪ Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz Ys|waɪz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Ausgeprochen wie das englische Fragewort „why“ („warum“) +*,stern Neopronomen „*“ (Stern) FALSE *|ʃtɛʁn *|ʃtɛʁn *|ʃtɛʁn *|ʃtɛʁn *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz *s|ʃtɛʁnz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Ausgeprochen wie „Stern“ zet,zet/zerm Neopronomen „zet“ FALSE zet zerner zerm zern zets zets zets zets zets zets zets zets zets zets zets zets ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE er_sie,er_sie/ihm_ihr Neopronomen „er_sie“ FALSE er_sie seiner_ihrer ihm_ihr ihn_sie seine_ihre seiner_ihrer seiner_ihrer seine_ihre sein_ihr seines_ihres seinem_ihrem seinen_ihren sein_ihr seines_ihres seinem_ihrem sein_ihr der_die des_der dem_der den_die diese_r dieses_dieser diesem_dieser diese_n FALSE FALSE FALSE er*sie,er*sie/ihm*ihr Neopronomen „er*sie“ FALSE er*sie seiner*ihrer ihm*ihr ihn*sie seine*ihre seiner*ihrer seiner*ihrer seine*ihre sein*ihr seines*ihres seinem*ihrem seinen*ihren sein*ihr seines*ihres seinem*ihrem sein*ihr der*die des*der dem*der den*die diese*r dieses*dieser diesem*dieser diese*n FALSE FALSE FALSE From 57521cb1464c0c862ccb917f90c4fdc884e00280 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Tue, 30 Jan 2024 15:16:58 +0100 Subject: [PATCH 03/12] (de)(nouns) add new nouns --- locale/de/nouns/NounsExtra.vue | 43 +++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/locale/de/nouns/NounsExtra.vue b/locale/de/nouns/NounsExtra.vue index ab208444a..7b1e3dec1 100644 --- a/locale/de/nouns/NounsExtra.vue +++ b/locale/de/nouns/NounsExtra.vue @@ -24,7 +24,7 @@ -
+
nouns.plural
@@ -135,6 +135,47 @@ export default { A_pl: 'meine besten Lehrerninnen', }), }, + 'ens-Formen': { + info: ` + Formen vorgestellt von Lann Hornscheidt.

+ Siehe auch: {/ens=Neopronomen „ens“}.

+ „ens“ ist dabei dem Mittelteil aus „Mensch“ entnommen. + `, + declension: new NounDeclension({ + N: 'dens Arbeitens', + G: 'dens Arbeitens', + D: 'dens Arbeitens', + A: 'dens Arbeitens', + N_pl: 'die Arbeitense', + G_pl: 'die Arbeitense', + D_pl: 'die Arbeitense', + A_pl: 'die Arbeitense', + }), + extendedDeclension: new NounDeclension({ + N: 'meinens beste Lehrens', + G: 'meinens beste Lehrens', + D: 'meinens beste Lehrens', + A: 'meinens beste Lehrens', + N_pl: 'meine besten Lehrens', + G_pl: 'meiner besten Lehrens', + D_pl: 'meinen besten Lehrens', + A_pl: 'meine besten Lehrens', + }), + }, + 'ex-Formen': { + info: ` + Formen vorgestellt von {https://www.lannhornscheidt.com/w_ortungen/nonbinare-w_ortungen/=Lann Hornscheidt und Lio Oppenländer}.

+ Siehe auch: {/ex=Neopronomen „ex“}.

+ „ex“ steht für Exit Gender und soll in Abgrenzung zu anderen Formen + explizit beschreiben, dass sich eine Person nicht über Gender versteht. + `, + declension: new NounDeclension({ + N: 'Arbeitex', + G: 'Arbeitex', + D: 'Arbeitex', + A: 'Arbeitex', + }), + }, Ojum: { info: ` Formen vorgestellt von {https://www.frumble.de/blog/2021/03/26/ueberlegungen-zu-einer-genderneutralen-deutschen-grammatik=Frumble}.

From 4663a36be7d31c91fd87d6f43d7825c223a40b85 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Tue, 30 Jan 2024 15:43:01 +0100 Subject: [PATCH 04/12] (de)(nouns) reference pronoun for Inklusivum --- locale/de/nouns/NounsExtra.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/locale/de/nouns/NounsExtra.vue b/locale/de/nouns/NounsExtra.vue index 7b1e3dec1..882dcf865 100644 --- a/locale/de/nouns/NounsExtra.vue +++ b/locale/de/nouns/NounsExtra.vue @@ -87,7 +87,10 @@ export default { }), }, Inklusivum: { - info: 'Formen vorgestellt vom {https://geschlechtsneutral.net/=Verein für geschlechtsneutrales Deutsch}.', + info: ` + Formen vorgestellt vom {https://geschlechtsneutral.net/=Verein für geschlechtsneutrales Deutsch}.

+ Siehe auch: {/en/em=Neopronomen „en“}. + `, declension: new NounDeclension({ N: 'de Arbeitere', G: 'ders Arbeiteres', From 7ddf86498f987e5aab6c26c5ef64129c087dfe41 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Tue, 30 Jan 2024 15:26:24 +0100 Subject: [PATCH 05/12] (de)(profile) add column headers --- locale/de/config.suml | 51 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/locale/de/config.suml b/locale/de/config.suml index 001203363..6831f3480 100644 --- a/locale/de/config.suml +++ b/locale/de/config.suml @@ -186,17 +186,52 @@ profile: editorEnabled: true defaultWords: - - header: ~ - values: ['Weibliche Formen', 'Männliche Formen', 'Y-Formen', 'Inklusivum', 'Ojum', 'Person-Formen', 'Doppelpunkt-Formen', 'Unterstrich-Formen', 'Sternchen-Formen', 'Großbuchstabe-Formen'] + header: 'Substantive' + values: + - 'Weibliche Formen' + - 'Männliche Formen' + - 'Y-Formen' + - 'Inklusivum' + - 'Ojum' + - 'Person-Formen' + - 'Doppelpunkt-Formen' + - 'Unterstrich-Formen' + - 'Sternchen-Formen' + - 'Großbuchstabe-Formen' - - header: ~ - values: ['[ohne Anrede]', 'Herr', 'Frau', 'Fräulein', 'Dame', 'Ind.', 'Bruder', 'Schwester', 'Geschwisterchen', 'Mann', 'Frau', 'Person'] + header: 'Anrede' + values: + - '[ohne Anrede]' + - 'Herr' + - 'Frau' + - 'Fräulein' + - 'Dame' + - 'Ind.' + - 'Bruder' + - 'Schwester' + - 'Geschwisterchen' + - 'Mann' + - 'Frau' + - 'Person' - - header: ~ - values: ['schön', 'süß', 'sexy', 'hübsch', 'attraktiv'] + header: 'Komplimente' + values: + - 'schön' + - 'süß' + - 'sexy' + - 'hübsch' + - 'attraktiv' - - header: ~ - values: ['Freund', 'Freundin', 'Liebling', 'Schatz', 'Geliebte/r', 'Liebschaft', 'Süße/r', 'Partner/in'] + header: 'Beziehungsbezeichnungen' + values: + - 'Freund' + - 'Freundin' + - 'Liebling' + - 'Schatz' + - 'Geliebte/r' + - 'Liebschaft' + - 'Süße/r' + - 'Partner/in' flags: defaultPronoun: 'er' From ac862344c37e9880d793dc8c95611998805441eb Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Tue, 30 Jan 2024 15:29:59 +0100 Subject: [PATCH 06/12] (de)(profile) add new nouns to default words --- locale/de/config.suml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/locale/de/config.suml b/locale/de/config.suml index 6831f3480..9efbb8002 100644 --- a/locale/de/config.suml +++ b/locale/de/config.suml @@ -192,6 +192,9 @@ profile: - 'Männliche Formen' - 'Y-Formen' - 'Inklusivum' + - 'Indefinitivum' + - 'ens-Formen' + - 'ex-Formen' - 'Ojum' - 'Person-Formen' - 'Doppelpunkt-Formen' From b1a7876fa7d06fa56a6401daf16227a17b64fdda Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Thu, 8 Feb 2024 10:43:56 +0100 Subject: [PATCH 07/12] (de)(pronouns) regroup pronouns to not overhelm visitors die/denen is removed from the neopronoun category, because it is not a neopronoun in the sense that it contains new words --- locale/de/pronouns/pronounGroups.tsv | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/locale/de/pronouns/pronounGroups.tsv b/locale/de/pronouns/pronounGroups.tsv index 9bf1f8b46..2042dcb7d 100644 --- a/locale/de/pronouns/pronounGroups.tsv +++ b/locale/de/pronouns/pronounGroups.tsv @@ -1,5 +1,8 @@ key name pronouns description binäre Binäre Pronomen sie,er Es ist wichtig zu betonen, dass Pronomen und Geschlecht unterschiedliche Konzepte sind. Eine Person kann nicht-binär sein und gleichzeitig die Pronomen nutzen, die bei der Geburt zugewiesen wurden – oder aber diesen normativ gegenübergestellt sind. neutrum Neutrum es,es/ihr,es/denen Das Pronomen „es“ ist zwar sehr gebräuchlich im Deutschen, aber nicht im Bezug auf Menschen. Einige wenige Personenwörter wie „Mädchen“, „Individuum“ und „Mitglied“ sind zwar sächlich. Doch viele Deutschsprachige empfinden das Neutrum dennoch als versächlichend und entmündigend, wenn es statt „sie“ oder „er“ für Personen verwendet wird, was manche transfeindliche Personen auch ausnutzen. Daher solltest du vorsichtig sein und dieses Pronomen nur gebrauchen, wenn die entsprechende Person es sich ausdrücklich wünscht. Viele Formen sind im Neutrum identisch mit denen des Maskulinums, daher bevorzugen einige Menschen modifizierte Varianten bei denen diese ausgetauscht werden. -neopronomen Neopronomen dej,dey,dey/denen/dem,dey/denen/demm,die,die/:plural,el,em,en,en/em,ens,et,ex,ey,hän,hen,hie,iks,ind,mensch,nin,oj,per,ser,sier,they,xier,y,zet,ersie,* Im Gegensatz zu anderen Pronomen, die offiziell als „grammatikalisch korrekt“ anerkannt werden, sind Neopronomen neu geschaffen. Doch nur weil sie (noch) nicht in offiziellen Wörterbüchern stehen, sind sie noch lange nicht „schlechter“ oder „falsch“! + Pronomen entlehnt aus dem Plural die,die/:plural Durch Kombination von normativen Pronomen aus dem Plural lassen sich diese auch auf eine einzelne Person beziehen. +neopronomen Neopronomen ähnlich zu englischem „they“ dej,dey,dey/denen/dem,dey/denen/demm,ey,they Durch die Popularität von {https://en.pronouns.page/they=they/them} gibt es einige Vorschläge diese direkt oder mit Anpassungen auch als deutsche Pronomen zu verwenden. +neopronomen Neopronomen mit neuem Stamm el,em,en,en/em,ens,et,ex,hän,hen,hie,iks,ind,mensch,nin,oj,per,ser,y,zet,* Im Gegensatz zu anderen Pronomen, die offiziell als „grammatikalisch korrekt“ anerkannt werden, sind Neopronomen neu geschaffen. Doch nur weil sie (noch) nicht in offiziellen Wörterbüchern stehen, sind sie noch lange nicht „schlechter“ oder „falsch“! +neopronomen Neopronomen durch Verschmelzung sier,xier,ersie Diese Neopronomen entstehen durch Verschmelzung der binären Pronomen, sodass diese als ein Wort ausgesprochen werden. sonderzeichen Pronomen mit Sonderzeichen er:sie,er*sie,er_sie Diese Pronomen benutzen Sonderzeichen, die der Trennung der Bestandteile dienen und vor einem Vokal als {https://de.wikipedia.org/wiki/Glottaler_Plosiv=Glottisschlag} ausgesprochen werden. From c23873da43929679c9c958212e950070a339ed4e Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Sat, 3 Feb 2024 22:09:36 +0100 Subject: [PATCH 08/12] (ide) add default configuration for JetBrains IDEs --- .gitignore | 5 ++++- .idea/jsLinters/eslint.xml | 7 +++++++ .../runConfigurations/jest-all-tests.run.xml | 11 ++++++++++ .idea/vcs.xml | 20 +++++++++++++++++++ README.md | 16 ++++++++++++--- 5 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 .idea/jsLinters/eslint.xml create mode 100644 .idea/runConfigurations/jest-all-tests.run.xml create mode 100644 .idea/vcs.xml diff --git a/.gitignore b/.gitignore index c69c9168e..c3c199a10 100644 --- a/.gitignore +++ b/.gitignore @@ -106,7 +106,10 @@ dist .serverless # IDE / Editor -.idea +.idea/* +!.idea/jsLinters +!.idea/runConfigurations +!.idea/vcs.xml # Service worker sw.* diff --git a/.idea/jsLinters/eslint.xml b/.idea/jsLinters/eslint.xml new file mode 100644 index 000000000..67738fad0 --- /dev/null +++ b/.idea/jsLinters/eslint.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/jest-all-tests.run.xml b/.idea/runConfigurations/jest-all-tests.run.xml new file mode 100644 index 000000000..359b0b181 --- /dev/null +++ b/.idea/runConfigurations/jest-all-tests.run.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..f183d1548 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 6c7b4950e..272b8af68 100644 --- a/README.md +++ b/README.md @@ -77,12 +77,22 @@ SECRET=replaceThis ### Editor -Some libraries like Vue recommend using Visual Studio Code as editor. -There are some recommended extensions in `.vscode/extensions.json` to help with development. +#### Visual Studio Code +Recommended extensions are provided in `.vscode/extensions.json` +and Visual Studio Code will ask for your permission to install them upon project open. +`.vscode/settings.json` already includes settings to integrate with tooling. + +#### JetBrains IDE (WebStorm, PhpStorm, …) +Most of the tooling is already shipped with a JetBrains IDE. +`.idea` already contains some settings to integrate with the tooling. +If you want syntax highlighting for `.suml` files, you need to manually bind them to `yaml` syntax +via `Settings › Editor › File Types`. + +#### Others When you want to use a different editor, you may need to configure some points to reduce manual work: - Integrating ESLint with auto-fixing on save (the formatting relies on it) -- Integration Jest to easily view test results +- Integrating Jest to easily view test results - Use `yaml` syntax highlighting for `.suml` files ### Tools From bdf8724169d9f44211633985263190152d382d78 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Sat, 3 Feb 2024 22:47:03 +0100 Subject: [PATCH 09/12] (doc) add items to review checklist --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 272b8af68..df3c74304 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,18 @@ A non-comprehensive list of things to look out during development and review: - Be consistent with the design guidelines (at `/design`) - Check frontend in both dark and light mode - Check that changes work in a differently configured locale (especially for optionally configurable features) -- Add new translations to `_base/translations.suml` and if applicable to `expectedTranslations.js` +- Add new translations to `_base/translations.suml` and if applicable add a condition to `missingTranslations.js` +- Consider backwards-compatibility (e.g. links to pronouns in their profile or mail signature shouldn’t break) +- If you changed code related to those scripts, check that they keep running: + - `server/calendar.js` + - `server/calendarBot.js` (with arguments `en,pl,es,pt,de,nl,fr,ja,ru,sv,lad,ua,vi twitter,mastodon`) + - `server/cleanupImages.js` + - `server/cleanupAccounts.js` + - `server/miastamaszerujace.js` (pl locale only) + - `server/migrate.js` + - `server/notify.js` + - `server/stats.js` + - `server/subscriptions.js` ### Integrations From af2918562a1095cb046bc08b230705e27b1d2559 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Sat, 3 Feb 2024 23:03:03 +0100 Subject: [PATCH 10/12] (ci) add smoke tests for server scripts --- .gitlab-ci.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f284d2808..3783fbff5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -53,3 +53,25 @@ unit-tests: coverage_report: coverage_format: cobertura path: coverage/cobertura-coverage.xml + +server-scripts-smoke-test: + stage: test + script: + - echo -e "\e[0Ksection_start:`date +%s`:prepare_dependencies\r\e[0KPrepare Dependencies" + - 'sed -i ''s/git+ssh:\/\/git@gitlab.com:Avris\/FontAwesomePro.git/git+https:\/\/git@gitlab.com\/Avris\/FakeFontAwesomePro.git/'' package.json' + - echo -e "\e[0Ksection_end:`date +%s`:prepare_dependencies\r\e[0K" + + - make switch LANG=en + + - echo -e "\e[0Ksection_start:`date +%s`:install_dependencies\r\e[0KInstall Dependencies" + - yarn install --immutable --immutable-cache --check-cache --cache-folder .yarn + - echo -e "\e[0Ksection_end:`date +%s`:install_dependencies\r\e[0K" + + # calls scripts to check for simple issues while disabling actual work (e.g. no publishing to third party) + # some scripts are left out because they need special configuration and are not safe to smoke test + - node server/calendarBot.js en,pl,es,pt,de,nl,fr,ja,ru,sv,lad,ua,vi "" + - node server/cleanupAccounts.js + - node server/migrate.js + - node server/notify.js + - node server/stats.js + - node server/subscriptions.js From 87fa99a8d541e6b1473b72fe075f293176b91db0 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Thu, 8 Feb 2024 21:52:47 +0100 Subject: [PATCH 11/12] (ci) put all checks into a single job a large time is spend on install dependencies and even a (working) cache does not help much to reduce times as we will be using a single executor in mid-term perspective, this would be the fastest approach the CI dependencies are now included into package.json and yarn.lock to enable the check --frozen-lockfile --- .gitlab-ci.yml | 122 ++++++++++++++++++++++++------------------------- package.json | 2 + yarn.lock | 23 ++++++++++ 3 files changed, 84 insertions(+), 63 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3783fbff5..e992a2c6e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,51 +1,68 @@ -image: node:latest - -lint: +check: stage: test + image: node:latest + before_script: + - export NODE_ENV=development + - > + start_section () { + current_section=$1; + echo -e "\e[0Ksection_start:`date +%s`:${current_section//[^a-zA-Z0-9]/-}\r\e[0K$current_section"; + }; + end_section () { + echo -e "\e[0Ksection_end:`date +%s`:${current_section//[^a-zA-Z0-9]/-}\r\e[0K"; + }; + failures=(); + record_failure () { + exit_code=$?; + name=${1:-$current_section}; + echo -e "\033[0;31m$name failed with exit code $exit_code\033[0m"; failures+=("$name"); + }; script: - - set -o pipefail - - - echo -e "\e[0Ksection_start:`date +%s`:prepare_dependencies\r\e[0KPrepare Dependencies" - - 'sed -i ''s/git+ssh:\/\/git@gitlab.com:Avris\/FontAwesomePro.git/git+https:\/\/git@gitlab.com\/Avris\/FakeFontAwesomePro.git/'' package.json' - - 'sed -i ''/"devDependencies"/a "eslint-formatter-gitlab": "*",'' package.json' - - echo -e "\e[0Ksection_end:`date +%s`:prepare_dependencies\r\e[0K" - - - make switch LANG=en - - - echo -e "\e[0Ksection_start:`date +%s`:install_dependencies\r\e[0KInstall Dependencies" - - yarn install --immutable --immutable-cache --check-cache --cache-folder .yarn - - echo -e "\e[0Ksection_end:`date +%s`:install_dependencies\r\e[0K" - - - echo -e "\e[0Ksection_start:`date +%s`:reset_dependencies\r\e[0KReset Dependencies" + - start_section "Install Dependencies" + # temporarily replace FontAwesomePro dependency with its fake version as the CI can’t access it + # the name needs to be changed in both package.json and yarn.lock + - 'sed -i "s/git+ssh:\/\/git@gitlab.com:Avris\/FontAwesomePro.git/git+https:\/\/gitlab.com\/Avris\/FakeFontAwesomePro.git/" package.json yarn.lock' + # the referenced SHA needs to be additionally changed in yarn.lock + - 'sed -i "s/f00db606f659dca78b143b7bcab5671b2cb459a8/0d322c775cbe9bf99da261700be30251291b51a8/" yarn.lock' + - yarn install --frozen-lockfile || record_failure - git restore package.json yarn.lock - - echo -e "\e[0Ksection_end:`date +%s`:reset_dependencies\r\e[0K" - - - echo -e "\e[0Ksection_start:`date +%s`:check_lints\r\e[0KCheck linting rules" - - yarn lint --format gitlab --color --fix --quiet - - echo -e "\e[0Ksection_end:`date +%s`:check_lints\r\e[0K" - - - echo -e "\e[0Ksection_start:`date +%s`:check_fixable\r\e[0KCheck for fixable problems" - - git diff --stat --exit-code - - echo -e "\e[0Ksection_end:`date +%s`:check_fixable\r\e[0K" - artifacts: - reports: - codequality: gl-codequality.json - -unit-tests: - stage: test - script: - - echo -e "\e[0Ksection_start:`date +%s`:prepare_dependencies\r\e[0KPrepare Dependencies" - - 'sed -i ''s/git+ssh:\/\/git@gitlab.com:Avris\/FontAwesomePro.git/git+https:\/\/git@gitlab.com\/Avris\/FakeFontAwesomePro.git/'' package.json' - - 'sed -i ''/"devDependencies"/a "jest-junit": "*",'' package.json' - - echo -e "\e[0Ksection_end:`date +%s`:prepare_dependencies\r\e[0K" + - end_section - make switch LANG=en - - echo -e "\e[0Ksection_start:`date +%s`:install_dependencies\r\e[0KInstall Dependencies" - - yarn install --immutable --immutable-cache --check-cache --cache-folder .yarn - - echo -e "\e[0Ksection_end:`date +%s`:install_dependencies\r\e[0K" + - start_section "Unit Tests" + - > + yarn test --ci --reporters=default --reporters=jest-junit + --coverage --collect-coverage-from="./{plugins,server,src,store}/**" + --coverage-reporters=text --coverage-reporters=cobertura || record_failure + - end_section - - yarn test --ci --reporters=default --reporters=jest-junit --coverage --collect-coverage-from="./{plugins,server,src,store}/**" --coverage-reporters=text --coverage-reporters=cobertura + - start_section "Check linting rules" + - yarn lint --format gitlab --color --fix --quiet || record_failure + - end_section + + - start_section "Check for fixable problems" + - git diff --stat --exit-code || record_failure + - end_section + + # calls scripts to check for simple issues while disabling actual work (e.g. no publishing to third party) + # some scripts are left out because they need special configuration or are not safe to smoke test + - start_section "Smoke test server scripts" + - node server/migrate.js || record_failure "Smoke test migrate" + - node server/calendarBot.js en,pl,es,pt,de,nl,fr,ja,ru,sv,lad,ua,vi "" || record_failure "Smoke test calendarBot" + - node server/cleanupAccounts.js || record_failure "Smoke test cleanupAccounts" + - node server/notify.js || record_failure "Smoke test notify" + - node server/stats.js || record_failure "Smoke test stats" + - node server/subscriptions.js || record_failure "Smoke test subscriptions" + - end_section + + - > + if [[ ${failures[@]} ]]; then + echo -e "\033[0;31mSome checks have failed:"; + printf -- "- %s\n" "${failures[@]}"; + echo -en "\033[0m"; + false; + fi coverage: /All files[^|]*\|[^|]*\s+([\d\.]+)/ artifacts: reports: @@ -53,25 +70,4 @@ unit-tests: coverage_report: coverage_format: cobertura path: coverage/cobertura-coverage.xml - -server-scripts-smoke-test: - stage: test - script: - - echo -e "\e[0Ksection_start:`date +%s`:prepare_dependencies\r\e[0KPrepare Dependencies" - - 'sed -i ''s/git+ssh:\/\/git@gitlab.com:Avris\/FontAwesomePro.git/git+https:\/\/git@gitlab.com\/Avris\/FakeFontAwesomePro.git/'' package.json' - - echo -e "\e[0Ksection_end:`date +%s`:prepare_dependencies\r\e[0K" - - - make switch LANG=en - - - echo -e "\e[0Ksection_start:`date +%s`:install_dependencies\r\e[0KInstall Dependencies" - - yarn install --immutable --immutable-cache --check-cache --cache-folder .yarn - - echo -e "\e[0Ksection_end:`date +%s`:install_dependencies\r\e[0K" - - # calls scripts to check for simple issues while disabling actual work (e.g. no publishing to third party) - # some scripts are left out because they need special configuration and are not safe to smoke test - - node server/calendarBot.js en,pl,es,pt,de,nl,fr,ja,ru,sv,lad,ua,vi "" - - node server/cleanupAccounts.js - - node server/migrate.js - - node server/notify.js - - node server/stats.js - - node server/subscriptions.js + codequality: gl-codequality.json diff --git a/package.json b/package.json index 24eb82e06..e3f2a7994 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "css-loader": "^5.2.7", "csv-loader": "^3.0.3", "eslint": "^8.55.0", + "eslint-formatter-gitlab": "^5.1.0", "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-vue": "^9.19.2", @@ -95,6 +96,7 @@ "globals": "^13.24.0", "html-loader": "^1.3.2", "jest": "^29.7.0", + "jest-junit": "^16.0.0", "markdown-loader": "^6.0.0", "postcss": "^8.2.15", "postcss-import": "^13.0.0", diff --git a/yarn.lock b/yarn.lock index c02116e98..9029a4c87 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5578,6 +5578,14 @@ eslint-compat-utils@^0.1.1, eslint-compat-utils@^0.1.2: resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz#f45e3b5ced4c746c127cf724fb074cd4e730d653" integrity sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg== +eslint-formatter-gitlab@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-formatter-gitlab/-/eslint-formatter-gitlab-5.1.0.tgz#33162a17eefba5a44a257af568511d360212e866" + integrity sha512-IxhrjLYzDlbFgPWEnvZlWLwPjMeyymbyo0hDHWntZ3DSAP9AP9huj15KbU+BK3OqeO3OHhbFEh2TA6sR0KZhkA== + dependencies: + chalk "^4.0.0" + yaml "^2.0.0" + eslint-import-resolver-node@^0.3.9: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" @@ -7897,6 +7905,16 @@ jest-haste-map@^29.7.0: optionalDependencies: fsevents "^2.3.2" +jest-junit@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785" + integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ== + dependencies: + mkdirp "^1.0.4" + strip-ansi "^6.0.1" + uuid "^8.3.2" + xml "^1.0.1" + jest-leak-detector@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" @@ -13841,6 +13859,11 @@ xml2js@0.5.0: sax ">=0.6.0" xmlbuilder "~11.0.0" +xml@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" + integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw== + xmlbuilder@~11.0.0: version "11.0.1" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" From a4bf87a30be2a5a30916fa31a8aec4a9c0cf1269 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Thu, 8 Feb 2024 22:31:25 +0100 Subject: [PATCH 12/12] (ci) replace --quiet with a grep excluding warings for lint --quiet also disables fixing of warnings, making it not possible to check for them see 248c7e7a4e3562fe3696956f15be83a79eac0d42 --- .gitlab-ci.yml | 3 ++- routes/profile.vue | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e992a2c6e..68b777da5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ check: stage: test image: node:latest before_script: + - set -o pipefail - export NODE_ENV=development - > start_section () { @@ -38,7 +39,7 @@ check: - end_section - start_section "Check linting rules" - - yarn lint --format gitlab --color --fix --quiet || record_failure + - yarn lint --format gitlab --color --fix | grep -v "^\S*warn" || record_failure - end_section - start_section "Check for fixable problems" diff --git a/routes/profile.vue b/routes/profile.vue index 35ce33234..9010252f0 100644 --- a/routes/profile.vue +++ b/routes/profile.vue @@ -369,11 +369,11 @@ export default { } } else { const customOpinion = profile.opinions[opinion]; - if (customOpinion !== undefined - && customOpinion.colour !== 'grey' - && customOpinion.style !== 'small' - && !['ban', 'slash'].includes(customOpinion.icon) - && !(customOpinion.icon || '').endsWith('-slash') + if (customOpinion !== undefined && + customOpinion.colour !== 'grey' && + customOpinion.style !== 'small' && + !['ban', 'slash'].includes(customOpinion.icon) && + !(customOpinion.icon || '').endsWith('-slash') ) { best.push(pronoun); }