CookieDomain, přegenerovávání PHPSESSID, nemožnost přenosu přihlášení na subdoménu

DefenestrationPraha
Člen | 99
+
0
-

Narazil jsem na netriviální problém v souvislosti s přenosem session cookies do subdomén.

Mám dvoufázový přihlašovací mechanismus, kdy na první stránce zadáte jen uživatelské jméno a heslo, ono je to zkontroluje, a pokud heslo sedí, přesměruje vás to na další stránku, kde teprve zadáte jednorázový kód došlý e-mailem nebo SMSkou. Teprve po odeslání toho druhého formuláře vás to přihlásí, samozřejmě pokud byl kód dobře.

Až dosud mi tento kód fungoval dobře. Začal „blbnout“ teprve v okamžiku, kdy jsem do konfiguračního souboru přidal

http:
	cookieDomain: domain

nebo

session:
	cookieDomain: domain

případně

session:
	cookieDomain: 'Dlouha.Petidilna.Konkretni.Domena.com'

Toto přidávám proto, že potřebuji zprovoznit nějaké subdomény, na které by mělo fungovat jednotné přilogování z nadřazené domény. Pohledem do vyměněných HTTP dat vidím, že v rámci Set-Cookie se skutečně nastaví požadovaná domain= na hodnotu, kterou jsem předepsal v konfiguraci.

Jenže! Zároveň se mi sessions začnou „divoce resetovat“. Dokonce ani ty dva kroky výše se neudrží – poté, co pošlu přihlašovací jméno a heslo, se mi ihned resetuje session, pošle se nové cookie, a v nové session samozřejmě nemám uloženo nic z té předešlé.

Takže nyní jsem zaseknut v situaci, že buď neuvedu do konfigu cookieDomain: a v takovém případě mi funguje vše jako při starém, ale z principu nemůžu přenášet session na subdomény, nebo začnu uvádět cookieDomain: a cookie se sice teoreticky pošle dobře (s uvedeným domain=), ale prakticky se na straně Nette (?) neustále resetuje způsobem, který znemožňuje jakékoliv použití session vůbec.

Nejsem si jist, zda jde o nějaký subtilní bug v Nette, nebo zda používám příslušné API způsobem, který není OK.

m.brecher
Generous Backer | 713
+
0
-

Ahoj,

jen tak hádám, zkusil jsi nastavit cookieSamesite: None, aby Jsi vyloučil tento problém?

https://doc.nette.org/…onfiguration#…

Také pozor na tohle – možná by Jsi měl nastavit tu doménu i v http?:

https://doc.nette.org/…onfiguration#…

Zkus tohle nějak vyzkoušet, třeba to pomůže.

Editoval m.brecher (11. 3. 2023 0:04)

DefenestrationPraha
Člen | 99
+
0
-

Hele, to asi není přímo v Nette. Ale nechápu to.

Mám doménu, dejme tomu, https://control.test, na kterou jsem přihlášen pomocí cookie, jež má korektně nastaven domain=control.test.

Nyní zkusím navštívit subdoménu https://cert-login.control.test. Jestli dobře chápu, tak pokud je cookieSamesite: Lax nebo cookieSamesite: None, měl by browser na tuto doménu automaticky poslat tu přihlašovací cookie z vyšší domény.

Ale on to bohužel neudělá a nevím proč. Prostě ji ignoruje a nepošle žádnou session cookie, čímž začne nová session.

DefenestrationPraha
Člen | 99
+
0
-

Hm, tak jsem něco zjistil.

K předávání cookie s doménou na subdomény musí být doména ve tvaru jmeno_domeny.tld, takže například control.test, nikoliv třeba jenom „control“.

To je zákeřné pro lidi jako já, kteří si v hosts nastaví třeba jenom doménu „pomocne_stranky“ bez TLD. S tím si browser neporadí. Musí tam být vždycky ta TLD.

Problém nastává rovněž tehdy, máte-li delší doménu než jen jmeno_domeny.tld. Pokud specifikujete např.:

cookieDomain: ‚nejaka.subdomena.domena.tld‘

tak browser nebude předávat tuto cookie do ‚dalsi-subdomena.nejaka.subdomena.domena.tld‘. Vždycky to prostě musí být domena.tld.

Toto není problém Nette, je to spíš hlubší chování browserů jako takových, ale možná by stálo za to to aspoň zmínit v dokumentaci. Množství lidí, kteří vyvíjejí nějakou službu na pokusné doméně vyššího řádu (třeba alpha.sluzba.cz), asi bude nenulové.

Jo, a ještě jedna věc. Při experimentech se subdoménami je nezbytné hlídat, jaké cookies už máte v browseru z minulých pokusů. Lepší je vždycky to promazat.

Editoval DefenestrationPraha (11. 3. 2023 12:11)

m.brecher
Generous Backer | 713
+
0
-

@DefenestrationPraha

Dokumentace Nette: „Například při cookieDomain: nette.org jsou cookies dostupné i na všech subdoménách jako doc.nette.org. Téhož lze dosáhnout také pomocí speciální hodnoty domain, tedy cookieDomain: domain“

To co píšeš, že tam MUSÍ vždy být top level domain tak to není v rozporu s tím, co je v dokumentaci, naopak v plném souladu, jenom jsi možná špatně pochopil ty příklady:

cookieDomain: nette.org – tohle je doména včetně TLD!

cookieDomain: domain – tady autor dokumentace neměl na mysli doménu bez TLD, ale „speciální hodnotu domain“, tedy něco jako klíčové slovo

Takže bych řekl, že dokumentace je v pořádku

DefenestrationPraha
Člen | 99
+
0
-

m.brecher napsal(a):

@DefenestrationPraha

Dokumentace Nette: „Například při cookieDomain: nette.org jsou cookies dostupné i na všech subdoménách jako doc.nette.org. Téhož lze dosáhnout také pomocí speciální hodnoty domain, tedy cookieDomain: domain“

To co píšeš, že tam MUSÍ vždy být top level domain tak to není v rozporu s tím, co je v dokumentaci, naopak v plném souladu, jenom jsi možná špatně pochopil ty příklady:

cookieDomain: nette.org – tohle je doména včetně TLD!

cookieDomain: domain – tady autor dokumentace neměl na mysli doménu bez TLD, ale „speciální hodnotu domain“, tedy něco jako klíčové slovo

Takže bych řekl, že dokumentace je v pořádku

Četl jsem tutéž dokumentaci, ale z příkladu (jedna konkrétní doména včetně TLD) ještě automaticky neplyne, že to tak musí být pokaždé.

Dokumentace je v pořádku, jenom bych tam explicitně zmínil, že ta TLD tam být musí. Mezi příkladem a pravidlem je rozdíl.

m.brecher
Generous Backer | 713
+
0
-

@DefenestrationPraha

Ruku na srdce, také jsem u příkladu v dokumentaci cookieDomain: domain váhal jestli se tam má napsat opravdu domain, nebo moje doména bez TLD :)

m.brecher
Generous Backer | 713
+
0
-

@DefenestrationPraha

Dokumentace je v pořádku, jenom bych tam explicitně zmínil, že ta TLD tam být musí. Mezi příkladem a pravidlem je rozdíl.

V zásadě souhlasím, ale příklady typu domain.com, example.com jsou všude možně na internetu a lidi tomu rozumějí. Matoucí je to klíčové slovo domain, protože to vypadá, že to je právě ten příklad nějaké Tvojí domény bez tld. Dát tam do závorky přesnější definice by neuškodilo.

David Grudl
Nette Core | 8082
+
+2
-

Jak se dělá PR kdyžtak víte, že.

m.brecher
Generous Backer | 713
+
+1
-

@DavidGrudl

Jak se dělá PR kdyžtak víte, že.

Ano, mám už do dokumentace tipů na vylepšení více a mám je zapsané, jen se k tomu musím dokopat abych to zformuloval do použitelného PR. Postupně je všechny pošlu. Sorry, už jsem to sliboval loni.

David Grudl
Nette Core | 8082
+
0
-

Jinak zrovna v tomhle případě nevidím v dokumentaci žádnou nejasnost. Doména bez tld není doména. Nevím o jediném systému, který by tak domény chápal, žádný prohlížeč nepobere, když zadám nette místo nette.org.

Marek Bartoš
Nette Blogger | 1146
+
0
-

@DavidGrudl Ono to nějakým způsobem funguje, když použiješ nezkrácený tvar url s tečkou na konci, ale je to z mnoha důvodů nedoporučované http://ai.

https://en.wikipedia.org/…level_domain#…

Editoval Marek Bartoš (11. 3. 2023 22:40)

DefenestrationPraha
Člen | 99
+
0
-

David Grudl napsal(a):

Jinak zrovna v tomhle případě nevidím v dokumentaci žádnou nejasnost. Doména bez tld není doména. Nevím o jediném systému, který by tak domény chápal, žádný prohlížeč nepobere, když zadám nette místo nette.org.

Když jsem byl u tebe na školení, nastavil jsem si do

c:\Windows\System32\drivers\etc\hosts

řádek

127.0.0.15 web-project-nette

a následně mi https://web-project-nette úplně hladce fungovalo ve všech prohlížečích, které jsem měl. :)

Maximální počet takových adres, které jsem provozoval naráz, bylo 6.

Editoval DefenestrationPraha (12. 3. 2023 0:06)

David Grudl
Nette Core | 8082
+
0
-

@DefenestrationPraha a čekal bys, že bude fungovat i https://web-project nebo https://web? Asi ne. Stejně tak není možné ukrajovat z konce názvu domény.

DefenestrationPraha
Člen | 99
+
0
-

David Grudl napsal(a):

@DefenestrationPraha a čekal bys, že bude fungovat i https://web-project nebo https://web? Asi ne. Stejně tak není možné ukrajovat z konce názvu domény.

Jasně, že to funguje, když si to v HOSTS takhle nastavíš. Na širokém internetu by taková jména nefungovala, ale lokálně v místním počítači budou fungovat zcela hladce, a velká část vývoje se odehrává lokálně, na místně běžícím Apachi. Možná jsem jediný, komu se to stane, možná ne. Nevidím ale žádnou újmu v tom, to tam zmínit.

David Grudl
Nette Core | 8082
+
0
-

Jak jsem říkal, možnost existuje.

Ale upřímně, vůbec nerozumím slovům tvého kmene. Problém se týká vývoje na localhostu?

m.brecher
Generous Backer | 713
+
+1
-

@DefenestrationPraha

velká část vývoje se odehrává lokálně, na místně běžícím Apachi

Vývoj Nette projektů na Windows sdíleně ve složkách na jednom http://localhost Apache serveru je problematika která by vydala na samostatné téma v dokumentaci. Mám už leccos doma zapsáno, co nováček musí vyřešit, aby mohl vůbec na Windows nějaký vývoj a následný deploy na webhosting zvládnout.

Mám za poslední dva roky dlouhý seznam toho, co jsem musel vyřešit a nováčkům by pomohl zhuštěný návod jak si vývojové prostředí na Windows vyladit, aby si ušetřili měsíce úmorného tápání a zkoušení.

Myslím, že ideální je problematiku toho, co je na Windows localhostu jinak, soustředit do jednoho článku v dokumentaci, než to sypat do celé dokumentace (jako třeba nastavení cookies na localhostu přidat v dokumentaci do sekce o cookies). Takže bych takový článek zkusil napsat a předložit k recenzi komunitě a pak by se mohl přes PR a vložit do dokumentace.

Jeden příklad:

– cookies na localhostu se defaultně sdílejí na celé doméně localhost, takže přihlášený uživatel v jednom projektu se objeví ve všech projektech. Řeším to tímto nastavením v konfiguraci:

local.neon:

parameters:
	cookiePath: 	@App\Utils\Config::getCookiePath()

session:
	cookiePath: %cookiePath%

http:
	cookiePath: %cookiePath%

kde soubor local.neon používám jinak než je zvykem v komunitě a sice jen na localhostu:

Bootstrap.php

		$configurator->addConfig($appDir . '/config/common.neon');
        if($_SERVER['HTTP_HOST'] === 'localhost'){
            $configurator->addConfig($appDir . '/config/local.neon');
            ini_set('open_basedir', implode(';', [$appDir, ini_get('upload_tmp_dir')]));  // ochrana dat počítače !!!
        }
		$configurator->addConfig($appDir . '/config/services.neon');

v Bootstrap.php si také „amatérsky“ chráním data počítače, protože nešikovný php script by je mohl smazat a hrabat se v uživatelských účtech Windows se mě nechce.

cookiePath mě vrací šikovná služba Config, kam si každý může dát co z konfigurace bude potřebovat – doporučuje to takto @DavidGrudl a je to ideální řešení.

class Config
{
    public readonly string $appDir;

    public readonly string $wwwDir;

    public readonly bool $debugMode;

    public readonly string $adminerDir;

    public readonly bool $productionServer;

    public function __construct(private Request $httpRequest)
    {}

    public function setParameters(string $appDir, string $wwwDir, bool $debugMode, string $productionHost, string $adminerDir)
    {
        $this->appDir = $appDir;
        $this->wwwDir = $wwwDir;
        $this->debugMode = $debugMode;
        $this->adminerDir = $adminerDir;
        $this->productionServer = $_SERVER['HTTP_HOST'] === $productionHost;
    }

    public function getBasePath(): string
    {
        $basePath = $this->httpRequest->getUrl()->getBasePath();
        return str_ends_with($basePath, '/') ? substr($basePath, 0, strlen($basePath) - 1) : ''; /* fix Nette bug */
    }

    public function getCookiePath()
    {
        return $this->getBasePath().'/';
    }
}

Je to jenom ukázka, že nějak si vychytat vývoj na localhost ve Windows není nijak snadné. Je toho ale daleko víc, poslední problém, který jsem řešil je, že Adminer Editor Jakuba Vrány pod PHP 8.1 a PHP 8.2 na Windows nefunguje díky drobné chybě v PHP správně a je nutné ho opravit. Opravený Editor mám k dispozici a dám ho veřejně k dispozici.

Tak tohle by bylo dobré udělat a tak něco připravím.

Editoval m.brecher (12. 3. 2023 19:46)

DefenestrationPraha
Člen | 99
+
0
-

m.brecher napsal(a):

@DefenestrationPraha

velká část vývoje se odehrává lokálně, na místně běžícím Apachi

Vývoj Nette projektů na Windows sdíleně ve složkách na jednom http://localhost Apache serveru je problematika která by vydala na samostatné téma v dokumentaci. Mám už leccos doma zapsáno, co nováček musí vyřešit, aby mohl vůbec na Windows nějaký vývoj a následný deploy na webhosting zvládnout.

Mám za poslední dva roky dlouhý seznam toho, co jsem musel vyřešit a nováčkům by pomohl zhuštěný návod jak si vývojové prostředí na Windows vyladit, aby si ušetřili měsíce úmorného tápání a zkoušení.

Myslím, že ideální je problematiku toho, co je na Windows localhostu jinak, soustředit do jednoho článku v dokumentaci, než to sypat do celé dokumentace (jako třeba nastavení cookies na localhostu přidat v dokumentaci do sekce o cookies). Takže bych takový článek zkusil napsat a předložit k recenzi komunitě a pak by se mohl přes PR a vložit do dokumentace.

Jeden příklad:

– cookies na localhostu se defaultně sdílejí na celé doméně localhost, takže přihlášený uživatel v jednom projektu se objeví ve všech projektech. Řeším to tímto nastavením v konfiguraci:

local.neon:

parameters:
	cookiePath: 	@App\Utils\Config::getCookiePath()

session:
	cookiePath: %cookiePath%

http:
	cookiePath: %cookiePath%

kde soubor local.neon používám jinak než je zvykem v komunitě a sice jen na localhostu:

Bootstrap.php

		$configurator->addConfig($appDir . '/config/common.neon');
        if($_SERVER['HTTP_HOST'] === 'localhost'){
            $configurator->addConfig($appDir . '/config/local.neon');
            ini_set('open_basedir', implode(';', [$appDir, ini_get('upload_tmp_dir')]));  // ochrana dat počítače !!!
        }
		$configurator->addConfig($appDir . '/config/services.neon');

v Bootstrap.php si také „amatérsky“ chráním data počítače, protože nešikovný php script by je mohl smazat a hrabat se v uživatelských účtech Windows se mě nechce.

cookiePath mě vrací šikovná služba Config, kam si každý může dát co z konfigurace bude potřebovat – doporučuje to takto @DavidGrudl a je to ideální řešení.

class Config
{
    public readonly string $appDir;

    public readonly string $wwwDir;

    public readonly bool $debugMode;

    public readonly string $adminerDir;

    public readonly bool $productionServer;

    public function __construct(private Request $httpRequest)
    {}

    public function setParameters(string $appDir, string $wwwDir, bool $debugMode, string $productionHost, string $adminerDir)
    {
        $this->appDir = $appDir;
        $this->wwwDir = $wwwDir;
        $this->debugMode = $debugMode;
        $this->adminerDir = $adminerDir;
        $this->productionServer = $_SERVER['HTTP_HOST'] === $productionHost;
    }

    public function getBasePath(): string
    {
        $basePath = $this->httpRequest->getUrl()->getBasePath();
        return str_ends_with($basePath, '/') ? substr($basePath, 0, strlen($basePath) - 1) : ''; /* fix Nette bug */
    }

    public function getCookiePath()
    {
        return $this->getBasePath().'/';
    }
}

Je to jenom ukázka, že nějak si vychytat vývoj na localhost ve Windows není nijak snadné. Je toho ale daleko víc, poslední problém, který jsem řešil je, že Adminer Editor Jakuba Vrány pod PHP 8.1 a PHP 8.2 na Windows nefunguje díky drobné chybě v PHP správně a je nutné ho opravit. Opravený Editor mám k dispozici a dám ho veřejně k dispozici.

Tak tohle by bylo dobré udělat a tak něco připravím.

Podrobný návod pro práci na localhostu by byl skvělý.

Když tak tam mohu doplnit kapitolu o HTTPS.

DefenestrationPraha
Člen | 99
+
0
-

David Grudl napsal(a):

Jak jsem říkal, možnost existuje.

Ale upřímně, vůbec nerozumím slovům tvého kmene. Problém se týká vývoje na localhostu?

Přesně tak, a myslím si, že takových programátorů bude aspoň 10–20 procent. Na Windowsech je hodně populární XAMPP.

David Grudl
Nette Core | 8082
+
0
-

Tak tu dokumentaci uprav, když to někomu pomůže.

m.brecher
Generous Backer | 713
+
-3
-

@DefenestrationPraha

Přesně tak, a myslím si, že takových programátorů bude aspoň 10–20 procent. Na Windowsech je hodně populární XAMPP.

XAMPP neznám, instaluji si jednotlivé části samostatně, Apache, MySQL, PHP, různých chytáků při instalaci je docela dost. Při ruční instalaci Apache, MySQL, PHP na Windows člověk trochu pronikne do těch technologií.

Já bych napsal článek o ruční instalaci Apache, MySQL, PHP a jak si zorganizovat projekty ve složkách + související konfigurace v Nette + jak uploadovat na produkci Po nějaké recenzi a doplnění by se mohl publikovat.

Editoval m.brecher (16. 3. 2023 0:36)

DefenestrationPraha
Člen | 99
+
0
-

m.brecher napsal(a):

@DefenestrationPraha

Přesně tak, a myslím si, že takových programátorů bude aspoň 10–20 procent. Na Windowsech je hodně populární XAMPP.

XAMPP neznám, instaluji si jednotlivé části samostatně, Apache, MySQL, PHP, různých chytáků při instalaci je docela dost. Při ruční instalaci Apache, MySQL, PHP na Windows člověk trochu pronikne do těch technologií.

Já bych napsal článek o ruční instalaci Apache, MySQL, PHP a jak si zorganizovat projekty ve složkách + související konfigurace v Nette + jak uploadovat na produkci Po nějaké recenzi a doplnění by se mohl publikovat.

Nevím, za co tě downvotují, toto by byl užitečný článek. Já jsem si na samostatnou instalaci všech těchto kusů SW na Windows posledních 10 let netroufl. Buď jsem používal WAMP, nebo XAMPP. Z těchto dvou musím říci, že je XAMPP hodně pohodlnější a příjemnější na užití než WAMP, ale musíš být opatrnější – například už jsem viděl databázi rozhozenou z toho, že se správně nevypnula, což se mi s WAMPem nikdy nestalo.

Napíšeš-li takový článek, zkusím jej doplnit. Nemám s tím zatím moc zkušeností, protože (smích) u nás stále používáme Subversion a zatím jsem neměl důvod se učit Git.

MajklNajt
Člen | 470
+
+1
-

asi za to, že je to off-topic, a v podstate úplne mimo Nette?

DefenestrationPraha napsal(a):

m.brecher napsal(a):

@DefenestrationPraha

Přesně tak, a myslím si, že takových programátorů bude aspoň 10–20 procent. Na Windowsech je hodně populární XAMPP.

XAMPP neznám, instaluji si jednotlivé části samostatně, Apache, MySQL, PHP, různých chytáků při instalaci je docela dost. Při ruční instalaci Apache, MySQL, PHP na Windows člověk trochu pronikne do těch technologií.

Já bych napsal článek o ruční instalaci Apache, MySQL, PHP a jak si zorganizovat projekty ve složkách + související konfigurace v Nette + jak uploadovat na produkci Po nějaké recenzi a doplnění by se mohl publikovat.

Nevím, za co tě downvotují, toto by byl užitečný článek. Já jsem si na samostatnou instalaci všech těchto kusů SW na Windows posledních 10 let netroufl. Buď jsem používal WAMP, nebo XAMPP. Z těchto dvou musím říci, že je XAMPP hodně pohodlnější a příjemnější na užití než WAMP, ale musíš být opatrnější – například už jsem viděl databázi rozhozenou z toho, že se správně nevypnula, což se mi s WAMPem nikdy nestalo.

Napíšeš-li takový článek, zkusím jej doplnit. Nemám s tím zatím moc zkušeností, protože (smích) u nás stále používáme Subversion a zatím jsem neměl důvod se učit Git.

m.brecher
Generous Backer | 713
+
0
-

@MajklNajt

asi za to, že je to off-topic, a v podstate úplne mimo Nette?

Ano, souhlasím, tematicky by takový článek vybočil z topic Nette Frameworku – cca dvě třetiny by se věnovaly technologiím okolo a jednom jedna třetina Nette. Proto si také myslím, že by se to nemělo dávat přímo do dokumentace Nette, ale někam jinam a v dokumentaci by se na vhodných místech mohlo na ty články odkazovat.

Ty články i když by byly o Nette jen částečně by právě měly napumpovat do nováčků praktické znalosti z těch technologií a postupů, které MUSÍ zvládnout, aby v Nette mohli vůbec začít. Je přeci lepší investovat čas do studia komponent Nette či DI než hodiny řešit proč nefunguje skript pro otevření šablony latte v IDE z Tracy, nebo proč při přidání knihovny intl v PHP padá server Apache.

Samozřejmě je nevhodné, aby z dokumentace Nette šly odkazy na jasná off-topic témata. Manuál na instalaci a konfiguraci technologií pro domácí vývoj Nette aplikací na Windows ale uvítá každý začínající webový vývojář.

Editoval m.brecher (17. 3. 2023 0:18)

Pepino
Člen | 245
+
+4
-

@mbrecher nechci tady přiživovat OT, ale takových návodů je na netu mraky.

Jako hlavní problém nováčků vidím spíše v tom, že tyhle články nečtou, nepřečtou si ani CELOU dokumentaci, umí sotva základy syntaxe a už se pouští do velkých projektů.

David Grudl
Nette Core | 8082
+
+3
-

Ale vysvětlete mi jedno, proč teda ani po víc než týdnu, když vidíte v dokumentaci nějakou nejasnost (já přiznávám stále nechápu jakou), proč to v té dokumentaci neopravíte? Přes x mých výzev. Mě to připadá až neuvěřitelné, jak když někdo řeší, ať už tady na fóru nebo na Slacku, že mu něco chybělo v dokumentaci, tak se zoufale brání tomu ji doplnit. Jednou kliknout na edit. Občas dokonce někdo něco přislíbí, ALE NIKDY, NIKDY!!! z toho pak nic není. I přes opakované urgence. Připadám si jako kokot v říši slibů.

Já pak opravdu žiju v pocitu, že uživatelé jsou jen nesmírně líná banda naprostých nevděčníků, a o to hůř v sobě hledám nějakou motivaci něco vylepšovat.

DefenestrationPraha
Člen | 99
+
-3
-

David Grudl napsal(a):

Ale vysvětlete mi jedno, proč teda ani po víc než týdnu, když vidíte v dokumentaci nějakou nejasnost (já přiznávám stále nechápu jakou), proč to v té dokumentaci neopravíte? Přes x mých výzev. Mě to připadá až neuvěřitelné, jak stále někdo řeší, ať už tady na fóru nebo na Slacku, že mu něco chybělo v dokumentaci, ale zoufale se brání tomu ji doplnit. Jednou kliknout na edit. Občas taky někdo něco přislíbí, ALE NIKDY, NIKDY!!! z toho pak nic není. I přes opakované urgence. Připadám si jako kokot v milionech slibů.

Já pak opravdu žiju v pocitu, že uživatelé jsou jen nesmírně líná banda naprostých nevděčníků, a o to hůř v sobě hledám nějakou motivaci něco vylepšovat.

Já jsem to vysvětlil … ještě nikdy jsem nedělal s Gitem, neumím to. Vím, že Git se budu muset do budoucna doučit, ale základy mi budou trvat aspoň 2–3 hodiny, ne-li více, a tento čas jsem prostě zatím nenašel. Ze všech stran se tlačí jiné urgentní úkoly.

Kdyby to bylo 5 minut, dávno to tam máš.

David Grudl
Nette Core | 8082
+
+1
-

Na to stačí jen účet na Githubu a dá se to editovat přímo tam:

Nebo prostě napsat: hele, Davide, nemám Github, tak změň na té a té stránce tu a tu větu za tuhle jinou.

m.brecher
Generous Backer | 713
+
0
-

@DavidGrudl

Já pak opravdu žiju v pocitu, že uživatelé jsou jen nesmírně líná banda naprostých nevděčníků, a o to hůř v sobě hledám nějakou motivaci něco vylepšovat.

S githubem jsem nikdy nepracoval ale začínám. Začal jsem tím, že jsem zdokumentoval pár chyb v pluginu Latte Pro a nahlásil to rovnou na github. Co se týče oprav v dokumentaci Nette, to mám skluz, různě jsem sliboval, ale nedostal se k tomu. Jakmile pominou složitosti okolo daňových přiznání (31.3.) tak si vyzkouším podat nějaké PR do dokumentace – česky i anglicky.

Lepší než psát na fórum, aby někdo jiný do dokumentace něco vložil je podat rovnou PR do dokumentace na github. Každý přece profituje ze společného opensource a každý dle svých možností by se měl zapojit.

Konkrétně u těch domén co se tady ve vlákně řešily nevidím důvod něco do dokumentace přidávat, protože je to tam dostatečně srozumitelné. Ale je dost jiných míst v dokumentaci, kde by se určité vhodné úpravy hodily – budu je tedy po 1.4.2023 postupně na github formou PR přidávat.

Článek o problematice instalace a zprovoznění všech technologií nutných pro vývoj Nette projektů na domácím PC s Windows napíšu až potom.

m.brecher
Generous Backer | 713
+
0
-

@DavidGrudl

Tak jsem poslal do dokumentace Tracy 16 x pullrequest pro každou jazykovou verzi jeden. Bylo by asi lepší to nějak sloučit do jednoho PR, ale nepřišel jsem na to jak.

David Grudl
Nette Core | 8082
+
0
-

m.brecher napsal(a):

Tak jsem poslal do dokumentace Tracy 16 x pullrequest pro každou jazykovou verzi jeden. Bylo by asi lepší to nějak sloučit do jednoho PR, ale nepřišel jsem na to jak.

To už prosím nikdy nedělej.

dakur
Člen | 493
+
+4
-

Já pak opravdu žiju v pocitu, že uživatelé jsou jen nesmírně líná banda naprostých nevděčníků

Davide, když pak na první snahu o příspěvek od nezkušeného uživatele odpovíš tímhle, tak se moc nemůžeš divit, taky by se dalo mluvit o nevděku.

Já třeba přispívám rád (do nette), ale mám problém s tvými dlouhými odezvami a nereakcemi na konceputální věci a to mě zase demotivuje něco dělat. Takže ono to nikdy není jednostranné.

Editoval dakur (5. 4. 2023 13:27)

David Grudl
Nette Core | 8082
+
+1
-

Jo, kdysi jsem býval velmi milý, ale už prostě nejsem, jelikož do toho nevkládám žádné emoce.

m.brecher
Generous Backer | 713
+
0
-

@dakur

spíš bych viděl chybu na svojí straně, sliboval jsem poslat PR do dokumentace už loni v prosinci a dostal se k tomu až teď. Přitom to složité není, jak psal David. Na fóru jsem kdysi četl, že se mají doplňky do dokumentace psát česky i anglicky, ale možná jsem to jenom špatně pochopil. Včerejší PR beru jako testovací a jestli jsem to správně vyhodnotil, tak PR do dokumentace se aktuálně podává v jedné jazykové verzi.