• Offtopic
  • Web Development rasprave/preporuke/problemi

Da se nadovežem, @Brijac ako radiš baš na GitHubu, možeš napraviti prazan GitHub repozitorij nakon čega ti prikažu poruku koja opisuje kako taj repozitorij popuniti.

Tako sam i do sad radio, to mi se činio ipak kao nekakv "hacky" način za to odraditi. Mislio sam da postoji baš neki "pravi" način.

Još jedno pitanje, radim neki zadatak, treba napraviti setup za WP projekt i napraviti prvi pull request. E sad, slabo sam nešto do sad radio s Gitom pa mi nije jasno trebam li ja cijeli projekt imati na main branch-u jer ako imam, ne mogu onda napraviti pull request jer bi to trebao napraviti na nekom drugom branchu ili da to fejkam pa promijenim par fajlova bzvz na drugom branchu i onda odradim prvi pull request?

    Brijac Ideja je da uvijek imaš jedan main na koji ćeš raditi merge drugih grana na kojima radiš promjene. Teško je malo ovako zaključiti iz toga što traže od tebe (ako je riječ o poslu, sigurno neće smetati ako ih pitaš za pojašnjenje, ne u smislu kako to napraviti, već što točno žele).

    Nekakav workflow bi bio napraviti main, iz njega se branchati u neku novu granu na kojoj napraviš neku promjenu. Onda napraviš commit promjena na toj grani. Nakon toga radiš push te grane za koju onda možeš raditi PR/MR. Kada potrebne osobe odobre promjene, tada radiš na GitHubu merge s granom koju odabereš da je nadležna prilikom izrade PR/MR-a (u tvom slučaju bi to bio main).

    Kužim sad što trebam, ovaj dio kod odobrenja promjene i na kraju merge-anja s main-om nakon odobrenja mi je falio. Još jedno pitanje, ako imam više zadataka tipa:

    1. dodaj no WP temu
    2. importaj neke blokove
    3. kreiraj novi post type

    trebam li onda za svaki zadatak napraviti poseban branch? (na kraju svakog zadatka mi piše da otvorim pull request s napravljenim promjenama)

    Radi se akademiji za WP.

      Brijac To sve ovisi o tebi i nekad praksi u firmi. Najbolje ti je napisati na papir ili u Notepad funkcionalnosti svakog tog zadatka. Ako vidiš da međusobno nisu ovisni ili da jedan ovisi o drugome, onda je najbolje podijeliti u više grana. To bi na poslu dobio kao zadatke u više tiketa. Ako vidiš da dva zadatak dijele funkcionalnosti, no da bi ona bila tek polovično implementirana ako radiš na zasebnim granama, onda napraviš oba zadatka u jednoj grani. Sve je u prilagodljivosti i nekakvo vlastitoj raspodjeli odgovornosti svake funkcionalnosti.

      U tvom slučaju bih rekao da komotno svaki zadatak može kao zasebna grana. Na GitHubu možeš napraviti Project koji povežeš sa svojim repozitorijem. Projekt ima svoju ploču na koju možeš dodavati zadatke kako bi stvorio tikete. Automatski će ih numerirati pa si možeš i tako imenovati svoje grane. Primjerice, napraviš projekt i repozitorij koji se zovu Wordpress Tutorial. Skraćeno će biti WPT i na svaki novi tiket će se vezati inkrementirana vrijednost, odnosno WPT-X pri čemu će prvi tiket biti WPT-1, drugi WPT-2 itd. Onda možeš napraviti zasebnu granu koja se zove WPT-1_wordpress-theme i u njoj dodavati temu pa napraviti PR.

        Fico

        Tnx, nažalost stignem se samo vikendom bavit zadaćama s akademije, a tad mi nema nikoga online za pitanja pa rekoh da pitam tu 👍

          Brijac Slobodno pitaj pa makar ti se pitanje nekad činilo "glupim". Uvijek bolje pitati pa saznati.

          chono kreiras repo na Gitu, kloniras ga na svoj komp lokalno, kopiras lokalno napravljeno u taj klonirani folder i pushas na Git nakon toga

          Sve je receno, ovo je easy i correct way. Mozes si napravit i .gitignore file u rootu projekta pa dodas fileove i foldere koje ne zelis pushat na remote repo. Recimo konfiguracijski file, passwordi i sve osjetljivo uvijek imas van gita jer to zelis iskljucivo sam prenosit.

          Uvijek je dobra praksa nakon kloniranja repoa napravit poseban branch pa njega publishas remote i mozes napravit Pull Request na master. Master je defaultna grana svakog projekta, ali i to se moze podesiti po zelji. Ideja je da se na masteru ne radi, nego samo gura u njega.

          Cim pushas i publishah lokalni branch remote, odmah na samom gitu gore imas gumb da napravis spoj u master, s tim da gore prethodno toga malo podesis logiku, tipa to koji je main branch, da ne mozes nista gurat u njega bez necije potvrde itd.

          Nije ti lose pogledati koji git tutorial, kratko je i puno ce ti pomoci, git je osnovni alat za development u svakom projektu.

            foggy Sve je receno, ovo je easy i correct way. Mozes si napravit i .gitignore file u rootu projekta pa dodas fileove i foldere koje ne zelis pushat na remote repo. Recimo konfiguracijski file, passwordi i sve osjetljivo uvijek imas van gita jer to zelis iskljucivo sam prenosit.

            E baš to mi je jedan od zadataka, napraviti .gitignore file i dodati file-ove koji ne bi trebali biti na remote repo-u, ali ja pojma nemam koji bi to file-ovi mogli biti. Doslovno u zadatku piše tako kako si ti napisao "npr. config file, password and similar". Na kraju sam našao na google-u neki kao univerzalni .gitignore file i njega stavio.

            foggy Uvijek je dobra praksa nakon kloniranja repoa napravit poseban branch pa njega publishas remote i mozes napravit Pull Request na master. Master je defaultna grana svakog projekta, ali i to se moze podesiti po zelji. Ideja je da se na masteru ne radi, nego samo gura u njega.

            Cim pushas i publishah lokalni branch remote, odmah na samom gitu gore imas gumb da napravis spoj u master, s tim da gore prethodno toga malo podesis logiku, tipa to koji je main branch, da ne mozes nista gurat u njega bez necije potvrde itd.

            Nije ti lose pogledati koji git tutorial, kratko je i puno ce ti pomoci, git je osnovni alat za development u svakom projektu.

            Budem sad tako radio. Prošao jesam Git tutorial, ali do sad slabo s njima radio baš na nekom projektu pa uopće ne znam koje su prakse.

              Brijac Stavis URL i portove recimo u conf file, pa kad dizes app onda on koristis to iz configa. Recimo kad imas vise environmenta onda bildas drugacije url, tipa localhost i produkcija. Praksa je imati .env file gdje trpas sve to, u rootu projekta, pa njega u gitignore, i onda taj file imas lokalno i u produkciji popunjeno sukladno environmentu. Nije lose imati ni neki json za confu, kako ti vise pase.

              Imas i npm paket dotenv ako radis javascript, on hendla te fajlove i onda si slazes stvari uz njega.

              Dobro je koristiti custom portove kad mozes, nije najbolja praksa ostavit default stanja. I tak 🙂

              Ima li dobre duse ovdje da je dizala Zabbix u dockeru i pokusao slati SSH upite prema Ciscovim uredajima kako bi prikupio info?

              Naime, zanima me zasto se ssh moze odraditi direktno sa VMa, a kroz UI zabbixa ne dobijem info niti prode do uredaja, a ponekad se skrsi i baza zabbixa.

                chono Prvi put čujem za Zabbix, nemam pojma što uz njega dolazi. Ima li on kao on SSH način komunikacije s vanjskim alatima? Ili SSH koristiš na drugačiji način?

                Dizao sam docker nedavno, prošao neke tutoriale, doduše radim web automation i digao sam Node+Alpine linux, dodao Chromium i Firefox, Python i to mi je image. Ono što ti mogu reći da moraš paziti s docker containerima jesu baš portovi, da možeš nekud komunicirati moraš otvoriti portove kroz koje izlaziš van, eventualno bindat port docker containera na port hosta gdje ih vrtiš. Sve ovisi o infrastrukturi i projektu.

                VM kao VM ne znam kako točno radi s tim dijelom vezanom za portove, jer Docker kao tehnologija je nešto drugačija i ustvari poznam samo nju donekle. Probaj za prvu ruku upogonit Wireshark ili Fidler pa malo snifaj što se točno dešava između te 2 tehnologije koje želiš povezati.

                  foggy ma imam i osjecaj da je nesto izmedu containera. Portovi su otvoreni, jer kada dodem na bilo koji od containera, mogu SSHat na uredaj i dobijem response na komandu. Mislim da ce biti negdje problem izmedu UI i DB containera Zabbixa. Tu moram skuziti gdje nedostaje komunikacija i zasto se uporno ne kuze kada UI preda SSH upit do DBa i mora izaci van…

                  Neznam jos kako tbh 🤣

                    chono Onda je velika vjerojatnost da se radi o nekom flow-u kroz portove. Docker Container je ni više ni manje nego servis koji diže image i taj servis ima svoju virtualnu mrežu unutar sebe samoga. To znači da ako nemaš EXPOSE komandu u DockerFile datoteci (koja je uputa kakav image da bildaš, na temelju čega onda digneš container) - da zapravo nema komunikacije prema unutra i prema van.

                    Kada imaš više containera, tipa aplikacija i baza (recimo da su to 2 komada) - tu je bitno da oni sami sebe vide gdje moraju da se vide. Tu dolazi Docker Compose koji će ti dić sve containere na način da oni mogu komunicirati (dio njihove privatne mreže će biti, compose je dovoljno pametan da ih posloži da se vide). Međutim, i dalje to nije prema van, nego između njih samih - što možda tebi i igra. Probaj preko Composa dić sve te stvari ako možeš, pa onda pingaj.

                    Recimo možeš ući u sami container sa "docker run -it ImeImiđa sh" ili "docker run -it ImeImiđa bash" (ovisno koji terminal postoji) - pa pingaj google ili nešto van, vidi jel ti vraća ikakvu povratnu informaciju.

                      foggy poigram se time i malo troubleshootam. Hvala puno za savjet

                      Zna li itko u čemu je ovdje problem:

                      Znači npr. ovaj dio:

                      13 Error: No error to ignore is reported on line 35.

                      14Error: No error to ignore is reported on line 59.

                      15Error: No error to ignore is reported on line 31.

                      16Error: No error to ignore is reported on line 29.

                      17Error: No error to ignore is reported on line 67.

                      Error je reportan na liniji koda kojeg file-a uopće. Ne kužim uopće za koji file mi prijavljuje ove errore.

                      Edit: uspio sam i ovo riješiti.

                      Također, ovaj error na dnu, uopće ne kužim što je tu problem. EDIT: ovo sam fixao, pre duge su bile neke linije u tim file-ovima.

                      Radi se o automatskom provjeravanju pull requesta na Githubu i nalaženju grešaka u njemu. Ne odobrava mi pull request dok ovo ne sredim.

                        Brijac Morat ćeš negdje uploadati s većom rezolucijom jer je ovako premutno pa se ne vidi što se događa.

                          Fico

                          Trebalo bi se sad vidjeti.

                          Edit: Fixao sam oboje. Prvi error je bio taj da postoji nekakav PHPStan ignore command koji sam trebao obrisati na svim ovim linijama koje su pisale u erroru.

                          Druga slika su bile pre duge linije koda u PHP-u i trebao sam ih brake-at.

                          Očito je ovo bio nekakav check kako ćemo se na akademiji snalaziti s ovakvih error check-ovima i hoćemo li ih znati čitati.

                          @Fico svejedno hvala što si htio pomoći 👍

                          foggy izgleda da je problem u samom endpointu, moram updateat verziju OSa. Probao sam i preko Ansiblea i ista stvar. Ipak mi je Zabbix docker setup dobar ☺️

                          10 dana kasnije

                          Ekipa, gledam u ovo već pola sata, koji qrac ovdje trebam napraviti da to bude po tom nekom koding standardu i da mi ne baca errore?

                          Edit: problem je bio u tome da je kod copy paste-an u VSC koji ove razmake uopće nije gledao kao tab indentation, nego kao neki obični razmak. Trebao sam samo pobrisati razmak i lupiti tab.