revuloj / voko-afido Goto Github PK
View Code? Open in Web Editor NEWLa akceptilo de la redaktoservo de Reta Vortaro baziĝanta sur Perlo kc
La akceptilo de la redaktoservo de Reta Vortaro baziĝanta sur Perlo kc
trakt
, se antaŭ la forsendo de rezultoj okazas grava eraro, ekz. git push
ne funkcias. Havante daton de lasta stato-ŝanĝo ni povus inkluzivi ekze. "trakt" post paso de 2h (alternative remeti al 'nov' aŭ regule kontroli postrestintajn artikolojn)Se preni la liston de redaktantoj fiaskas, ĝi enhavas 404 anstataŭ redaktantojn. Poste redaktoj rifuziĝas. Ĝuste estas interrompi la procedon kun eraromesaĝo kaj trakti la retpoŝtojn post kiam la listo denove estas en ordo... Do kontrolu la enhavon antaŭ procedi aŭ uzu "exitcode" aŭ HTTP-respondo de curl... (opcio -f, --fail)
Ni havis konflikton en retpoŝta traktado (processmail.pl) fine de Aŭgusto.
En la protokoldosiero pli frue aperis "sintakseraro" (eble nerilata?)
------------------------------
sh: 1: Syntax error: end of file unexpected
En la koncerna tago:
TIME: Sa 21. Aug 16:10:02 CEST 2021
------------------------------
/usr/bin/git pull
git-out:
automatischer Merge von revo/konser.xml
KONFLIKT (Inhalt): Merge-Konflikt in revo/konser.xml
Automatischer Merge fehlgeschlagen; beheben Sie die Konflikte und committen Sie dann das Ergebnis.
git-err:
Von github.com:revuloj/revo-fonto
b5d716241d..204ce706bd master -> origin/master
------------------------------
/usr/bin/rsync -rv /home/revo/dict/revo-fonto/revo/ /home/revo/dict/xml/
...
--------------------------------------------------
From : "Revo redaktu.pl pok...." <[email protected]>
Reply-To: pok...
artikolo: $Id: cxeval.xml,v 1.156 2021/07/29 06:39:06 revo Exp $
shanghoj: +~isto, +~estro
------------------------------
/usr/bin/git add revo/cxeval.xml
------------------------------
------------------------------
/usr/bin/git commit -F /home/revo/tmp/shanghoj.msg
git-out:
U revo/konser.xml
git-err:
error: Committen ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben.
Hinweis: Korrigieren Sie dies im Arbeitsverzeichnis, und benutzen Sie
Hinweis: dann 'git add/rm <Datei>', um die Auflösung entsprechend zu markieren
Hinweis: und zu committen.
fatal: Wird wegen eines unaufgelösten Konfliktes beendet.
------------------------------
ERARO : Eraro dum arkivado de la nova artikolversio:
U revo/konser.xml
En postaj aperas:
/usr/bin/git pull
git-err:
error: Pullen ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben.
Hinweis: Korrigieren Sie dies im Arbeitsverzeichnis, und benutzen Sie
Hinweis: dann 'git add/rm <Datei>', um die Auflösung entsprechend zu markieren
Hinweis: und zu committen.
fatal: Wird wegen eines unaufgelösten Konfliktes beendet.
Ni devos pli frue rimarki tian konfliktonkaj se eble evititi tute...
Kiel rimarki? Eble git diff --check / git status
en la fino de traktado?
Ni ĝis nun sendis ĉiutage resumon kaj ĉiumonate ni purigis dosierojn en la redaktoservo. Ĉar nun ni ne plu uzas Ant por la retpoŝta akcepto, necesus ŝel-skriptoj aŭ simile por fari tion:
target="srv-resumo"
target="srv-purigu"
La resumo serĉis i.a. pri BUILD: FAILED en la Ant-raporto. Ni do bezonas alian manieron konstati malsukceson / problemon en la redaktoservo.
Noto 12/2019: Paralela konservado en Git (revo-fonto) jam estas realigita kaj teste ruliĝas. Necesos poste fari ankoraŭ:
Ĝis nun artikol-historioj estas deponitaj per CVS, kio havas kelkajn malavantaĝojn:
Krome uzante Git mi esperas, ke ni povos iom post iom forigi la bezonon sendi redaktojn per retpoŝto. Anstataŭe la redaktilo povus ekz. rekte sekurigi al github.com. Tiel ni havus ankaŭ ĉiam publike alireblan historion de artikoloj tie.
farita: Unua paŝo estus aldoni konservadon al Git-deponejo en processmail.pl - CVS verŝajne plu necesas tiom longe, kiel la publika Revo-servo uzas precipe Perlo, kiel programlingvo.
Solvenda problemo: la komparo, ĉu redakto baziĝas sur la aktuala versio, momente funkcias per aŭtomate flegata versio en argumento
Se tio estas realigita, sekva paŝo povos esti traktado de novaj redaktoj rekte el Git- anstataŭ CVS-deponejo. (vd. ĉe voko-formiko)
La eraro jam estas en la malnova adaptita skripto en SVN:
Normale post ĉiu kuro kun traktita poŝto devus aperi:
shovas /home/revo/revotmp/mail al /home/revo/revolog/oldmail/20210204_175828
shovas /home/revo/revotmp/mailsend al /home/revo/revolog/20210204_175828
sed foje aperas nur
shovas /home/revo/revotmp/mail al /home/revo/revolog/oldmail/20210204_190439
Se estas steleto en la ŝanĝpriskribo ni ricevas versikonflikton (gists...):
ekz-e: kamizo | ⚠ | 2021-10-26 05:20 | +trd*, etendis rim
La redakto tamen traktiĝas.
Momente la retpoŝta traktado estas plenfunkcia, sed riskas malsinkroniĝi kaj obstrukciĝi pro la fina "git push" - konkurence al la traktado ĉe Github.
Ebleco por simpligi estus ne puŝi la redaktojn rekte al Git, sed al gists.github.com - tiam ili traktiĝus kune kun la aliaj.
La tradicia akceptilo de la redaktoservo (processmail.pl) akceptas redaktojn kiel MIME-koditaj retpoŝtoj. Se ni ŝanĝos la procedon uzante Github-giston, necesos reverki la akceptilon. Ĝi devas plenumi pli malpli la sekvajn taskojn:
La tradicia akceptilo estas verkita en Perlo. Ni povus konsideri uzi pli aktualan programlingvon kiel Javoskripto aŭ eĉ simplan bash-skripton, se ni celas tre malgrandan procesumon.
Ni ankoraŭ devas konsideri, kiel sendi la rezultojn al la redaktantoj. Ni plu bezonas retpoŝtilon por tio, sed sufiĉus sendi per SMTP - do ne necesas loka sendmail-proceso. Alternativoj estus ie afisi la rezultojn, ekz. ankaŭ kiel Gisto aŭ en revuloj.groups.io...? Sed ĉi lasta eble estas nesufiĉe privata, speciale ĉe eraroj.
La sendado de rezultoj povas esti apartigita de la akceptado, se ni unue skribas ĉiujn rezultojn de la traktado en protokolon.
La tradicia vojo, sendi redaktojn per retpoŝto estas pripensinda, precipe ĉar:
Post iom da pripensado kaj esploro la uzo de Github-gisto ŝajnas avantaĝa:
Krom la XML-dosiero ni bezonas:
Gisto havas priskribon por la unua, sed la duan prefere ni aldonu en aparta dosiereto, en formato JSON kune kun sigelo. La sigelon ni kalkulu laŭ algoritmo HMAC kun SHA256 el la XML+registrita retpoŝtadreso. Por tio ni krome bezonas sekretan ŝlosilon (sigelilon), kiun devas koni kaj la redaktilo por sigeli kaj la programo akceptanta redaktojn por kontroli la sigelon.
Por simplaj riparoj ni akceptu ankaŭ nesigelitajn gistojn de administranto, kiuj ricevas indikon de redaktanto "revo" - kiel jam okazis ĝis nun ĉe riparigaj redaktoj rekte sur la servilo.
Plu la malnova redaktilo funkcias per retpoŝto. Oni povus aŭ same adapti ĝin al afiŝado aŭ akcepti retpoŝtojn kaj afiŝi ĉe gist.github.com kaj poste trakti laŭ la nova metodo, aŭ komplete paralele trakti retpoŝtojn kaj afiŝojn.
Aktuale la paralela traktado de retpoŝtoj ŝajnas preferinda:
Sed ni devos certigi, ke ĉe erara raktado retpoŝto ne perdiĝu. Estas du eblecoj:
Cetere anstataŭ fetchmail, kiu postulas lokan SMTP-servilon(?) kaj poŝtfakon, oni povas legi kaj forigi mesaĝojn, eĉ forsendi ankaŭ per curl (https://everything.curl.dev/usingcurl/uploads) - ni elprovu tion por simpligi la necesan isntalaĵon en Afido.
Nova artikolo ankoraŭ ekhavas eraron en processmail.pl:
Ambaŭ devus bone enmetiĝi per process::init_ver
Necesas analizi kial tio ne funkcias.
Aktualigante al Ubunto 20.04 ni ricevas eraron kiam ni skribas la traktrezulgon al gists.github.com per la Api:
DATA:
{
"files": {
"eraro.json": {
"content": "{\"senddato\":\"2023-05-30T19:53:25Z\",\"dosiero\":\"/home/afido/dict/xml/313328a41723037825ba3f05e71c2047.xml\",\"rezulto\":\"eraro\",\"artikolo\":\"$Id: konven.xml,v 1.100 2022/11/13 23:33:38 revo Exp $\",\"mesagho\":\"La de vi sendita artikolo||ne baziĝas sur la aktuala arkiva versio||($Id: konven.xml,v 1.101 2023/05/30 20:24:03 revo Exp $)||Bonvolu preni aktualan version el la TTT-ejo. (http://www.reta-vortaro.de/cgi-bin/vokomail.pl?art=konven)\",\"shangho\":\"+~igi\"}"
}
}
}
parse error: Invalid numeric literal at line 1, column 51
Eble estas pro la dolar-signoj aŭ io alia, sed kial la ŝanĝo de Ubunto aperaigas tiun problemon? Io en la klienta parto verŝajne ŝanĝiĝis,
Vd. https://github.blog/2021-04-05-behind-githubs-new-authentication-token-formats/
Ni uzas ilin ekz-e en voko-afido por legi redaktoj el "gists". ("provizi revo-fonton el mia gisto") difinita en revuloj(?) kaj uzata en GH-agoj de voko-formiko kiel REVO_TOKEN
duobla streko en ŝanĝpriskribo enirante la protokolon sube de XML kaŭzas eraron. Ni malpermesu aŭ anstataŭigu ĝin.
devus sufiĉi forigi la linion en .fetchmailrc...
Ĉar daŭre retpoŝto aperas nefidinda akceptilo por redaktoj ni povus anstataŭe uzi la datumbazon:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.