Transcript: Environment Management und Packaging

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo, liebe Hörerinnen und Hörer. Willkommen beim Python-Podcast, Episode 51.

Dominik

Wir hatten eine relativ lange Sommerpause.

Dominik

Ja, ungeplant.

Dominik

Ungeplant. War ein bisschen was dazwischengekommen.

Dominik

Das haben uns auch schon viele Leute geschrieben.

Dominik

Wir loben Besserung, ja. Liebe Grüße.

Jochen

Genau. Danke für die Erinnerung, dass wir mal irgendwie wieder was machen sollen.

Dominik

Wir wollen heute über Environment Management und Packaging sprechen.

Dominik

Und wir haben die Annalena heute sogar. Hallo, Annalena.

Dominik

Ja, hallo.

Dominik

Hi, ihr beiden.

Dominik

Magst du kurz was über dich erzählen vielleicht? Vielleicht fangen wir so an.

Anna-Lena

Ja, na klar. Genau, mein Name ist Annalena Popkes.

Anna-Lena

Ich arbeite als Machine Learning Engineer bei einem deutschen Unternehmen, das nennt sich Innovex.

Anna-Lena

Und bin da in verschiedenen Kundenprojekten unterwegs.

Anna-Lena

Je nachdem, was der Kunde möchte, mache ich verschiedene Dinge.

Anna-Lena

Manchmal auch reines Data Engineering.

Anna-Lena

Jetzt gerade bin ich bei Bubble.

Anna-Lena

Das ist ein Unternehmen, was Sprachen beibringt.

Anna-Lena

Kennt ihr vielleicht auch schon.

Anna-Lena

Habt ihr vielleicht selbst schon mal benutzt.

Anna-Lena

Und ich arbeite da im Speech Recognition Team.

Anna-Lena

Und helfe da dem Team dabei, ihre Software weiterzuentwickeln, produktiv zu nehmen und was da alles so dazukommt.

Anna-Lena

Oh ja, sehr cool.

Jochen

Klingt echt total interessant.

Jochen

Ja, finde ich gut.

Jochen

Ist super spannend.

Anna-Lena

Ja, ist auch ein ganz interessantes Unternehmen, finde ich, wenn man dann mal etwas mitarbeitet, was auch wirklich beim User Verwendung findet.

Anna-Lena

Das ist sehr unterschiedlich, was man da für Kundenprojekte hat, was passiert mit dem Code, den man da so schreibt.

Anna-Lena

Und das finde ich total...

Anna-Lena

Rewarding, also, dass es einem viel zurückgibt, an etwas mitzuarbeiten, was man auch vielleicht selbst schon mal benutzt hat.

Anna-Lena

Ja, stimmt, das ist gut.

Dominik

Und dabei bist du auch über Environment-Management-Packaging-Zeugs gestoßen oder gestolpert, oder ist das ein Hobby von dir?

Anna-Lena

Nee, das war bei einem vorherigen Kundenprojekt.

Anna-Lena

Da wurde ich gefragt, also Packaging ist ja sehr präsent, wenn man viel mit Python macht und dementsprechend ist mir das schon vorher begegnet.

Anna-Lena

Aber ich habe mich da noch nie so wirklich reingearbeitet gehabt.

Anna-Lena

Aber in einem vorherigen Kundenprojekt.

Anna-Lena

Wurde ich dann mal gefragt, welches Packaging Tool sollen wir denn benutzen?

Anna-Lena

Es gibt ja so viele.

Anna-Lena

Und dann hatte ich angefangen, mich mal ein bisschen reinzulesen und dachte, boah, ich finde wirklich viele Blogartikel zu den einzelnen Tools.

Anna-Lena

Aber ich finde nicht so wirklich einen Artikel, der die verschiedenen Tools zusammenfasst, mal kurz erklärt, was sie können, wozu sie geeignet sind und das Ganze vernünftig kategorisiert.

Anna-Lena

Vor allem ohne diese persönliche Präferenz reinzubringen, die man ganz viel findet, die ich auch ganz viel...

Anna-Lena

Ja.

Anna-Lena

Unter Kollegen halt bemerkt habe, dass manche sagen, ja, Poetry auf keinen Fall will ich nicht benutzen.

Anna-Lena

Die haben da mal so ein Release rausgebracht und der hat total viel kaputt gemacht.

Anna-Lena

Und nee, das mache ich jetzt kategorisch nicht mehr.

Anna-Lena

Ja, das sagt Jürgen auch.

Anna-Lena

Ich benutze es noch.

Anna-Lena

Wir hauen uns da im Karten.

Anna-Lena

Und dementsprechend dachte ich dann, okay, jetzt wird es mal Zeit.

Anna-Lena

Das ist eine gute Möglichkeit, mich da mal tiefer reinzuarbeiten, da auch einen Talk zuzumachen und einen Blog zu schreiben, einen Blogpost zu schreiben.

Anna-Lena

Und das habe ich dann gemacht.

Anna-Lena

Und das hat erstaunlich viel Anklang gefunden.

Anna-Lena

Wobei, wenn man jetzt so darüber nachdenkt.

Anna-Lena

Wahrscheinlich gar nicht so erstaunlich, weil das ein Problem ist, was so viele Leute betrifft.

Anna-Lena

Ja.

Anna-Lena

Und das Ganze...

Dominik

Also ich würde ausdrücken, das ist so das Hauptproblem, wenn ich halt auch einen Neuling oder sowas versuche, Python beizubringen oder irgendwie irgendwas zu zeigen.

Dominik

Das ist immer eine große Hürde, bis erstmal alles läuft und bis man irgendwelche Environments erstellen kann und so weiter.

Dominik

Und jetzt reden wir ja noch nicht über Packaging, aber einfach nur dieses Environment-Setup in Python ist so ein bisschen nervig.

Dominik

Ja.

Dominik

Und nicht nur ein bisschen, sondern sogar ziemlich nervig.

Dominik

Und ja, ich bin da auch tatsächlich da auf deine Meinung sehr gespannt hinterher.

Dominik

Auf deine Meinung.

Dominik

Persönliche Präferenz, was du sagen würdest, was so am besten funktioniert.

Dominik

Aber ich finde das cool, dass wir diese ganzen Tools haben und vielleicht können wir über die einzelnen Tools noch irgendwie reden.

Dominik

Normalerweise machen wir es ja immer so, dass wir einen großen News-Teil vorne haben, aber da wir halt seit Mai, glaube ich, keine Folge mehr hatten, da hat sich da so einiges eingesammelt.

Dominik

Ich würde sagen, das ist fast eine eigene Folge.

Dominik

Das müssen wir, glaube ich, an einer anderen Stelle nochmal so ein bisschen nachholen.

Jochen

Aber gut, so ein bisschen was können wir ja machen.

Jochen

Ach, doch so ein bisschen was.

Jochen

Ja.

Jochen

Na gut.

Dominik

Worüber willst du erzählen?

Dominik

Ich weiß es nicht.

Jochen

Einfach nur das, was mich in letzter Zeit so ein bisschen beschäftigt.

Jochen

Oder wo ich dachte...

Jochen

Okay, kann ich jetzt was zu sagen, weil es mich gerade betroffen hat?

Jochen

Zum Beispiel, es gibt irgendwie ja...

Jochen

Also, seit letztem Mal Pydentic Version 2 ist raus.

Jochen

Ah, ja, natürlich.

Jochen

Und jetzt inzwischen sogar 2.4.

Dominik

Wir haben ja auch die ganzen Europe-Python-News noch nicht gemacht.

Dominik

Ja, richtig.

Dominik

Eine ganze Menge.

Jochen

Und genau, da habe ich jetzt auch letztens ein Projekt umgestellt.

Jochen

Ich wollte es eigentlich nur updaten und dann hat das halt irgendwie nicht so gut funktioniert.

Dominik

An Pydentic 2 ist jetzt, dass dieses Rust-Core, das halt vorher Pydentic-Core war, also als Extra-Library jetzt mit drin ist, direkt in...

Dominik

Pydentic selbst, ja.

Jochen

Ja, genau.

Jochen

Das heißt jetzt auch schnell.

Jochen

Das ist jetzt...

Dominik

Das, was vorher langsam war, das ist das Hauptproblem, was Pydentic halt so hatte bei der Validierung, geht jetzt einigermaßen flott.

Dominik

Ja, sollte jetzt deutlich schneller gehen.

Dominik

Ja, ja, genau.

Jochen

Ja, das Problem ist halt, dass Objekte erzeugen halt, wenn man das rein in Python macht, sehr langsam ist.

Jochen

Wenn man jetzt irgendwie lange Listen von 10.000 irgendwie Einträgen in einem JSON-Ding hat, dann dauert das halt irgendwie, wenn man das in Pure Python macht, das alles zu validieren.

Jochen

Und in Rust geht das halt deutlich schneller.

Jochen

Und, ähm, ja, aber, äh, genau, also, ähm, ach so, das hatten wir auch noch nicht erwähnt, äh, ähm, es gibt jetzt eine Firma hinter Pydentic, äh, und die hat auch irgendwie, glaube ich, von Sequoia oder so, ordentlich Venture-Craft-Value bekommen.

Jochen

Mhm.

Jochen

Und die Entwicklung...

Jochen

Das habt ihr, glaube ich, erwähnt in der letzten Episode.

Jochen

Hatten wir schon erwähnt, ach so, gut.

Jochen

Kann sein.

Jochen

Habt ihr schon erwähnt, ja.

Jochen

Ja.

Jochen

Äh, okay, genau, aber die Entwicklung geht da jetzt auch deutlich schneller und, ähm, genau, das Update, das ich dann jetzt probiert habe, war aber nicht so reibungslos.

Jochen

Das war halt echt, das war richtig übel.

Jochen

Das hat deutlich länger gedauert, als ich so gedacht hätte.

Jochen

Ich meine, das ist halt auch so ein Ding, äh, das kann dann passieren, wenn man Dinge ändert, ne, da halt halt irgendwie, früher war es halt so, dass, wenn man, äh, bei einer, ähm, äh, bei so einem Feld gesagt hat, typing any, dann war das default-mäßig none.

Jochen

Mhm.

Jochen

Und, ähm, das ist es jetzt nicht mehr.

Jochen

Jetzt ist es halt, kriegt man einen Fehler und das sagt halt irgendwie, du hast da einen, äh, hast da einen Wert nicht gesetzt.

Jochen

Und dann drunter kommen aber die anderen Variablen und dann hatte ich das irgendwie falsch einsortiert und bin dann irgendwie falsch abgebucht.

Jochen

Und dann musste ich halt irgendwie, weil das, es hat sich auch noch ganz viel anderes Zeug geändert.

Jochen

Ich dachte so, welche Änderung hat das jetzt verursacht, dass ich da jetzt immer einen Fehler kriege?

Jochen

Und ich habe wirklich lange suchen müssen, bis ich das rausgekriegt habe, dass das der Grund war.

Dominik

Manche Sachen sind gemein, die beißen einen.

Jochen

Äh, ja, das war schon, dachte ich so, mhm, ja.

Jochen

Aber im Grunde ist das natürlich eine tolle Sache, dass das jetzt irgendwie alles irgendwie auch schnell funktioniert und so.

Jochen

Ja.

Jochen

Aber ich werde wahrscheinlich noch ein bisschen, bisschen brauchen, bis ich alle Sachen, die ich, wo ich Freidentik verwende, da umgezogen habe.

Dominik

Benutzt du das auch in Django?

Jochen

Ähm, ja, ich benutze es in Django-Projekten teilweise auch, wenn halt vor allen Dingen Daten von außen irgendwie kommen, um die halt zu validieren, verwende ich das halt.

Jochen

Also wenn es halt nicht über quasi Django REST-Framework geht.

Dominik

Genau, ich wollte gerade sagen, du hast keinen Django REST-Framework.

Jochen

Doch, also für, für, für, für so REST-Apps nehme ich normalerweise Django REST-Framework, aber manchmal kommen Daten ja auch von woanders und dann, dann nehme ich schon ein paar Identik.

Dominik

Aber da gab es ja auch ein paar News zu, ne? Ich glaube, REST-Framework wird irgendwann duplicated und nach Django reinwandern, irgendwie jetzt mit 5 sogar schon, dann.

Jochen

Ja, das weiß ich nicht.

Jochen

Das weiß ich noch nicht. Also die, die Kerngeschichten wandern in den, wandern in Django selber rein.

Jochen

Ähm, ja, also quasi das Encoding-Geschichten, also es gibt, ja, größere Teile, die in Django jetzt selber sind und dann könnte man halt sowas wie Django REST-Framework relativ leicht in Django selber reinpacken.

Jochen

Aber Django REST-Framework selber, glaube ich, kommt nicht, also mit allem, was so dranhängt, auch nicht rein, weil das ist halt einfach so riesig.

Dominik

Ja, vielleicht, aber natürlich keine Sache, ne?

Dominik

Dann kann ich dann gar nicht mehr, wenn man das einfach so reinpackt.

Jochen

Dann ist es auch nicht mehr großartig, genau. Das ist halt, ja.

Dominik

Insbesondere, wenn man dann diese Pidentic-Validation macht oder sowas, ja.

Jochen

Ja, ja. Ja, also das ist auch noch interessant. Also es gibt ja dieses Django Ninja oder so.

Jochen

Ja, okay, das ist komisch.

Jochen

Ja?

Jochen

Ja, also ich finde schon.

Jochen

Okay. Ja, das habe ich auch noch nicht verwendet, also müsste ich mal vielleicht.

Jochen

Ja, ansonsten, äh, was habe ich denn noch so? Ach ja, die LLM-Geschichte, das war ja die vorletzte Episode.

Jochen

Ja, ja.

Jochen

Da haben wir uns also quasi gerade mit beschäftigt.

Jochen

Die eskaliert auch immer noch so munter von sich.

Jochen

Und wird immer, äh, äh, da gibt es auch jede Menge Neuigkeiten. Kann man auch nicht alles abdecken, ist einfach so viel, was da passiert.

Jochen

Aber, äh, ne, ne Haupt-, ne, ne, äh, wichtige neuere, äh, neuere Geschichte, die da passiert, ist halt irgendwie, und das will ich mir unbedingt angucken, hab's noch nicht geschafft.

Jochen

Aber, was man jetzt machen kann, ist halt, äh, tatsächlich, äh, irgendwie mit, mit Lama 2, was halt jetzt so richtig offiziell irgendwie, ähm, dafür, äh, gedacht ist, dass man damit Dinge machen kann.

Jochen

Das kann man halt super feintunen, gerade die kleineren Modelle kann man super feintunen auf irgendwelche Problematiken.

Jochen

Und dann braucht man halt nur ein paar tausend Beispiele für irgendwas und kann da halt dann, ohne dass man die Daten zu OpenAI schickt oder sonst irgendwo hin, äh, irgendwie Dinge damit machen.

Jochen

Mit guten Ergebnissen.

Jochen

Mit sehr guten Ergebnissen. Es gibt ganz viele Leute, die davon total schwärmen und die sagen, das ist total super.

Jochen

Irgendwie, wenn du da in der Richtung irgendwas machen kannst, lass alles stehen und liegen und mach das, weil das ist halt so großartig.

Jochen

Ja.

Jochen

Ja, okay.

Jochen

Daher, ähm, ja.

Jochen

Hab ich mir auch schon gedacht und gedacht, nee, mach ich nicht, aber.

Jochen

Ja.

Jochen

Ich würd gern.

Jochen

Naja.

Jochen

Ja.

Dominik

Weißt du, was ich rausgekommen bin?

Dominik

Von dem, wofür man LLMs noch wunderbar benutzen kann, wo ich sehr überrascht war?

Dominik

Nee.

Dominik

Sag mal.

Dominik

Musiktipps.

Dominik

Musiktipps?

Dominik

Ja.

Dominik

Okay.

Dominik

Das fand ich hervorragend.

Dominik

Also, also, fast mit das Beste, was du hast.

Dominik

Du hörst irgendwas Schönes und gibst dann halt so das, was du magst.

Dominik

Aber als Kontext, wenn du sagst, hey, ich hör das und das gerne, hast du ein paar gute Tipps, was rauskommt.

Dominik

Also, ich fand die Tipps hervorragend.

Dominik

Ich hab so ein paar Sachen gefunden, die ich noch nicht kannte und so.

Dominik

Cool.

Jochen

Hab ich noch nicht verwendet für, aber klingt, äh, klingt gut.

Jochen

Ja, muss ich mal probieren.

Anna-Lena

Ich glaube, dazu gab es tatsächlich sogar einen Talk genau mit der Topic bei Europython.

Anna-Lena

Ach, echt?

Anna-Lena

LLMs for Music Recommendation.

Anna-Lena

Ja.

Anna-Lena

Ach, witzig.

Anna-Lena

Toll.

Anna-Lena

Ich hab, ich hab's nicht gesehen.

Anna-Lena

Ich dachte gerade, du hättest den gehört.

Anna-Lena

Nein, hab ich tatsächlich nicht gesehen.

Anna-Lena

Sonst hätte ich den auch jetzt empfohlen.

Anna-Lena

Aber den hab ich tatsächlich verpasst.

Anna-Lena

Die sind jetzt alle auf YouTube seit, seit einer Woche, glaube ich.

Anna-Lena

Ah, gut.

Dominik

Okay, also auch noch, das musst du auf jeden Fall auch in die Show-Notes, ne?

Dominik

Dann können wir nochmal die Europython-Talks verlinken.

Dominik

Ja.

Dominik

Genau.

Jochen

Ansonsten, ja, äh, Postkarten.

Jochen

Das 16 ist raus.

Jochen

Ist jetzt zwar nicht so wirklich was mit Python zu tun, aber, äh, vielleicht, äh, ja, die

Jochen

meisten Leute, oder, dürften ja auch irgendwie den Datenbank verwenden und viele verwenden

Jochen

wahrscheinlich Postgres und da hab ich jetzt auch meine, meine ganzen Geschichten geupdatet

Jochen

und, äh, das ging auch problemlos.

Jochen

Also von, von 15 nach 16, wenn der PG-Upgrade einfach drüberlaufen lässt, das hat einfach

Jochen

immer so funktioniert, auch mit 14.

Jochen

Also es war ein sehr problemloses Update.

Jochen

Mhm.

Jochen

Für mich.

Jochen

Und, ähm, ja.

Jochen

Hat auch eine Menge nette Sachen drin.

Jochen

Boah.

Jochen

Also ansonsten, weiß nicht, habt, habt ihr vielleicht noch irgendwas, was euch einfällt,

Jochen

was man mal erwähnen könnte, was in letzter Zeit Interessantes passiert ist?

Anna-Lena

Ich bekomme vor allem durch die Arbeit viel mit über die Large-Language-Modelle, aber

Anna-Lena

du hast ja auch gerade so gesagt, das sprengt absolut den Rahmen.

Anna-Lena

Wir haben da auch einen Channel zu bei der Arbeit, ähm, und da sind täglich mehrere

Anna-Lena

Posts, also da kommt man überhaupt nicht hinterher, weder sich das alles anzulesen noch, also

Anna-Lena

ich bekomme die großen Releases mit von den Modellen, aber darüber hinaus finde ich

Anna-Lena

schon fast, könnte ich fast den halben Tag damit verbringen, Artikel zu lesen zu den

Anna-Lena

verschiedenen Dingen, die da passieren.

Anna-Lena

Ja, ja.

Anna-Lena

Das ist halt mal so.

Jochen

Ja, ja, ist aber die Frage, was dann die richtige Strategie ist, ob man irgendwie dann mitmacht

Jochen

oder sagt, naja gut, jetzt warten wir erstmal ein paar Monate, bis sich das alles so ein

Jochen

bisschen gesettelt hat und dann die Sachen, die halt dann als sich als, äh, das wird

Jochen

bleiben oder es nicht so, äh, es nicht nur Hype irgendwie erwiesen haben, da, sich das

Jochen

dann nochmal anzugucken.

Jochen

Ich weiß es nicht.

Jochen

Ah.

Jochen

Schwierig.

Jochen

Schwierig.

Jochen

Ja.

Jochen

Äh, ja gut, aber ansonsten.

Dominik

Ja, ich würde, meine News sind alle so, gerade nicht so technisch, natürlich, deswegen

Dominik

skippen wir die für heute einfach mal.

Dominik

Okay.

Dominik

Jut, jut, jut.

Jochen

Ja, dann können wir ja eigentlich direkt zum Thema übergehen, nahtlos.

Dominik

Wollen wir mit Environment anfangen oder mit Packaging?

Dominik

Ich würde sagen Environment, oder?

Dominik

Ja.

Dominik

Hätte ich auch gesagt, ja.

Dominik

Okay.

Anna-Lena

Ähm, wollt ihr auch über das Python Version Management reden?

Anna-Lena

Das hatte ich auch als Kategorie noch mit aufgenommen.

Jochen

Ja, also Finte gehört auch dazu und das überschneidet sich.

Jochen

Das überschneidet sich ja teilweise auch, weil auch PyEnv ja Virtual Environments macht

Jochen

und so, wenn man, wenn man will.

Jochen

Ja.

Jochen

Ja.

Dominik

PyEnv ist vielleicht ein guter Anstieg, also weil ich würde tatsächlich mit PyEnv wahrscheinlich

Dominik

anfangen auf so einem System, um Python selber zu installieren.

Dominik

Ich würde das halt nicht irgendwie über die Website machen, sondern tatsächlich irgendwie

Dominik

versuchen, PyEnv irgendwie zu klonen und dann in den Pfad zu packen und dann halt verschiedene

Dominik

PyThons installieren zu können.

Dominik

Das funktioniert ja leider nicht so gut auf, auf Windows-Maschinen, sondern halt nur auf

Dominik

POSIX.

Dominik

Es gibt aber so ein Fork.

Dominik

Der das auch für Windows macht, der in den letzten Jahren so ein bisschen besser geworden

Dominik

ist und es ist jetzt einigermaßen benutzbar, aber es hat halt nicht so schöne Sachen auch

Dominik

drin wie Minikonda oder sowas, was ja bei der POSIX ganz gut funktioniert.

Dominik

Ich weiß nicht, ob ihr.

Anna-Lena

Bin auch ganz froh, dass ich meistens mit einer Linux-Maschine arbeiten kann und nicht

Anna-Lena

unbedingt auf Windows zurückgreifen muss, da ist es häufig ein bisschen leichter, alles

Anna-Lena

aufzusetzen.

Dominik

Ja, also es ist in den letzten Jahren ein bisschen besser geworden.

Dominik

Ich muss das halt recht häufig machen, aber es geht mittlerweile.

Dominik

Also ja, ich weiß nicht.

Dominik

Vielleicht.

Dominik

Das geht ja auch an mit PyEnv.

Dominik

Also ich würde tatsächlich PyEnv installieren und dann mit PyEnv die Python-Version installieren,

Dominik

die das Projekt gerade haben will.

Dominik

Genau.

Anna-Lena

Ich weiß auch gar nicht, ob viele Einsteiger bei eurem Podcast dabei sind.

Anna-Lena

Also vielleicht können wir auch immer noch mal sagen, was die Tools überhaupt machen.

Anna-Lena

Ja.

Anna-Lena

So zur Vollständigkeit.

Anna-Lena

Sonst sind sie alle wieder direkt aufgeschaltet.

Anna-Lena

Oh ja.

Anna-Lena

Das Feedback habe ich schon ein paar Mal bekommen.

Anna-Lena

Das war aber ganz schön schwierig.

Anna-Lena

Ja, genau.

Anna-Lena

Also ich hatte am Anfang überlegt, als ich mich mit der Thematik der Art und Weise beschäftigt

Anna-Lena

habe.

Anna-Lena

Das war ganz schön schwierig, ja.

Anna-Lena

Ja, genau.

Anna-Lena

Also ich hatte am Anfang überlegt, als ich mich mit der Thematik der Art und Weise beschäftigt

Anna-Lena

habe.

Anna-Lena

Das war ganz schön schwierig, ja.

Anna-Lena

Also ich hatte am Anfang überlegt, als ich mich mit der Thematik der Art und Weise beschäftigt

Anna-Lena

habe.

Anna-Lena

Also ich hatte am Anfang überlegt, als ich mich mit der Thematik der Art und Weise beschäftigt

Anna-Lena

habe, ob es Kategorien gibt, weil bei Python gibt es eben unheimlich viele Tools, die alle

Anna-Lena

verschiedene Dinge können und manche können mehrere Sachen und eine bestimmte Kategorie

Anna-Lena

ist eben Python Version Management, sprich, dass man ein Tool hat, das einem erlaubt,

Anna-Lena

verschiedene Python-Versionen herunterzuladen oder zu installieren, ohne dass man das manuell

Anna-Lena

machen muss und dann, dass man eben auch leicht zwischen den Versionen wechseln kann.

Anna-Lena

Und PyEnv ist so das bekannteste Tool, glaube ich, dafür und auch eines der wenigen Tools,

Anna-Lena

das es wirklich macht, viele, die das, also zum Beispiel Rye ist so ein Multi-Purpose-Tool,

Anna-Lena

was viele verschiedene Dinge kann, aber sonst die meisten können gut mit PyEnv interagieren,

Anna-Lena

also man kann beides zusammen nutzen, aber PyEnv ist, glaube ich, so das Tool und auch

Anna-Lena

ziemlich leicht zu benutzen, wenn man es erst mal installiert hat, gibt es einfache Befehle,

Anna-Lena

womit man dann einfach spezifizieren kann.

Anna-Lena

Ich möchte gerne Version 3.10.4 und dann installiert es die Version und man kann leicht

Anna-Lena

zwischen der und anderen Versionen hin und her wechseln.

Jochen

Ja, also ich brauche es auch genau, also lokal, wenn ich irgendwie auf einer Entwicklungsmaschine

Jochen

unterwegs bin, da ist das halt etwas, was ich auch ständig brauche, weil viele, also

Jochen

ich arbeite ja auch für unterschiedliche Kunden mit unterschiedlichen Python-Versionen

Jochen

teilweise und wenn man halt ein Virtual Env mit einer bestimmten Python-Version haben

Jochen

möchte, dann ist halt PyEnv genau das, was man dann an der Stelle haben möchte.

Jochen

Ich glaube, es gibt noch ASDF zum Beispiel.

Jochen

Das macht das dann halt nicht nur für Python, sondern halt auch noch für quasi Node.js und

Jochen

für Ruby oder sowas.

Jochen

Keine Ahnung, habe ich dann nicht probiert, weil den Anwendungsfall habe ich so selten,

Jochen

dass ich das nicht brauche.

Jochen

Und genau, es macht halt auch so Dinge wie, also PyEnv macht auch noch so Sachen wie, man

Jochen

kann halt Minikonda, also es gibt ja auch so ganz unterschiedliche Python-Ökosysteme,

Jochen

also je nachdem, also wenn man im Data-Science-Umfeld unterwegs ist, da ist halt

Jochen

eher so Conda, das Tool, was man benutzt, um halt Applikigkeiten zu installieren und

Jochen

vielleicht will man halt dann eher so die Minikonda-Python-Version haben, was wieder

Jochen

was anderes ist als diese komplette Anaconda-Distribution, das habe ich auch schon ganz oft gesehen, dass

Jochen

Leute mit der anfangen und das dann halt für Sachen verwenden, wo ich denken würde, oh

Jochen

nein, da brauchst du eigentlich Minikonda und irgendwie ein Virtual Env oder so, kannst

Jochen

das komplette Ding, ist halt, ja.

Dominik

Das ist oft halt so ein Einstiegspunkt, weil das halt oft in der Data-Science-Welt irgendwie

Dominik

sehr empfohlen wird als Entry-Point.

Dominik

Ja, ja.

Dominik

Kann man mit PyEnv auch die ganzen Dialekte installieren?

Dominik

Also sowas wie A-Python oder H-Python oder sowas?

Jochen

Das weiß ich nicht, also PyPy geht, ich glaube, Logel geht, aber…

Anna-Lena

Habe ich tatsächlich auch noch nie ausprobiert.

Anna-Lena

Keine Ahnung.

Anna-Lena

Ich habe auch gerade gedacht, dass so über Conda, Minikonda, Anaconda könnt ihr wahrscheinlich

Anna-Lena

auch sogar eine ganze Semper-Art-Folge machen.

Jochen

Ja, wahrscheinlich, oh Gott, du musst nicht zu tief da abschweifen, weil, ja.

Anna-Lena

Genau, ja, Conda ist ja wirklich so ein ganz eigenes Ökosystem, ein bisschen, wo man dann

Anna-Lena

doch mal, das lohnt sich schon, finde ich, tiefer einzusteigen, damit man zumindest mal

Anna-Lena

einmal versteht, was der Unterschied zwischen Conda, Anaconda, Minikonda und so weiter ist.

Anna-Lena

Aber es ist schon wirklich ein riesengroßes Themengebiet.

Dominik

Vielleicht sagen wir das nochmal kurz, wenn wir schon jetzt bei Conda sind, dann bitte.

Dominik

Vielleicht haben wir das einmal so kurz so als Elevator.

Jochen

Ja, also aus meiner Sicht, der Hauptunterschied ist, dass beim Virtual Env, bei dem normalen

Jochen

Virtual Env in Python, da ist der Interpreter halt nicht mit dabei, sondern man verwendet

Jochen

halt alle Virtual Envs.

Jochen

Wir verwenden den gleichen Interpreter, die halt mit dem gleichen Interpreter erzeugt worden

Jochen

sind.

Dominik

Vielleicht nochmal ganz, ganz anstrengend, also ein Virtual Env ist tatsächlich eine

Dominik

virtuelle, erzeugte Umgebung für das Python, für dein eigenes Projekt.

Jochen

Ja, also es ist so ein bisschen Magie, dass man die Pfade umbiegt, aber das hat den Effekt,

Jochen

dass man alles, was man da drin, also wenn man jetzt irgendwas mit PIP-Install irgendwas,

Jochen

eine Abhängigkeit installiert, dass die halt nur in dem Environment tatsächlich installiert

Jochen

ist und nicht in allen, die man sonst irgendwie, also sonst halt nicht, sodass ich halt, wenn

Jochen

man jetzt mehrere Projekte hat, dann kommen die sich ja sonst in die Quere, wenn man halt

Jochen

in dem einen irgendwie, weiß ich nicht, Django 3 hat und im anderen Django 4, dann, die werden

Jochen

sozusagen im gleichen, ja, auf dem gleichen Isolationslevel, dann würde man ja quasi

Jochen

die Abhängigkeiten vom einen kaputt machen, wenn man im anderen was ändert und um das

Jochen

voneinander zu isolieren, nimmt man halt Virtual Envs, üblicherweise.

Jochen

Und ja, das ist halt sozusagen, Virtual Env ist so der, die leichtgewichtigste Art von

Jochen

Isolation, weil der Interpreter ist, wenn man jetzt zwei unterschiedliche Projekte mit

Jochen

zwei unterschiedlichen Virtual Envs hat, ist man halt noch gleich, aber die Pakete, die

Jochen

installiert sind, sind halt gleich.

Dominik

Genau, das ist ja auch ein Bild, ne, Python-M, Venv und dann Sachen.

Jochen

Genau, bei Conda ist das anders, da ist der Interpreter tatsächlich mit dabei, das heißt,

Jochen

auch die Interpreter sind voneinander getrennt und man kann mit Conda nicht nur Python-Pakete

Jochen

installieren oder Python-Reels, sondern man kann halt auch andere Geschichten installieren,

Jochen

das heißt, man kann zum Beispiel, das ist halt, deswegen ist das auch bei Data Science

Jochen

immer so ein, so ein, so ein, aber das braucht man halt einfach häufig, häufig hat man

Jochen

halt nicht so einen direkten Zugang zu den Maschinen, auf denen man irgendwie Dinge macht

Jochen

und dann kann es schon mal sein, dass man dann eine alte LibC hat oder sonst irgendwas

Jochen

und, oder alte Bibliotheken, die man nicht verwenden möchte und man kommt halt, man

Jochen

hat ja gar nicht die Berechtigung, das sozusagen auf Systemlevel zu ändern und dann kann man

Jochen

das mit Conda aber meistens schon irgendwie hinkriegen, dass man das halt dann, dass man

Jochen

dann halt eine eigene Grundlagenbibliothek irgendwie mit installiert und die dann verwendet,

Jochen

wird, statt dem, was auf dem System drauf ist, das geht mit Conda, das geht mit PIP nicht

Jochen

und daher ist das halt etwas, was man halt, wenn man diese Probleme hat, dann, also wenn

Jochen

man Webentwicklung macht, hat man diese Probleme normalerweise nicht, aber bei Data Science

Jochen

kann das durchaus schon mal vorkommen und dann ist Conda da einfach das Ding, womit

Jochen

man Sachen hinkriegt, die dann mit PIP nicht gehen.

Dominik

Ja, da sind wir schon direkt drin, also es gibt ja PIP, was macht PIP?

Dominik

Pakete von API installieren?

Jochen

Ja, genau, vom Cheese-Shop und ja.

Dominik

Und Conda installiert jetzt auch irgendwie externe Binaries noch und die gar nicht Python

Dominik

sind und so und da gibt es noch ein anderes Tool für, das man häufiger nutzt, oder?

Jochen

Noch eine Isolationsschicht weiter, oder noch weiter isoliert, also ein Tool, also ich würde

Jochen

sagen, das nächste Tool in der Reihe wäre halt Docker.

Jochen

Oder PIPX.

Jochen

PIPX macht das gleich wie PIP, nur das ist halt für das, was du installierst, ein eigenes

Jochen

Virtual Env erzeugt direkt.

Dominik

Ja, oder es macht aber auch externe Sachen, also Sachen, die sich auf PIP einlegen und

Dominik

da überziehen kannst.

Dominik

Ja, okay, gut, das wusste ich gar nicht.

Anna-Lena

Ich habe gerade noch überlegt, vielleicht noch einmal zum Anaconda und Miniconda, die

Anna-Lena

Namen sagen das ja schon so ein bisschen, dass Anaconda wirklich riesig ist, das nimmt

Anna-Lena

auch unheimlich viel Speicherplatz ein, weil super viele Python-Packages, wenn man Anaconda

Anna-Lena

installiert, kommt das mit Python, dann ist Conda dabei, was ja der Package-Manager ist

Anna-Lena

von dieser Conda-Welt und aber auch super viele Packages, die man gar nicht unbedingt

Anna-Lena

braucht und dementsprechend, wenn man...

Anna-Lena

jetzt nichts dagegen hat, die Packages, die man braucht wirklich selbst zu installieren

Anna-Lena

und auch nicht unbedingt so viel freien Speicher hat, dann ist Miniconda eigentlich immer eine

Anna-Lena

gute Variante, was mit Python kommt, schon mit einer Version und eben mit Conda, mit

Anna-Lena

dem Package-Manager, sodass man die Pakete dann installieren kann, die aber von dem Conda-Index

Anna-Lena

kommen, dann nicht von PyPI.

Jochen

Ja, ja, also ich denke, wenn man jetzt halt noch härter isolieren will als mit Conda,

Jochen

dann wäre halt Docker das Ding, was man auch verwenden kann, was halt viele benutzen,

Jochen

ja.

Dominik

Ja, das ist halt langsam, aber ich finde Conda so ein bisschen intrusiv, weil Conda relativ

Dominik

hart immer den Pfad direkt angreift, zumindest auf ein System und dann, ja, muss man immer

Dominik

so ein bisschen aufpassen.

Dominik

Ich glaube, also...

Dominik

Ja, muss man bei all diesen Dingen...

Dominik

Ja, generell, der Pfad ist immer so das, wofür viele Anfänger halt drüber stolpern,

Dominik

wenn halt irgendwie im Pfad Dinge in der falschen Reihenfolge gesetzt sind und dann halt nicht

Dominik

das Python läuft, was wir eigentlich denken, was laufen sollte und sowas, das ist so ein

Dominik

bisschen hampelig.

Anna-Lena

Ja, ich habe auch mit Conda also anfangs immer angefangen, weil ich es praktisch fand, weil

Anna-Lena

so viel schon damit kam, aber mit der Zeit habe ich auch dazu gewechselt, die Python-Version

Anna-Lena

selbst zu installieren und nicht mehr auf Conda zurückzugreifen, auch weil ich das teilweise

Anna-Lena

verwirrend fand, dann manche Packages kann man gut mit Conda installieren, andere wieder

Anna-Lena

nicht.

Anna-Lena

Und dann fand ich es tatsächlich leichter, langfristig einfach die Dinge mit pip zu machen.

Anna-Lena

Aber ich weiß, dass viele Conda, vor allem wenn sie jetzt nicht aus dem Computer-Science-Bereich

Anna-Lena

kommen, doch recht hilfreich finden.

Anna-Lena

Mhm.

Anna-Lena

Ja.

Dominik

Und ich weiß, dass die Leute, die mit pip auch die richtigen Build-Tools halt irgendwie

Dominik

noch installiert haben als Dependencies und je nachdem, was für Dependencies dabei sind,

Dominik

damit das gebaut werden kann, brauchen halt, weiß ich nicht, von C-Libraries über Haskell

Dominik

oder sowas und das halt manchmal so ein bisschen anstrengend sein kann, wenn man nicht weiß,

Dominik

was da passiert.

Jochen

Ja, das hat alles so seine Tücken.

Jochen

Ja, es ist leider kompliziert.

Jochen

Ich weiß auch nicht, ich glaube nicht, dass man da, ich würde sagen, immer wenn jemand

Jochen

fragt, ja, was soll ich denn nehmen, dann muss man eigentlich immer antworten, ja, hängt

Jochen

davon ab, was man macht.

Jochen

Und dann kann ich, ja, und das ist natürlich so ein bisschen eine doofe Situation, weil

Jochen

muss man lange erklären und so.

Jochen

Ja.

Anna-Lena

Ja, häufig finde ich es auch hilfreich, also ich arbeite ja immer an verschiedenen Kundenprojekten,

Anna-Lena

dementsprechend auch in verschiedenen Teams, dass die Teams sich ja häufig auch auf eine

Anna-Lena

Lösung einigen, sodass sie sich dann gegenseitig helfen können, dass dann nicht jeder sein

Anna-Lena

eigenes Setup hat, sondern dass sie sich auch vielleicht auf einen Editor einigen, den dann

Anna-Lena

alle ähnlich aufsetzen können, das ist mir schon häufiger begegnet.

Dominik

Also da würde ich sagen, da gibt es immer große Widerstände, wenn man sich auf einen

Dominik

Editor einigen kann.

Dominik

Also es ist ganz gut, wenn die Sachen editoragnostisch funktionieren, also.

Anna-Lena

Ja, das stimmt, aber manchmal kann es auch ganz hilfreich sein, also ich finde, es kommt,

Anna-Lena

also es kommt wirklich sehr auf die Kundenprojekte auf.

Dominik

Ja, solange alle Leute das so machen, wie ich das so richtig halte, ist das natürlich

Dominik

so.

Dominik

Ja.

Dominik

Ja.

Dominik

Ja, ja.

Dominik

Genau.

Dominik

Wo waren wir denn überhaupt?

Dominik

Genau.

Dominik

Wir haben Python installiert und wollen jetzt halt ein Environment haben und dann gibt es

Dominik

halt verschiedene Sachen, wie man das macht und wir haben jetzt gerade.

Jochen

Also was ich gerne noch zu Python sagen würde, also ich benutze das halt für Entwicklungsmaschinen,

Jochen

ne.

Jochen

Da habe ich halt die Python Version, produktiv mache ich das eigentlich nicht, also nicht,

Jochen

wenn ich es unter Kontrolle habe, wenn andere Leute das machen, die machen manchmal auch

Jochen

andere Sachen, ich habe auch schon mal Python verwendet, um halt dann auf Produktivmaschinen

Jochen

Maschinen eine Python-Version zu installieren

Jochen

oder so, aber das mache ich jetzt eigentlich

Jochen

nicht mehr, sondern ich installiere da hart,

Jochen

ich kompiliere Python. Also, das ist auch so was.

Jochen

Hätte ich nicht gedacht. Also, wenn mir jemand früher

Jochen

gesagt hätte, also, in

Jochen

zehn Jahren, weißt du, wie du da Python installieren wirst?

Jochen

Du wirst es runterladen und auf der Maschine

Jochen

kompilieren. Ich dachte so, nee, das

Jochen

kann nicht sein. Doch, ist aber so.

Jochen

Also, das ist tatsächlich die von mir momentan

Jochen

präferierte Art, Python

Jochen

auf ein Produktivsystem zu installieren, ist halt

Jochen

selber zu kompilieren.

Dominik

Postcode und bauen, okay.

Dominik

Und auch nicht Python.

Anna-Lena

Ich habe Python auch selten in Kundenprojekten

Anna-Lena

benutzt, aber wenn man es mal ausprobieren

Anna-Lena

möchte, finde ich das auch ganz

Anna-Lena

nett, sich einfach mal die neueste Python-Version

Anna-Lena

runterzuladen damit. Dann kann man das

Anna-Lena

Tool mal ausprobieren und dann mal gucken, was

Anna-Lena

die neue Python-Version so

Anna-Lena

besonders macht oder mitbringt.

Jochen

Beta-Version oder Release-Kandidates oder so, das ist immer

Jochen

sehr nett dafür. Genau.

Jochen

Ich überlege gerade, ob ich das cool finde, dass ich das selber

Jochen

kompiliere im Produktivsystem.

Dominik

Warum nicht Python für ein Produktivsystem?

Jochen

Naja, deswegen, weil ich,

Jochen

der Grund, warum ich damit dann aufgehört habe,

Jochen

ist, dass ich dann irgendwie

Jochen

nach längerer Zeit gemerkt habe, dass manche Projekte

Jochen

halt eine alte Python-Version

Jochen

verwendet haben,

Jochen

wo ich das gar nicht mehr gedacht hätte, dass sie das tun.

Jochen

Und das aber alles weiter funktioniert hat.

Jochen

Und ich das aber gar nicht wollte.

Jochen

Und dann habe ich gesagt,

Jochen

ah, ist mir doch lieber, dass halt,

Jochen

weil ich hätte sowieso gerne

Jochen

immer die gleichen Python-Versionen für alle.

Jochen

Aber den Fall, dass ich das unterscheiden will,

Jochen

den habe ich gar nicht. Aber es kann ja mal sein,

Dominik

dass du irgendwie so eine harte obere Schranke hast,

Dominik

weil irgendein Projekt auf eine völlig veraltete

Dominik

Library dependet, die halt schade ist, aber die halt

Dominik

da irgendwie jetzt drin hängt. Und jetzt musst du halt

Dominik

eine alte Version nehmen. Und dann...

Jochen

Ja, passiert bei meinen Sachen nie.

Dominik

Okay, ja, okay. Also ich habe so ein paar

Dominik

Kunden, geht das so? Ja, ja, klar.

Dominik

Ja, also der Vorteil von PyInf ist halt,

Dominik

ich kann halt einfach auch die Version einfach dann installieren

Dominik

und wenn in meiner Production Pipeline

Dominik

PyInf halt drin ist, dann ist das halt ein leichtes

Dominik

mal eben da auch mehrere Projekte

Dominik

mit unterschiedlichen Python-Versionen auf einem Produktivsystem

Dominik

laufen zu haben. Was halt, wenn ich das alles selber

Dominik

kompilieren muss, wieder Hassel ist,

Dominik

muss ich das alles selber konfigurieren. Das ist ja genau das,

Dominik

warum ich ja solche Tools mit möchte.

Dominik

Ja, siehste? Kommt drauf an.

Dominik

Ja, leider.

Jochen

Tja, ja.

Jochen

Ja, also...

Anna-Lena

Da wären wir bei der Hoffnung, dass es irgendwann das eine

Anna-Lena

Tool gibt, was alles macht. Ja.

Anna-Lena

Sodass man dann nicht mehr diskutieren muss.

Dominik

Da gibt es ja gerade tolle Versuche drin, das zu lösen

Dominik

irgendwie, ne? Also man hört immer

Dominik

Rust an der Stelle und ich würde auch sagen, dass tatsächlich

Dominik

vielleicht gar nicht so eine doofe Idee ist.

Dominik

Ich hätte das gerne, dass Python selber das so irgendwie anbietet.

Dominik

Fände ich irgendwie cool, weil diese ganzen Tools,

Dominik

die es von außen gibt, die sind alle so...

Dominik

Also du hast eben Rye erwähnt, das ist das

Dominik

Tool von Armin Runacher, was auch in Rust geschrieben ist,

Dominik

der jetzt für Rust macht, dass so seine Opinion

Dominik

ist, wie man so Projekte ein...

Dominik

neu baut. Ehrlicherweise,

Dominik

also ich bin da so ein bisschen anderer Meinung,

Dominik

wie man das richtig machen würde. Also ich mache es anders,

Dominik

mein Taste ist anders. Aber das ist eigentlich

Dominik

ja so was, was es halt...

Dominik

Ja, was man halt will.

Dominik

Du hast vielleicht noch den großen Überblick von Tools,

Dominik

die man dafür verwenden kann.

Anna-Lena

Ja, genau. Also

Anna-Lena

bei Environment Management vielleicht nochmal wieder

Anna-Lena

als Einführung, falls Leute dabei sind, die

Anna-Lena

da noch nicht sich so

Anna-Lena

gut mit auskennen. Also wenn man beispielsweise an

Anna-Lena

mehreren Projekten gleichzeitig arbeitet und

Anna-Lena

dann kann das immer mal wieder

Anna-Lena

vorkommen, dass Projekte das gleiche Package brauchen,

Anna-Lena

aber in einer anderen Version. Und man möchte die Packages

Anna-Lena

eigentlich nicht direkt auf der Maschine mit

Anna-Lena

den

Anna-Lena

nativen Dingen installieren,

Anna-Lena

sondern man... Es ist immer

Anna-Lena

ganz schön, wenn man das isolieren kann. Dann kann man alle

Anna-Lena

Dependencies installieren, die man für das

Anna-Lena

Projekt braucht, ohne dass man irgendwas anderes kaputt

Anna-Lena

macht. Und dafür kann man Virtual

Anna-Lena

Environments nutzen.

Anna-Lena

Es gibt auch einen anderen Ansatz, aber die meisten

Anna-Lena

Tools benutzen Virtual Environments und erstellen

Anna-Lena

dann eben kleine isolierte Umgebungen, wo man dann

Anna-Lena

über PIP oder Conda, wie auch immer sich die

Anna-Lena

Pakete installieren kann. Und Python hat zwei Tools,

Anna-Lena

die wirklich nur für Environment Management gedacht

Anna-Lena

sind. Das ist einmal Venv. Das kommt auch direkt mit,

Anna-Lena

wenn man Python installiert. Das braucht man also nicht

Anna-Lena

zusätzlich installieren. Und Virtual Env. Ich habe beides

Anna-Lena

schon benutzt. Es ist beides recht ähnlich. Virtual Env kann

Anna-Lena

auch ein paar mehr Dinge machen als

Anna-Lena

Venv. Aber

Anna-Lena

ich könnte da jetzt nicht

Anna-Lena

eins groß über das andere empfehlen.

Anna-Lena

Vor allem, weil wenn man

Anna-Lena

noch mehr machen möchte, beispielsweise man

Anna-Lena

ein Package erstellt, dann ist es häufig hilfreich,

Anna-Lena

eins von den Tools zu benutzen, die eben auch

Anna-Lena

noch andere Dinge können. Aber ich

Anna-Lena

habe häufiger schon mal, wenn ich einfach nur ein Virtual Environment

Anna-Lena

erstellt,

Anna-Lena

erstellen wollte, Venv benutzt oder Virtual Env,

Anna-Lena

um das schnell machen zu können.

Dominik

Also ich benutze versuchst dann immer noch Virtual Env

Dominik

Wrapper, weil das halt dann irgendwie

Dominik

nur so drei oder vier...

Jochen

Ja, da gibt es ja noch ein paar interessante Shell-Aliasse, die man dann

Dominik

zusätzlich hat. Ehrlicherweise

Dominik

auf Windows, ich muss ja, wenn ich Windows benutze,

Dominik

ist das ja mal Quatsch. Da gab es irgendwie Virtual Env Wrapper PowerShell,

Dominik

das irgendwie fürchterlich war. Und ich habe es mir einfach selber geschrieben, was

Dominik

eigentlich nur ein Wrapper um Venv ist. Und du willst halt

Dominik

sowas haben wie MK Virtual Env oder

Dominik

RM Virtual Env oder LS Virtual Env,

Dominik

um halt deine Virtual Envs anzuzeigen, die du hast

Dominik

und die du halt einfach dann aktivieren kannst mit

Dominik

sowas wie WorkOn. Also ich finde das Schönste

Dominik

an Virtual Env Wrapper ist WorkOn.

Dominik

Du gehst halt einfach in dein Projekt

Dominik

und gibst ein WorkOn in der Shell

Dominik

und die Env ist aktiviert, ohne dass du irgendwas machen musst

Dominik

und das ist halt immer convenient, das zu tun.

Jochen

Ah ja, benutzt aber einer von euch

Jochen

eigentlich, genau, fürs Erzeugen

Jochen

oder Verwalten von Virtual Envs PyEnv,

Jochen

weil das könnte man ja auch machen.

Dominik

Also ich habe es... Ja,

Dominik

nein, also ich benutze es nicht mehr.

Anna-Lena

Ich habe es noch nie benutzt dafür.

Jochen

Okay, ich habe es mal dafür benutzt und

Jochen

mache es aber nicht mehr, weil

Jochen

das ist...

Jochen

Damit hatte sich

Jochen

das erledigt, als ich dann von ZSH

Jochen

auf Fisch umgestellt bin.

Jochen

Die Shell und jetzt verwende ich halt zum Verwalten

Jochen

der Virtual Envs Virtual Fisch,

Jochen

was ich auch noch empfehlen kann, wenn man die Fischshell hat.

Jochen

Ja.

Jochen

Genau, nee, verwende ich auch nicht mehr.

Dominik

Ja genau, also ich benutze tatsächlich für Erstellen

Dominik

von Virtual Envs meistens Poetry.

Dominik

Da wird gleich ein großer Aufschrei kommen,

Dominik

weil da gibt es große Diskussionen um dieses Tool

Dominik

und ich benutze es tatsächlich immer noch und

Dominik

ja, weil das in den Projekten, ich eh eine

Dominik

PyProject Hummel habe, wo die Dependencies drin definiert

Dominik

sind, dann mit Poetry relativ easy geht

Dominik

und wenn ich mal selber eine eigene Env kurz

Dominik

brauche, dann einfach mit dem Virtual Env Wrapper

Dominik

einfach mkvirtualenv Name

Dominik

work on, fertig.

Anna-Lena

Ja, das ist auch das, was ich am meisten gesehen habe.

Anna-Lena

Wobei für Einsteiger, die jetzt

Anna-Lena

wirklich noch nie ein Package gemacht haben,

Anna-Lena

ist das häufig nochmal schwierig,

Anna-Lena

wenn man dann da plötzlich so ein PyProject

Anna-Lena

Atommel-File rumfliegen hat und überhaupt

Anna-Lena

nicht weiß, wirklich was das macht und wofür man

Anna-Lena

das braucht. Da kann es schon ganz hilfreich sein,

Anna-Lena

einfach mal nur diese Tools zu benutzen.

Anna-Lena

Genau. Wie Venv. Ja, das ist,

Dominik

über die PyProject Hummel müssen wir glaube ich später auch nochmal sprechen,

Dominik

weil es da ja auch verschiedene Ideen gibt, wie man da

Dominik

strukturiert und da bin ich auch mit so Sachen, die Poetry

Dominik

zum Beispiel macht, nicht so einverstanden und

Dominik

da gibt es ja so ein paar Peps, die glaube ich, das

Dominik

relativ besser strukturiert

Dominik

hätten, glaube ich, ja.

Anna-Lena

Es gibt auch so ein paar Tools, du hattest ja gerade

Anna-Lena

einmal gefragt, die nicht nur

Anna-Lena

Environment Management machen, also natürlich auch die, die

Anna-Lena

alle Packaging machen, aber es gibt zum Beispiel PipEnv,

Anna-Lena

das ist auch schon ziemlich

Anna-Lena

alt, das Tool, was

Anna-Lena

einem dann auch noch erlaubt, also das sagt

Anna-Lena

der Name ja auch schon, dass es Pip und

Anna-Lena

Virtual Env zusammenführt

Anna-Lena

und das Ganze nochmal ein bisschen

Anna-Lena

mehr abstrahiert, also noch mehr

Anna-Lena

Funktionalitäten hat und man darüber auch Packages

Anna-Lena

installieren kann, habe ich jetzt

Dominik

relativ komische Dinge.

Jochen

Weiß ich nicht.

Jochen

Inwiefern?

Jochen

Es gab eine Zeit lang

Jochen

war halt da mal so ein bisschen das Problem, was man

Jochen

gehört hat, dass

Jochen

das nicht richtig im Intent wäre oder so,

Jochen

aber ich glaube, das ist nicht mehr so, das ist inzwischen,

Jochen

weil es halt auch eins von den Projekten von,

Jochen

wie heißt der noch,

Jochen

Kenneth Wrights,

Jochen

ursprünglich, aber der hat damit glaube ich nichts mehr zu tun.

Dominik

Hat das abgegeben, also ich glaube, das war mit so einer der Gründe,

Dominik

wo man gesagt hat, so, äh, ii, aber

Dominik

ja, wenn das jetzt in anderen Händen

Dominik

liegt, müsste man das nochmal angucken.

Dominik

Ja, okay, hat auch noch

Dominik

so eine look-up.

Anna-Lena

Ganz viel in diesem Bereich,

Anna-Lena

da kommt es aber auch darauf an, was man gewohnt ist,

Anna-Lena

was die anderen benutzen, wenn man irgendwann

Anna-Lena

anfängt, ein Tool zu benutzen, beispielsweise, wie du das

Anna-Lena

jetzt mit Poetry genannt hast,

Anna-Lena

dann gibt es selten Grund, plötzlich auf ein Tool wie PipEnv

Anna-Lena

umzusteigen, weil

Anna-Lena

ja, also ich könnte jetzt verstehen, wenn man

Anna-Lena

dann ein anderes Packaging-Tool benutzt, also eins,

Anna-Lena

was auch mehrere Dinge kann, aber dass man

Anna-Lena

zurückgeht auf ein Tool, was weniger

Anna-Lena

kann und dann vielleicht nochmal mehr Komplexität

Anna-Lena

hinzufügt, weil PipEnv zum Beispiel

Anna-Lena

hat so eine eigene Konvention, das

Anna-Lena

ist eben schon rausgekommen, bevor

Anna-Lena

es den, ähm, Python

Anna-Lena

Enhancement Proposal gab zu

Anna-Lena

PyProject.toml-Files, dass man die benutzt

Anna-Lena

und die haben eben auch so einen eigenen

Anna-Lena

Weg, das zu machen, also

Anna-Lena

wenn man PipEnv benutzt hat, hat man plötzlich

Anna-Lena

ein Pip-File noch da und auch ein

Anna-Lena

Pip-File.log, ähm,

Anna-Lena

das finde ich teilweise

Anna-Lena

schwierig, weil

Anna-Lena

das nochmal wieder

Anna-Lena

was anderes ist.

Anna-Lena

Also ich glaube, Leute, die PipEnv schon benutzt

Anna-Lena

haben und sich damit auskennen, für die ist das

Anna-Lena

ganz nett, aber ich würde jetzt

Anna-Lena

ich persönlich niemandem empfehlen, sich das

Anna-Lena

anzugucken, sondern dann einfach direkt ein Tool wie

Anna-Lena

Poetry zu benutzen oder Rye,

Anna-Lena

Hedge, wie auch immer.

Dominik

Was haltet ihr von PDM? Oder was hältst du von PDM?

Dominik

Ich hab's

Anna-Lena

selbst noch nie in einem Projekt benutzt, also

Anna-Lena

in einem Kundenprojekt. Ich hab's mal selbst ausprobiert.

Anna-Lena

Darum kann ich da nicht so viel

Anna-Lena

dazu sagen. Ich hab's natürlich mir

Anna-Lena

angeschaut für den Talk und fand's jetzt ganz

Anna-Lena

cool. Ähm, aber

Anna-Lena

ich kenn auch Leute, die darauf schwören, also

Anna-Lena

die das richtig gut finden.

Anna-Lena

Ähm, man muss zu PDM aber sagen,

Anna-Lena

ich hatte das ja vorhin kurz erwähnt, dass die

Anna-Lena

meisten Tools Virtual Environments benutzen

Anna-Lena

und PDM ist eins der wenigen Tools,

Anna-Lena

die einen anderen Ansatz fahren.

Anna-Lena

Und zwar benutzen die so, benutzt

Anna-Lena

das sogenannte Local Environments.

Anna-Lena

Das war auch ein Pep, der jetzt aber abgelehnt

Anna-Lena

wurde. Ähm, und

Anna-Lena

ich glaube, am Anfang gab's darum auch

Anna-Lena

sehr viel Interesse an dem Tool, dadurch, dass es halt diesen

Anna-Lena

anderen Weg benutzt.

Anna-Lena

Bin mir nicht sicher, was jetzt passiert, dadurch, dass es abgelehnt

Anna-Lena

wurde, ob das irgendeinen Unterschied macht.

Dominik

Da diese Local Environments.

Dominik

Ich glaube, es gibt auch so ein paar

Dominik

Tools, die das so machen.

Dominik

Ja, okay. Ich kann das gar nicht.

Jochen

Ja, also ein Ding,

Jochen

was mir nicht so klar war, als ich

Jochen

äh, also früher und jetzt,

Jochen

äh, dass das, dass es viele

Jochen

Dinge gibt, die sehr unterschiedlich, also ich meine, das ist natürlich

Jochen

schön, wenn man ein Tool hat, das irgendwie alles macht, aber

Jochen

ähm, und

Jochen

das war auch einer der Gründe, warum ich irgendwann mal

Jochen

äh, auch eigentlich recht begeistert war von

Jochen

Poultry, dass ich das Gefühl hatte, ich muss

Jochen

nur noch diese eine Geschichte irgendwie

Jochen

benutzen und kann damit eigentlich alles machen, was ich

Jochen

so irgendwie tun will.

Jochen

Und dann merkt man aber mit der Zeit so, naja,

Jochen

so richtig, so

Jochen

leider sind die Sachen doch sehr unterschiedlich,

Jochen

also so unterschiedlich, dass man sich dann doch dafür interessieren

Jochen

muss, dass diese Abstraktion halt anfängt,

Jochen

äh, zu leaken und dann, äh,

Jochen

dann wird's halt hässlich.

Jochen

Für mich jedenfalls. Also ich find Poultry super, weil

Dominik

es halt drei Sachen für mich macht, und das sind Dependencies

Dominik

zum Projekt dazufügen, Dependencies für ein Projekt,

Dominik

Dependencies für ein Projekt installieren, Dependencies für ein Projekt updaten,

Dominik

und das ist so das Hauptding, für das ich's benutze,

Dominik

und es ist trotzdem total nervig,

Dominik

und es geht immer wieder kaputt.

Jochen

Schreibst du Libraries, wo du dann

Dominik

Pakete erzeugst? Nein, genau, das nicht, also weil

Dominik

das ist nämlich genau der Punkt, wo ich wahrscheinlich, weiß ich

Dominik

nicht, ob ich Poultry für mich nehmen würde, ich hab ja

Dominik

irgendwie Flit oder Hedge irgendwie besser dafür geeignet,

Dominik

aber da kommen wir vielleicht auch noch drauf, wenn wir Packaging

Dominik

besprechen, ähm.

Jochen

Ja, weil ich würd sagen, solange man nur

Jochen

Projekte hat, wo man halt

Jochen

andere Abhängigkeiten reinzieht, und die man dann

Jochen

halt irgendwie, äh, irgendwo installieren

Jochen

oder irgendwo hindeployt und so,

Jochen

da funktioniert das ganz gut, aber sobald man halt

Jochen

eigene Libraries hat, wo man, äh, irgendwie

Jochen

Pakete erzeugen möchte,

Jochen

dann beißt einen das so ein bisschen,

Jochen

dass da die Anforderungen einfach völlig anders sind

Jochen

als, äh, und, ja,

Jochen

also da find ich halt zum Beispiel, also da fand ich

Jochen

halt Poultry macht da Ding, äh,

Jochen

da hat mich sozusagen

Jochen

kalt erwischt, dass, ähm,

Jochen

dass die, äh,

Jochen

dass das halt zwei sehr unterschiedliche Use Cases

Jochen

sind, und ich dachte, ich könnte das halt für beides

Jochen

gleich verwenden. So ein Paarstellenstrich hat die Kaputte

Dominik

oder sowas, dann will man halt irgendwie den Pfad

Dominik

für Poultry Home setzen, und dann installiert es aber

Dominik

trotzdem irgendwo anders, andere Dinge hin

Dominik

und sowas, das ist halt einfach total nervig

Jochen

und... Ja, das Schlimmste war, dass, äh,

Jochen

also bei meinem Anwendungsfall,

Jochen

das hab ich wirklich nicht gewusst, äh,

Jochen

und das hat halt, äh, Sachen draußen

Jochen

kaputt gemacht, äh, ist halt, dass Poultry

Jochen

per Default, was ja vielleicht

Jochen

okay ist für Applikationen, die man irgendwo hindeployt,

Jochen

eine obere, äh, eine obere Schranke

Jochen

für Abhängigkeiten hat. Das kannst du aber

Jochen

einstellen. Klar kann man das einstellen, ich hab's nicht gemacht.

Jochen

Und wenn du jetzt ein Paket baust,

Jochen

und hast da implizit obere Schranken drin,

Jochen

für die Abhängigkeiten, dann ist

Jochen

das für Leute, die sich, die

Jochen

dein Paket als Abhängigkeit haben, halt total blöd.

Dominik

Ja, obere Schranken, also da,

Dominik

da war ich erst anderer Meinung, und, ähm,

Dominik

das macht im Data Science Umfeld, macht das unheimlich viele,

Dominik

und auch unheimlich viele Pakete, die halt obere Schranken drin haben,

Dominik

und, äh, es gab diesen sehr länglichen

Dominik

Blogpost dazu, den du mir geschickt hast,

Dominik

äh, den wir auch nochmal verlinken können, der mich

Dominik

auch überzeugt hat zu sagen, dass das wahrscheinlich eine ziemlich

Dominik

doofe Idee, äh, überhaupt so eine obere Schranke

Dominik

zu haben.

Anna-Lena

Interessant, dass es mir noch nie begegnet, das Problem

Anna-Lena

Ja, du,

Dominik

im Data Science Umfeld tatsächlich öfter, und wenn du dann

Dominik

irgendwelche neuen Versionen hast, und die

Dominik

sagen, na, ich will aber nur bis Python

Dominik

maximal 3.10 gehen, und du willst aber 3.11 nehmen,

Dominik

dann musst du das halt irgendwie umbauen, oder sowas,

Dominik

das ist halt schon ätzend.

Jochen

Ja, eigentlich gar nicht so sehr dabei, sondern

Jochen

eher so bei, äh, irgendwelchen

Jochen

Third-Party-Geschichten, also man hat halt irgendwie

Jochen

eine, irgendeine

Jochen

Crypto-Library oder so, die man

Jochen

halt als Abhängigkeit verwendet, wenn man irgendwas,

Jochen

wenn man die für irgendwas braucht,

Jochen

und dann, äh,

Jochen

äh, sozusagen hat man eine implizite

Jochen

obere Schranke auf der, auf

Jochen

diese, auf eine Version von diesem Paket,

Jochen

und jemand installiert

Jochen

jetzt eine Library, die man selber irgendwie

Jochen

gebaut hat, äh, und hat

Jochen

aber noch eine andere, und jetzt sagt die eine

Jochen

irgendwie, ich brauch aber Abversion so und so, weil

Jochen

die hat halt irgendwie so eine, äh,

Jochen

Funktion, die das halt benötigt, und

Jochen

mein Paket, ohne dass ich das weiß, sagt,

Jochen

aber ich kann nur bis zu der Version, und dann

Jochen

kriegt der halt einen Konflikt. Ja, genau. Und kann's

Jochen

nicht mehr installieren. Und das ist gar nicht

Jochen

deswegen, weil es einen echten Konflikt gibt, sondern deswegen, weil ich

Jochen

einfach nur in den Default-Einstellungen nichts geändert habe. Ja, genau.

Jochen

Und das ist halt, äh, genau.

Jochen

Und wenn dann Leute sagen so, ähm, dein,

Jochen

dein Library ist, äh, die macht irgendwie

Jochen

hier bei mir Dinge kaputt, dann, äh,

Jochen

ja, das ist halt nicht so schön. Genau, und das, also im Datastandort

Dominik

hatte ich das recht häufig bei irgendwie Machine Learning-Paketen,

Dominik

dass du halt tatsächlich hingehen musstest, müsstest du in den Paketen

Dominik

die Requirements so anpassen, dass es halt irgendwie

Dominik

funktioniert, und gucken, ob's dann geht, was man halt dann auch nicht so genau

Dominik

weiß. Aber das, äh, ja.

Dominik

Ja.

Anna-Lena

Das, ja. Habt ihr das mal mit anderen Tools

Anna-Lena

ausprobiert, ob das Problem dann auch besteht?

Anna-Lena

Ja, besteht auch mit dem, damit.

Dominik

Ähm, also,

Dominik

apropos Tools, ähm, Jochen, du meinst Pip-Tools

Dominik

jetzt für deine Environments?

Jochen

Genau, also ich verwende jetzt unterschiedliche Dinge,

Jochen

also für diese beiden unterschiedlichen Use-Cases, also wenn ich

Jochen

halt eine Applikation habe, wo ich

Jochen

Abhängigkeiten, also wo ich halt auch sowas wie

Jochen

Log-Files, bei einer Library habe ich

Jochen

ja keinen Log-File. Aber bei einer

Jochen

Applikation hätte ich natürlich schon wieder einen Log-File, sodass

Jochen

halt alle Entwickler irgendwie, dass ich halt weiß,

Dominik

äh. Was nochmal ein Log-File ist. Ja, muss man

Dominik

auch mal finden. Also ein Log-File

Dominik

ist normalerweise, pinnt halt die

Dominik

Dependencies und insbesondere den, den

Dominik

Dependency-Grafen halt mit, für deine

Dominik

Dependencies, dass halt klar ist, dass so

Dominik

die Versionen und die Abhängigkeiten dieser

Dominik

Pakete, die du da benutzt, auch

Dominik

ähm, gepinnt sind und

Dominik

meistens hashtest du die noch, das heißt, du kannst halt sehen,

Dominik

ob irgendwelche Änderungen da sind, also aus der Qt-Perspektive

Dominik

gar nicht so interessant. Ja, ob das, was man runtergeladen hat,

Jochen

auch tatsächlich, äh, das ist, was man haben

Jochen

wollte. Genau. Genau. Und

Jochen

ja. Also es führt halt dazu, dass

Jochen

wenn zwei Leute, ähm, sozusagen

Jochen

das, äh,

Jochen

Virtual-Env mit allen Environments,

Jochen

äh, äh, äh. Nach dieser Anleitung,

Jochen

werden installiert. Kriegen die dasselbe. Kriegen sie genau

Jochen

das Gleiche. Genau. Und haben nicht unterschiedliche

Dominik

Versionen von Paketen. Genau, also das ist das Hauptproblem auch,

Dominik

also klassisch ist ja Requirements-TXT.

Jochen

Genau. Und das, da wär's nicht so.

Dominik

Da sind halt diese ganzen Subdependencies nicht enthalten

Dominik

und es kann halt sein, dass wenn man Requirements-TXT

Dominik

irgendwie ein Jahr später installiert, dass dann irgendwas gebrochen

Dominik

ist, weil sich da. Genau, man. Abhängigkeiten

Jochen

geändert haben. Man erzeugt die Requirements-TXT,

Jochen

sechs Monate später kommt ein Entwickler dazu

Jochen

und installiert nochmal und sagt dann, hä, das

Jochen

lässt sich gar nicht mehr installieren, weil. Ja, genau.

Jochen

Irgendwelche Konflikte auftreten oder es verhält sich anders.

Jochen

Und das ist natürlich etwas, was man nicht haben will.

Dominik

Dafür braucht man unbedingt Blog-File-Teil. Und deswegen

Dominik

also diese Blog-Files sollten eigentlich meiner Meinung

Dominik

nach auf jeden Fall Teil von so einem Projekt mit

Dominik

sein. In welcher Form auch immer.

Dominik

Ja, wird glaube ich auch immer empfohlen.

Jochen

Von einer Applikation, aber eben bei einer

Jochen

Library halt nicht, weil da weiß ich ja gar nicht,

Jochen

was installiert wird. Ja.

Jochen

Und genau, für den Anwendungsfall

Jochen

nehme ich halt,

Jochen

also

Jochen

eine Anwendung, die ich deploye, nehme ich halt Pip-Tools

Jochen

und für den, ich hab ein

Jochen

Paket, wo ich ein Wheel oder irgendwas

Jochen

sonst wie ein Paket veröffentlichen möchte,

Jochen

nehme ich halt Flit, was

Jochen

jetzt, ich gucke

Jochen

manchmal so nach Hedge rüber,

Jochen

bisher hatte ich noch nicht so richtig den Grund

Jochen

irgendwie umzusteigen.

Anna-Lena

Ja, wenn Flit für dich funktioniert, das ist auch glaube ich

Anna-Lena

das Wichtigste, was man von dem Ganzen mitnehmen

Anna-Lena

kann. Packaging ist zwar

Anna-Lena

super messy in Python,

Anna-Lena

also es ist total schwierig

Anna-Lena

da einzusteigen, weil Python eben

Anna-Lena

nicht designt wurde mit einem Tool,

Anna-Lena

was es alles kann, wie das bei Rust ist,

Anna-Lena

weswegen ja viele Leute sehr begeistert sind von

Anna-Lena

Rust, vor allem die Python kennen, da läuft

Anna-Lena

das sehr einfach, da hast du, hat man

Anna-Lena

Cargo, was man benutzen kann

Anna-Lena

für das Packaging und dann braucht man sich

Anna-Lena

nicht die Gedanken machen über diese ganzen anderen Tools

Anna-Lena

und

Anna-Lena

verschiedene Tools bei Python lösen eben verschiedene

Anna-Lena

Probleme und Flit ist super,

Anna-Lena

wenn man ein reines Python-Paket hat und das einfach

Anna-Lena

nur bilden

Anna-Lena

möchte, also wenn man irgendwie ein Wheel-File braucht und

Anna-Lena

das vielleicht dann noch publishen will und wenn das

Anna-Lena

für einen selbst funktioniert, dann wunderbar, da kann man

Anna-Lena

das wirklich gut verwenden.

Anna-Lena

Ich habe gerade noch daran gedacht, mit den Log-Files,

Anna-Lena

was ihr gesagt hatte, mit diesem Unterschied zwischen

Anna-Lena

abstrakten und konkreten

Anna-Lena

Abhängigkeiten,

Anna-Lena

das kann man vielleicht auch noch mal

Anna-Lena

ganz gut in Verbindung mit dem PyProject-Hommelfile

Anna-Lena

erklären, weil wenn man ein Paket

Anna-Lena

baut, hat man eben PyProject-Hommelfile,

Anna-Lena

wo die ganzen, ja,

Anna-Lena

wichtigen Dinge über das Paket drinstehen,

Anna-Lena

das sind so Sachen wie

Anna-Lena

der Name, wer der Autor ist, aber

Anna-Lena

eben auch die Dependencies, dann kann man da

Anna-Lena

für manche Tools auch genau sagen,

Anna-Lena

wie die konfiguriert

Anna-Lena

sein sollen, sowas wie Black zum Beispiel,

Anna-Lena

wenn man Formatting benutzen möchte.

Anna-Lena

Man kann da auch Skripte definieren, also man kann

Anna-Lena

quasi super viel reinschreiben, dieses

Dominik

PyProject-Hommel, also die ganze Konfiguration löst halt

Dominik

diese Placerer an Konfigurations-Files

Dominik

ab, die dann irgendwo im Projekt-Root

Dominik

rumfliegen müssen, ja.

Anna-Lena

Ja, und man,

Anna-Lena

die Dependencies, die man da reinschreibt, sind aber

Anna-Lena

möglichst, ja, grob

Anna-Lena

gehalten, würde ich mal sagen, also da kann man

Anna-Lena

Ranges angeben, welche

Anna-Lena

Paketnummern gut sind, aber man sollte

Anna-Lena

nicht die, auf genau die Version pinnen,

Anna-Lena

die man haben möchte, wofür dann die

Anna-Lena

meisten Tools eben automatisiert so ein

Anna-Lena

Log-File erstellen, wie ihr das gerade beschrieben habt,

Anna-Lena

sodass man das auch noch mitgeben

Anna-Lena

kann in seinen Repository

Anna-Lena

oder Package, sodass alle

Anna-Lena

genau das gleiche Setup

Anna-Lena

reproduzieren können.

Dominik

Setup ist, glaube ich, ein gutes Stichwort. Ich glaube, früher

Dominik

hat Python das halt mit Setup-Py gemacht und

Dominik

Setup-Tools,

Dominik

dann war das halt in Python und halt nicht in dieser

Dominik

deklarativen Tummel.

Jochen

Ja, die Geschichte davon ist auch,

Jochen

also da gibt es ja noch sehr viel mehr, es gibt auch noch

Jochen

Dist-Utils und ach, was ist der Teufel?

Jochen

Ja, aber genau, also von

Jochen

der Setup-Py wollte man eigentlich wegkommen,

Jochen

weil irgendwie, naja, gut, viele Leute

Jochen

haben immer nur ihr altes

Jochen

Setup-Py, was sie sich irgendwann mal irgendwie hingeschrieben haben,

Jochen

halt kopiert und

Jochen

das war halt so ein Problem,

Jochen

deswegen, ja, musste

Jochen

man quasi beliebig lange abwärtskompatibel bleiben

Jochen

mit allem und

Jochen

inzwischen

Jochen

sollte ja eigentlich für fast alles, was

Jochen

man tut, Setup-CFG ausreichen

Jochen

irgendwie,

Jochen

aber ja, das ist alles ein

Jochen

It's a mess.

Jochen

Ja, genau.

Anna-Lena

Es ist auch eben überraschend, finde ich, also das

Anna-Lena

ich habe gerade mal das PEP geöffnet

Anna-Lena

von, das ist

Anna-Lena

518, wo es darum geht, dass

Anna-Lena

pyproject.tummel eingeführt wird, das ist von

Anna-Lena

2016, also es ist schon echt eine Weile

Anna-Lena

her und trotzdem begegnet mir das immer wieder,

Anna-Lena

dass Leute noch Setup.py benutzen,

Anna-Lena

obwohl inzwischen das schon so weit verbreitet

Anna-Lena

ist, dass man eine pyproject.tummel

Anna-Lena

Datei hat, in der

Anna-Lena

man im Tummel-Format eben definiert,

Anna-Lena

wie das Paket aussieht und welche

Anna-Lena

Abhängigkeiten es hat.

Dominik

Also was ich so ein bisschen anstrengend finde, ist, dass

Dominik

es halt keine Referenzen gibt in diesen Tummel-Files, dass

Dominik

du halt dann Redundanzen hinkriegst, wenn du mehrere

Dominik

Male diesen Namen verwenden willst in unterschiedlichen

Dominik

Sachen oder sowas, was manchmal so ein bisschen

Dominik

schade ist, aber gut,

Dominik

es gibt Schlimmeres, als dann

Dominik

zweimal irgendwie den Projektnamen hinzuschreiben, aber

Dominik

ja, also ich mag die pyproject.tummel

Dominik

sehr gerne, ich benutze sie halt auch für alles und

Dominik

ich glaube, mittlerweile sind die meisten Tools durch

Dominik

irgendwelche Tricks auch dazu zu bringen,

Dominik

nur noch diese pyproject.tummel zu nehmen,

Dominik

also Flake oder so.

Jochen

Das ist halt so ein Kandidat für, nee.

Dominik

Ja, genau, aber das geht auch, da muss man halt

Dominik

ein extra Paket installieren, dann geht das, das gibt halt

Dominik

so ein Fork davon quasi.

Dominik

PyTest oder so ist halt auch

Dominik

sehr schön darüber einstellbar, MyPy,

Dominik

Ruff

Dominik

und deine ganzen Tools halt, ne?

Dominik

Linting und sowas.

Dominik

Die Skripts

Dominik

finde ich auch sehr interessant, weil

Dominik

da gibt es ja auch verschiedene Sachen, das noch zu lösen.

Dominik

Welche Skripts man irgendwie einhängen will.

Anna-Lena

Ja, das finde ich auch ganz schön.

Anna-Lena

Ich hatte das auch jetzt gerade im Kunden

Anna-Lena

Projekt wieder, dass jemand

Anna-Lena

Makefile benutzen wollte, um

Anna-Lena

bestimmte Kommandos, die man häufig

Anna-Lena

ausführt, runterzuschreiben

Anna-Lena

oder es zu vereinfachen, weil

Anna-Lena

der Person gar nicht bewusst war, dass man das auch

Anna-Lena

im pyproject.tummel-File definieren kann.

Anna-Lena

Also wenn man zum Beispiel immer

Anna-Lena

Python-M-Unit-Test-Discover-Test

Anna-Lena

schreibt, dass man

Anna-Lena

das einfach abkürzen kann, indem man

Anna-Lena

in der pyproject.tummel ein kleines

Anna-Lena

Skript quasi definiert und dann

Anna-Lena

sagt, dieser Befehl

Anna-Lena

soll ausgeführt werden, wenn du

Anna-Lena

Hedge, jetzt als Beispiel, Hedge ist eins

Anna-Lena

von diesen Packaging-Tools und wenn du

Anna-Lena

Hedge-Run-Test

Anna-Lena

schreibst in dein Terminal, dann wird

Anna-Lena

eben dieser Befehl ausgeführt.

Anna-Lena

Finde ich unheimlich

Anna-Lena

praktisch. Habe ich schon sehr viel

Anna-Lena

benutzt, benutze ich auch sehr viel.

Dominik

Ich habe mir meinen eigenen Webpack geschrieben, weil

Dominik

bei mir ist es dann cc, weil

Dominik

ich habe meinen c-Compiler, die

Dominik

linkt und dann einfach cc-up,

Dominik

cc-start, cc-test,

Dominik

crawl-command. Aber man muss

Jochen

dafür das Paket quasi installieren,

Jochen

im aktuellen Environment.

Jochen

Genau.

Jochen

Ja, aber das ist halt sowas,

Jochen

wenn ich jetzt in einem Projekt bin,

Jochen

also sagen wir mal, ich habe ein Django-Projekt oder so,

Jochen

dann installiere ich das ja gar nicht als Paket oft.

Jochen

Da ist halt wieder so

Jochen

diese Unterscheidung, wenn ich ein Paket entwickle,

Jochen

okay, dann habe ich das normalerweise auch immer

Jochen

in einer editierbaren Version

Jochen

installiert im aktuellen Environment, aber

Jochen

das ist wieder diese Unterscheidung zwischen

Jochen

Libraries und

Dominik

install-e oder sowas, also

Dominik

editable installiert ist

Dominik

eine der Features, die nicht jedes von

Dominik

diesen Tools unterstützt. Ja, da hatte

Jochen

Poetry auch lange Probleme mit, ja.

Jochen

Ja.

Jochen

Aber genau,

Jochen

damit geht das gut. Ja, ich bin inzwischen also

Jochen

gerade bei

Jochen

ich bin bei einem eigenen

Jochen

Skript, das ich halt in alle

Jochen

Projekte reinlege oder so,

Jochen

weil

Jochen

es oft auch so ist, wenn man das zum ersten Mal ausführt,

Jochen

dann kann ich halt so Dinge machen,

Jochen

wie ich mache halt ein try-except

Jochen

um Imports und wenn die da nicht da sind,

Jochen

dann gucke ich halt, ob ich irgendwo das Log-File

Jochen

finde und dann installiere ich das erstmal,

Jochen

erzeuge ein Virtual-Env und mache halt so,

Jochen

sodass halt, wenn jemand, auch wenn jemand keine Ahnung

Jochen

hat, einfach irgendwas ausführt, dass es dann

Jochen

trotzdem funktioniert. Das geht halt, wenn man ein eigenes Skript hat,

Jochen

relativ gut, aber ansonsten

Jochen

wenn man den Leuten dann noch erklären muss, nee, du musst erst das Paket

Jochen

installieren und dann so, welches Paket?

Jochen

Ja, das, okay, und dann ist es halt immer noch mal

Jochen

eine Hürde. Ja.

Jochen

Ja, ich weiß es nicht. Ich habe da auch keine gute Lösung für.

Jochen

Ich habe gerade

Anna-Lena

noch daran gedacht, dass es vielleicht auch ganz hilfreich

Anna-Lena

ist, einmal zu erwähnen, dass diese

Anna-Lena

Tools, die wir jetzt gerade schon genannt haben,

Anna-Lena

sowas wie Hedge oder Poetry, PDM,

Anna-Lena

Rye, dass die für

Anna-Lena

ein dieses Virtual-Environment-Handling

Anna-Lena

machen, also dass man da gar keine Virtual-Environments

Anna-Lena

mehr selbst erstellt, sondern man

Anna-Lena

installiert das Tool und dann kann man beispielsweise

Anna-Lena

sagen, beispielsweise sagen Hedge

Anna-Lena

run und dann Python

Anna-Lena

main.py oder was auch

Anna-Lena

immer und dann

Anna-Lena

lässt Hedge dieses Skript

Anna-Lena

innerhalb eines Virtual-Environments laufen

Anna-Lena

wo all diese Dependency

Anna-Lena

die man im pyproject.toml-File definiert hat,

Anna-Lena

schon installiert sind.

Anna-Lena

Sprich, man muss das nicht mehr manuell erstellen,

Anna-Lena

dieses Virtual Environment.

Anna-Lena

Das wird dann für einen gemacht.

Anna-Lena

Mhm.

Dominik

Ja, dann, also Pultree zum Beispiel,

Dominik

kann man halt auch dann konfigurieren,

Dominik

dass halt alle WEMFs in einem bestimmten Ordner liegen,

Dominik

wenn man das gerne hätte.

Dominik

Oder dass die halt im Projekt liegen.

Dominik

Also das gibt halt diese zwei Varianten.

Dominik

Ich weiß nicht, wozu ihr da tendiert.

Dominik

Vielleicht auch ein bisschen die Frage,

Dominik

ob man ein Dev macht,

Dominik

wo man halt zwischen den WEMFs vergleichen will

Dominik

oder ob man das halt in ein Pod macht,

Dominik

wo man das vielleicht direkt ins Projekt legt

Dominik

oder irgendwo nach Opt oder ich weiß nicht.

Dominik

Ja, also man kann...

Dominik

Häufig einfach den Default benutzt.

Dominik

Mhm.

Jochen

Also ich mache, ist unterschiedlich.

Jochen

Für Entwicklungen lege ich die ganzen Virtual Envs

Jochen

in ein Verzeichnis,

Jochen

damit ich halt nur bei einem Verzeichnis sagen muss,

Jochen

dieses Verzeichnis bitte nicht backuppen.

Jochen

Ansonsten müsste ich eine Regel haben,

Jochen

die das halt für alle,

Jochen

die halt immer rausfindet,

Jochen

was ist das Virtual Env in einem Projekt

Jochen

und dann das dann halt nicht backupt.

Jochen

Was auch geht, aber ist halt komplizierter.

Jochen

Und wenn ich mich dann an diese Regel selber mal nicht halte,

Jochen

dann wird halt ein Virtual Env gebackupt,

Jochen

was halt doof ist.

Dominik

Ja, also ich habe aber tatsächlich schon gesehen,

Dominik

dass tatsächlich sogar die WEMFs Teil der Version Control sind.

Jochen

Ja, das ist natürlich...

Jochen

Nee, also das würde ich auch nicht machen,

Jochen

aber das habe ich schon gefunden,

Dominik

weil die Leute halt irgendwie die brauchen,

Dominik

reproduzierbar auch irgendwie auf ihren Systemen,

Dominik

dann halt tatsächlich einfach die WEMF auschecken

Dominik

und dann haben sie die schon,

Dominik

ohne dass sie diesen ganzen Hustle machen müssen.

Dominik

Oder die wird halt irgendwie gesippt und halt dazugelegt,

Dominik

weil man die dann für alte Versionen

Dominik

halt einfach dann dabei hat und die funktioniert direkt.

Dominik

Und wenn man dann halt jetzt nicht den Python nur gelinkt hat,

Dominik

sondern das halt als hart dahingeschrieben hat,

Dominik

dann könnte das sogar funktionieren.

Dominik

Also...

Dominik

Ich habe Zweifel.

Dominik

Ja, gut, aber das ist halt wieder genau so ein Punkt,

Dominik

wo wir halt merken,

Dominik

es gibt halt ganz, ganz viele verschiedene Lösungen

Dominik

für dieses Problem,

Dominik

wie laufe ich denn überhaupt eine Python an,

Dominik

die alle nicht so richtig gut funktionieren und so.

Dominik

Ja.

Dominik

Alle Probleme haben an irgendwelchen Edge Cases.

Dominik

Also es gibt, das ist tatsächlich,

Dominik

also das Beispiel Rust ist da, glaube ich, echt ein guter.

Dominik

Also weil du machst Rust ab und hast dann Cargo und sowas.

Jochen

Ja, aber man kann halt,

Jochen

das wird ja dann auch oft vorgeschlagen.

Jochen

Warum machen wir es nicht einfach wie Rust jetzt sozusagen

Jochen

in der Python-Welt und dann sind wir dieses Problem los.

Jochen

Das funktioniert halt nicht, weil Python halt so alt ist

Jochen

und es so viele Dinge gibt.

Jochen

Also tatsächlich größere Teile des Ökosystems würden,

Jochen

wenn du sagst, okay, das ist jetzt der Weg,

Jochen

wie wir das machen, halt einfach nicht mehr funktionieren.

Jochen

Und dann kannst du es halt eigentlich auch nicht machen.

Jochen

Also einen Plan verpassen.

Jochen

Also zum Beispiel den ZRPY-Support einstellen.

Jochen

Das haben auch Leute schon angedacht oder probiert.

Jochen

Und dann...

Jochen

Bei den Diskussionen kamen wir raus,

Jochen

nee, das ist unmöglich, das geht nicht.

Jochen

Kann man nicht machen.

Jochen

Also bei Python 4 dann.

Jochen

Selbe Problem, ja.

Jochen

Das will auch keiner mehr machen.

Jochen

Das will auch keiner machen.

Jochen

Das ist so ein harter, solche harten Kompetibilitäten.

Jochen

Das wird nicht mehr passieren, glaube ich.

Jochen

Ja, es ist, aber genau.

Jochen

Also auf Produktivgeschichten, da mache ich das so,

Jochen

dass ich das Virtual Env in das Projekt selber mit reinlege.

Jochen

Einfach deswegen, weil ich dann sozusagen alles an einem Platz habe

Jochen

und halt auch, wenn ich es dann entferne,

Jochen

auch nur ein Verzeichnis entfernen muss.

Jochen

Und nicht noch gucken muss, oh, da gibt es noch das Virtual Env.

Jochen

Oh, da gibt es ja noch die Datenbank unter Auer.

Jochen

Da gibt es noch dieses Dings, was ich auch noch mit entferne.

Jochen

Sondern dann entferne ich das eine Ding und dann fertig.

Dominik

Ja, also ich habe das tatsächlich unter Opt.

Dominik

Und dann halt die Python-Sachen alle da an einer Stelle,

Dominik

die für das Projekt da sind.

Dominik

Okay, auch interessant, ja.

Dominik

Und dann habe ich halt quasi das Projekt,

Dominik

also den Code vom Projekt und den Code von dem,

Dominik

was für das Projekt zum Lauf notwendig ist.

Dominik

Also zwei Sachen, aber ja.

Dominik

Ja.

Dominik

Ich habe gerade noch daran gedacht,

Anna-Lena

Hedge zum Beispiel ist eins der Tools,

Anna-Lena

die ich recht häufig benutze.

Anna-Lena

Einfach auch nur, weil ich,

Anna-Lena

weil ich irgendwann damit angefangen habe

Anna-Lena

und das ganz nett finde.

Anna-Lena

Und das hat so ein tolles Feature für die Virtual Environments,

Anna-Lena

dass man im PyProject.toml-File eben auch definieren kann,

Anna-Lena

deklarativ, welche verschiedenen Virtual Environments

Anna-Lena

man haben möchte.

Anna-Lena

Und ich habe beispielsweise häufig eins für Styling,

Anna-Lena

also wo man, was dann Black über alle Sachen laufen lässt,

Anna-Lena

wo dann, also da sind da die Dependencies nur,

Anna-Lena

wie Black, Rough und Ähnliches installiert.

Anna-Lena

Und auch die Skripte dafür.

Anna-Lena

Und dann habe ich ein Virtual Environment

Anna-Lena

für die Documentation.

Anna-Lena

Ich benutze zum Beispiel Material for mkDocs,

Anna-Lena

wo das dann installiert ist.

Anna-Lena

Und dann kann man halt wirklich ganz strukturiert sagen,

Anna-Lena

okay, diese verschiedenen, ja, Anwendungsfälle

Anna-Lena

oder das mache ich in meinem Workflow

Anna-Lena

und dafür brauche ich nur diese Dependencies.

Anna-Lena

Und dann kann man das wirklich schön organisiert runterschreiben,

Anna-Lena

PyProject.toml.

Anna-Lena

Das finde ich irgendwie total angenehm,

Anna-Lena

weil das so viel besser nach außen kommuniziert.

Dominik

Potpourri hat das auch irgendwann eingeführt als Groups.

Dominik

Ah, okay.

Dominik

Und tatsächlich, also du kannst halt die Gruppen optional machen halt

Dominik

oder halt nicht.

Dominik

Also die nicht optionalen Gruppen sind halt die,

Dominik

die absolut notwendig sind damit,

Dominik

wie die Anwendung läuft.

Dominik

Und halt solche Sachen wie Docs oder wie Tests oder sowas

Dominik

können halt eigene Gruppen haben.

Dominik

Da hatten wir mal mit Johannes drüber gesprochen.

Dominik

Johannes meinte, totaler Quatsch.

Dominik

Du brauchst eigentlich nur zwei.

Dominik

Und das ist Def und Prot.

Dominik

Def und Prot, ja.

Dominik

Kann man auch vertreten.

Dominik

Ja, aber es ist halt die Frage,

Dominik

braucht man so einen Fall, wo man nur linden will

Dominik

oder wo man nur Docs angucken will oder so.

Jochen

Ja, also mein Argument dafür wäre halt auch genau,

Jochen

weil ich habe, also oft hat man dann implizit ja doch mehrere.

Jochen

Zum Beispiel, wenn man sowas wie Precommit Hooks verwendet.

Jochen

Bei Precommit kümmert sich ja auch wieder selber

Jochen

da drum.

Jochen

Und dann hast du es aber implizit irgendwie.

Jochen

Und es wäre natürlich vielleicht schöner,

Jochen

das explizit irgendwo stehen zu haben,

Jochen

wo das, ja.

Dominik

Ja, Precommit MyPi ist zum Beispiel so ein Kandidat,

Dominik

der unheimlich nervig ist, weil das halt, ja.

Dominik

Genau.

Dominik

Also,

Jochen

also genau,

Jochen

also ich würde sagen,

Jochen

wenn man nur Def und Prot haben will,

Jochen

dann schafft man das nicht,

Jochen

weil man hat ja zumindest noch das für Precommit.

Jochen

Und das heißt,

Jochen

dann hat man nochmal einen Ort, wo man das pflegen muss.

Jochen

Das steht ja auch nicht in der PyProject Tommel,

Jochen

sondern es steht dann auch wieder in dem Precommit Jammel.

Jochen

Und, äh, Jammel, Uwe.

Jochen

Das ist sehr mäßig.

Dominik

Bei mir sind es halt so Gruppen, die sind alle optional,

Dominik

die ich alle per Default dann wieder copy und paste.

Dominik

Wo halt dann sowas drin ist,

Dominik

wenn eine Postquest benutzt wird,

Dominik

dann mach doch bitte diese Gruppe noch dazu.

Dominik

Und wenn irgendwie Authentifizierung benötigt wird,

Dominik

dann mach doch bitte diese Gruppe noch dazu.

Dominik

Und wenn, ja, so Dokumentationen,

Dominik

dann muss halt alle die...

Dominik

Okay, an der Stelle würde ich sagen,

Jochen

beschränk dich doch bitte auf Def und Prot.

Anna-Lena

Kann man denn bei den Gruppen in Poetry

Anna-Lena

dann auch Skripte für diese Gruppen,

Anna-Lena

definieren?

Dominik

Ähm, nicht, dass ich wüsste.

Dominik

Aber vielleicht vertue ich mich auch alle.

Dominik

Ja, also Poetry hat eh immer so ein bisschen so Probleme

Dominik

mit so dann Sachen wieder abreißen oder sowas.

Dominik

Oder wenn du halt irgendwie ein Update

Dominik

von einem Major Python machst,

Dominik

dann fliegt Poetry oft auf die Nase.

Dominik

Das ist halt fürchterlich.

Dominik

Vielleicht ist das jetzt neu besser.

Dominik

Also auch so ein Ding, ne?

Dominik

Poetry hat irgendwie zweimal ein Update gemacht,

Dominik

das so Breaking Changes eingebaut hat,

Dominik

wo es dann...

Dominik

Das war halt so sehr, sehr nervig.

Dominik

Wirklich böse Dinge gemacht hat.

Dominik

Ja, das war halt der Hauptgrund,

Dominik

warum viele Leute gesagt haben,

Dominik

so eine Idee fasse ich jetzt nicht mehr an,

Dominik

weil sowas geht halt eigentlich nicht, ne?

Dominik

Genau, ja.

Dominik

Das habe ich auch total viel mitbekommen.

Dominik

Also ich habe selbst schon Poetry benutzt.

Dominik

Das hat für mich immer gut funktioniert

Dominik

und ich finde es auch ein gutes Tool.

Anna-Lena

Aber ich habe voll viele Leute,

Anna-Lena

von voll vielen Leuten das mitbekommen,

Anna-Lena

die dann einen dieser Breaking Changes mitgemacht haben

Anna-Lena

und dann gesagt haben, nie wieder.

Anna-Lena

Also kategorisch benutze ich nicht mehr.

Anna-Lena

Sowas geht nicht.

Anna-Lena

Das kann man nicht machen.

Anna-Lena

Und dann hat man eben auch genug Alternativen,

Anna-Lena

auf die man zurückgreifen kann,

Anna-Lena

sodass man Poetry dann nicht mehr verwenden muss.

Anna-Lena

Also ich sage mal so,

Dominik

andererseits, das waren halt so ein paar Sachen echt kaputt

Dominik

und die haben die jetzt gefixt.

Dominik

So gesehen, ne?

Dominik

Wenn man jetzt einmal diesen Schmerz hat

Dominik

und es läuft dann jetzt wieder, warum dann nicht?

Dominik

Aber ja, ich weiß nicht.

Anna-Lena

Ich glaube, es war bei vielen auch diese Art und Weise,

Anna-Lena

mit der es gemacht wurde,

Anna-Lena

dass zum Beispiel nicht gewarnt wurde davor,

Anna-Lena

dass bestimmte Dinge dann nicht mehr funktionieren werden.

Dominik

Ja, ich glaube, der Ton in den Requests

Dominik

oder in den Issues war auch so ein bisschen rau.

Dominik

Habe ich das Gefühl gehabt.

Dominik

Das war, einige Leute fanden das auch nicht so gut.

Anna-Lena

Poetry ist halt auch so ein Sonderfall,

Anna-Lena

habe ich manchmal das Gefühl.

Anna-Lena

Also ich hatte mir so ein paar Kriterien rausgesucht,

Anna-Lena

um die verschiedenen Tools zu vergleichen,

Anna-Lena

damit es eben wirklich so ein bisschen unbiased ist

Anna-Lena

und nicht nur meine persönliche Präferenz mit reinfließt.

Anna-Lena

Und es gibt ein PEP 621, da geht es darum,

Anna-Lena

wie man Metadata in der PyProject-Hommel aufschreibt.

Anna-Lena

Also in welchem Weg.

Anna-Lena

Und da wurde halt irgendwann ein Standard definiert,

Anna-Lena

den die meisten Tools vertreten.

Anna-Lena

Nur Poetry hat da seine Extrawurst und macht das anders,

Anna-Lena

was ja auch in Ordnung ist,

Anna-Lena

dadurch, dass sie es von Anfang an anders gemacht haben.

Anna-Lena

Aber es gibt, glaube ich, seit eineinhalb Jahren

Anna-Lena

schon ein offenes Issue dazu auf GitHub

Anna-Lena

und sie wollen es auch irgendwann machen.

Anna-Lena

Aber sie haben es halt immer noch nicht gemacht.

Anna-Lena

Und ich glaube, so ein paar Besonderheiten

Anna-Lena

muss man da schon im Kopf behalten,

Anna-Lena

wenn man dann Poetry benutzen will.

Jochen

Ja, also das war auch,

Jochen

als ich dann irgendwie auch Probleme mit Poetry mal bekommen habe

Jochen

und dann halt da auch angefangen habe,

Jochen

Issues aufzumachen und dann mir das Open Issues-Ding mal angeguckt habe,

Jochen

da dachte ich so, oh, oh, oh.

Jochen

Also letztlich, glaube ich, ist das einer,

Jochen

der auch eigentlich als Freelancer arbeitet,

Jochen

der das halt auch nicht Vollzeit macht,

Jochen

sondern halt auch so in seiner Freizeit.

Jochen

Und zu dem Zeitpunkt, wie es heute ist, weiß ich nicht.

Jochen

Und da waren halt tausend offene,

Jochen

offene Issues in dem Projekt.

Jochen

Das ist halt so, okay.

Jochen

Und einige schon sehr, sehr lange offen.

Jochen

Und ja, na ja.

Jochen

Ich meine, es ist ja klar,

Jochen

dass man das nicht so hinkriegen kann.

Jochen

Gerade wenn das dann halt viel verwendet wird,

Jochen

dann wird man halt erschlagen von dem Ansturm von Leuten,

Jochen

die irgendwas ändern wollen oder irgendwelche Probleme gefunden haben.

Jochen

Aber ja.

Jochen

Ist halt für Leute, die das halt noch ein Problem haben.

Jochen

Ja, das ist ein Open Source Schicksal so ein bisschen.

Jochen

Ja, ja, natürlich.

Jochen

Also es, ja, ja.

Jochen

Wo würdest du denn den Unterschied sehen zu,

Jochen

zu, zu, zu Hedge oder, oder Rye?

Jochen

Kann man das irgendwie kategorisieren,

Jochen

wo da die Unterschiede liegen?

Anna-Lena

Also ich habe es so ein bisschen kategorisiert

Anna-Lena

aufgrund der Dinge, die sie tun können.

Anna-Lena

Beispielsweise ist Rye somit das einzige Tool,

Anna-Lena

was wirklich alles kann.

Anna-Lena

Eben auch Python Version Management.

Anna-Lena

Dadurch, dass es eben nicht in Python geschrieben ist,

Anna-Lena

sondern in Rust.

Anna-Lena

Und man dann eben alles in einem Tool machen kann.

Dominik

Ja, auch so Project Scatboarding oder sowas

Dominik

mit fürchterlich opinionated und dann so.

Dominik

Na ja, sorry.

Dominik

Kein Problem.

Anna-Lena

Genau, und da gibt es PDM, Poetry, Hedge,

Anna-Lena

die noch mal so ein bisschen rausfallen,

Anna-Lena

weil sie, also PDM und Poetry zum Beispiel,

Anna-Lena

können kein Python Version Management machen.

Anna-Lena

Man kann einfach PyEnv benutzen,

Anna-Lena

aber die haben das nicht als eigene Funktionalität drin.

Anna-Lena

Also dass man irgendwie sagen kann Poetry, keine Ahnung,

Anna-Lena

add Python Version irgendwas.

Anna-Lena

Aber sowas gibt es nicht.

Anna-Lena

Und Hedge wiederum, das ist noch,

Anna-Lena

also wird auch natürlich sehr aktiv entwickelt.

Anna-Lena

Aber das kann zum Beispiel,

Anna-Lena

also jetzt gerade hat es noch keine Package Management Möglichkeiten.

Anna-Lena

Also man kann jetzt nicht wie bei Poetry,

Anna-Lena

da kann man ja sagen Poetry add irgendein Paket

Anna-Lena

und dann fügt Poetry das in die PyProject Tommelfile hinzu

Anna-Lena

und macht auch, versucht die Dependency-Konflikte zu lösen.

Anna-Lena

Und das kann Hedge noch nicht.

Anna-Lena

Der hat immer angekündigt, dass er das noch implementieren wird.

Anna-Lena

Aber bisher ist es noch nicht da.

Anna-Lena

Es sei denn, das wurde jetzt die letzten Tage hinzugefügt.

Anna-Lena

Ich habe es noch nicht gesehen.

Anna-Lena

Genau, ich glaube, das kommt so,

Anna-Lena

ein bisschen auf den Use Case drauf an.

Anna-Lena

Flit hatten wir auch schon besprochen.

Anna-Lena

Flit ist halt eben wirklich dazu gedacht,

Anna-Lena

wenn man einfach nur ein Package bilden und publishen möchte

Anna-Lena

und vor allem ein Package, was keinen C-Code hat oder ähnliches,

Anna-Lena

sondern wirklich nur Python-Code.

Anna-Lena

Ich glaube, das ist ganz gut, wenn man sich vorher mal überlegt,

Anna-Lena

was möchte ich überhaupt machen und dann dementsprechend

Anna-Lena

sich das Tool raussucht.

Anna-Lena

Ich muss aber auch sagen, dass bei diesen ganzen Tools

Anna-Lena

letztlich die persönliche Präferenz und was das Team macht,

Anna-Lena

auch eine riesengroße Rolle spielt.

Anna-Lena

Wenn jetzt alle im Team Poetry benutzen,

Anna-Lena

wird es wahrscheinlich schwierig, Hedge zu benutzen,

Anna-Lena

weil in der pipe-project.toml-File eben auch das Build-Backend

Anna-Lena

definiert ist und da steht dann eben Poetry drin.

Dominik

Vielleicht noch mal ganz kurz zu dem Packaging.

Dominik

Also ihr wollt ein Paket auf PyPI veröffentlichen.

Dominik

Das ist so das, was dahinter steht.

Anna-Lena

Du meinst mit dem Publishen gerade?

Anna-Lena

Ja.

Anna-Lena

Ja, genau. Stimmt.

Anna-Lena

Das kann man vielleicht noch einmal kurz erklären,

Anna-Lena

dass man bei Packaging zwei verschiedene Schritte dann hat.

Anna-Lena

Also man kann den Build-Schritt machen.

Anna-Lena

Das bedeutet, dass ein wheel-File erstellt wird,

Anna-Lena

was so das Format ist, mit dem das Package beschrieben wird.

Anna-Lena

Und da ist dann wirklich auch alles drin, was das Package braucht.

Anna-Lena

Das ist auch letztlich das, was von PyPI gezogen wird,

Anna-Lena

wenn man pip install was auch immer macht.

Anna-Lena

Und es wird ein tarball-File erstellt, so .tar.gz.

Anna-Lena

Und der Publish-Step ist dann,

Anna-Lena

dass man diese Dateien zu PyPI oder zu irgendeinem anderen Index

Anna-Lena

veröffentlicht, was man ja gar nicht unbedingt machen möchte.

Anna-Lena

Manchmal reicht es auch schon, wenn man ein wheel-File erstellt,

Anna-Lena

was man dann lokal hat, was andere installieren können.

Anna-Lena

Für Wheels vielleicht noch.

Dominik

Bei Windows gibt es Goalke, eine wundervolle Bibliothek

Dominik

von gut gepatchten Wheels für Pakete,

Dominik

die man sonst bei Windows nicht einfach so installieren kann,

Dominik

weil man die irgendwie selber kompilieren müsste,

Dominik

wo dann Kompilierungs-Tools-Probleme auftauchen können oder die es nicht gibt.

Dominik

Aber auf Windows geht es immer.

Dominik

Also super tolle Quelle.

Anna-Lena

Ich merke schon, wenn ich irgendwann mal doch Windows benutzen muss,

Anna-Lena

dann werde ich auf dich zukommen.

Anna-Lena

Du hast alle Hexen, die man so braucht.

Dominik

Ja, das ist einfach so viel Quatsch, die man irgendwann gegenfaut.

Dominik

Irgendwann geht es dann vielleicht, ja.

Jochen

Letztens hat jemand einen ganz alten Webcomic repostet

Jochen

auf Mastodon von 2004 oder so.

Jochen

Ich weiß nicht, welcher Webcomic das jetzt war.

Jochen

Man sieht halt irgendwie so Star-Trek-Setting

Jochen

und im Hintergrund irgendwie Klingonen sich mit so Schmerzstöcken quälen

Jochen

und einem vor dem Grund sagen so,

Jochen

oh, ich habe was noch viel, viel Härteres gefunden als Schmerzstöcke.

Jochen

Irgendwie ist dann hier einfach Windows auf meinem Laptop.

Dominik

Obwohl man tatsächlich dazu sagen muss, ja,

Dominik

also mit den neuesten Power-Shades und den neuesten Windows-Terminals

Dominik

und wenn man das so ein bisschen beherrscht,

Dominik

kann man auch ohne VSA einigermaßen gut entwickeln.

Dominik

Es gibt halt so ein paar Sachen, die gibt es noch nicht als Pakete.

Dominik

Aber für die meisten Sachen geht es ordentlich.

Dominik

Und mittlerweile würde ich jetzt behaupten, auch für Windows.

Dominik

Du kennst dich damit sicherlich gut aus.

Dominik

Ja, ich muss halt damit die ganze Zeit arbeiten.

Dominik

Also ich würde es auch jetzt nicht unbedingt immer machen wollen,

Dominik

aber es geht irgendwie schon.

Dominik

Also ich brauche keinen Docker mehr, wie es vorher die ganze Zeit war.

Dominik

Dann muss man halt einfach Docker installieren und dann hält das laufend.

Dominik

Ja, mit Docker geht es natürlich.

Dominik

Aber auch da hast du natürlich Probleme.

Dominik

Genau, ja.

Dominik

Und das wird nach einer Zeit alles ein bisschen langsamer und hässlich.

Dominik

Aber es geht auch mittlerweile relativ vieles

Dominik

oder eigentlich alles nativ direkt mit Ausnahmen.

Dominik

Es gibt so ein paar Pakete, die laufen.

Dominik

Ansible zum Beispiel.

Dominik

Zickt halt rum, muss halt doch ein Docker laufen oder auf ESL oder sowas.

Anna-Lena

Ich habe gerade noch gedacht, mit der Frage von gerade,

Anna-Lena

mit den verschiedenen Tools, was, finde ich, auch eine große Rolle spielt,

Anna-Lena

ist, in welchem Entwicklungsstadium die sich befinden,

Anna-Lena

beziehungsweise wie aktiv die weiterentwickelt werden.

Anna-Lena

Weil Rai zum Beispiel ist ja ein sehr junges Tool.

Anna-Lena

Das ist erst, glaube ich, im Mai rausgekommen

Anna-Lena

und ist auch eigentlich entstanden mehr so als Spielerei, würde ich mal sagen.

Anna-Lena

Er hat jetzt nicht gedacht, der Auto, dass das jetzt ein Tool wird,

Anna-Lena

was total viel läuft.

Anna-Lena

Dass das für viele Leute genutzt wird.

Dominik

Das nutzen aber voll viele Leute.

Dominik

Also Rust jetzt hat ja, also Armin Gronacher ist wahrscheinlich der Typ,

Dominik

der hat Flask gemacht, ne?

Jochen

Ja, ganz viele, ganz viele Projekte.

Dominik

Jochen weiß da mehr.

Dominik

Aber ja, also er macht jetzt gar keinen Python mehr hauptsächlich,

Dominik

wenn ich das richtig verstehe.

Dominik

Aber er benutzt halt Python noch manchmal.

Dominik

Und dafür hat er dann in Rust so eine Lösung geschrieben,

Dominik

die tatsächlich so ein bisschen nach dem aussieht,

Dominik

was sich eigentlich die meisten Leute so wünschen.

Dominik

Aber ja, also ich habe es auch so ein bisschen ausprobiert

Dominik

und dachte mir so, na, nicht ganz das, was ich brauche.

Anna-Lena

Was hat dir denn gefehlt, oder?

Dominik

Also der Stil, wie.

Dominik

Also vor allem das Project Scaffolding

Dominik

und wo die Sachen dann liegen und so.

Dominik

Das ist halt alles opinionated.

Dominik

Ich meine, ist halt, sein gutes Recht,

Dominik

er macht halt sein Kram, ist ja voll super für ihn,

Dominik

aber nicht das, was ich machen würde.

Dominik

Ich hätte das gerne konfigurierbarer oder so.

Dominik

Und würde halt das gerne auf meinen Stil umbringen.

Dominik

Ja.

Anna-Lena

Ich glaube, das muss man halt auch so ein bisschen im Kopf behalten,

Anna-Lena

wenn man jetzt sagt, okay, wir benutzen Rai

Anna-Lena

und wir benutzen das vielleicht auch im Projekt,

Anna-Lena

sich einmal vor Augen zu führen, okay,

Anna-Lena

das ist, wird jetzt gerade eben,

Anna-Lena

von Armin entwickelt und gerade ist es auch sehr aktiv.

Anna-Lena

Also der bringt da viele neue Releases raus,

Anna-Lena

aber man weiß ja nicht so wirklich, was damit passiert.

Anna-Lena

Genau, weil im halben Jahr hat er was anderes vor,

Dominik

hat einen anderen Job und hat ein neues Hobby oder sowas.

Dominik

Dann ist halt, liegt es halt darum, wie es halt oft so ist, ne?

Dominik

Genau.

Anna-Lena

Und sowas wie Poetry, würde ich jetzt sagen,

Anna-Lena

ist schon so lange etabliert,

Anna-Lena

dass es eher sicherer, dass das auch weiterverwendet wird.

Dominik

Ja, also ich habe,

Dominik

also weil Jochen halt sagte,

Dominik

er nimmt jetzt auch kein Poetry mehr

Dominik

und er macht das alles über PipTools,

Dominik

auch das mal benutzt.

Dominik

Und das gefiel mir auch überhaupt nicht.

Dominik

Ich finde es total fürchterlich,

Dominik

weil ich, ja, es ist so ein bisschen,

Jochen

ich benutze es auch nicht pur, sozusagen,

Jochen

sondern ich verdünne das halt.

Jochen

Ich habe dann noch so Wrapper außenrum,

Jochen

die ich dann benutze.

Dominik

Genau, also man muss sich halt einen eigenen Wrapper drumherum bauen

Dominik

und das, damit das halt alles wieder irgendwie nett ist und so.

Jochen

Ja, insofern, ob man das Leuten einfach so zumuten kann.

Dominik

Ja, also die Frage ist halt auch da, ne,

Dominik

wenn ich halt jetzt Neulinge im Projekt habe,

Dominik

irgendwie ein Junior-Dev oder so,

Dominik

der gerade Python das erste Mal in der Hand hat,

Dominik

wie erkläre ich ihm das denn jetzt?

Dominik

Ja, ich habe übrigens das gemacht und das gemacht

Dominik

und das gemacht und das gemacht und dann hier von oben rein

Dominik

und von hinten durch, dann, oh.

Dominik

Oh, das ist aber kompliziert,

Dominik

dann ist er direkt nach zehn Minuten ausgestiegen

Dominik

und fängt hier von vorne an.

Dominik

Das glaube ich auch.

Anna-Lena

Viele der Tools benutzen auch andere Tools under the hood.

Anna-Lena

Also, Rye zum Beispiel benutzt Pip-Tools

Anna-Lena

und natürlich benutzen viele der anderen dann auch Pip.

Anna-Lena

Also, wenn man jetzt irgendwie Poetry-Add,

Anna-Lena

irgendein Package macht,

Anna-Lena

dann nutzt das, glaube ich, Pip oder Pip-X,

Anna-Lena

ich bin mir gar nicht sicher.

Anna-Lena

Aber viele von diesen grundlegenden Tools

Anna-Lena

werden eben auch wiederverwendet

Anna-Lena

und haben dann aber trotzdem diese übergeordneten Befehle

Anna-Lena

Poetry-Add.

Dominik

Ja, also Pip-X ist auch nochmal interessant.

Dominik

Also, es gibt ja verschiedene Wege zum Beispiel,

Dominik

dann sowas wie Poetry auch zu installieren.

Dominik

Man kann es halt einmal selber irgendwie

Dominik

von Gitter ziehen und bauen,

Dominik

man kann es halt irgendwie über Pip selbst installieren,

Dominik

man kann es über Pip-X installieren

Dominik

oder über, ich glaube, der empfohlene Weg ist,

Dominik

das Installationsskript zu verwenden.

Jochen

Ist es immer noch irgendwie,

Jochen

man nimmt die URL und pipet die nach Curl,

Jochen

oder zieht die per Curl und pipet die in die Shell oder so?

Jochen

So ähnlich, ja.

Dominik

Aber es gibt mittlerweile ein neues Skript und die anderen,

Dominik

beiden alten Skripte sind auch wieder deprecated

Dominik

und die sollen wir nicht mehr verwenden

Dominik

und da gibt es dann irgendeine Warning

Dominik

und es funktioniert nicht mehr und es geht kaputt.

Jochen

Also, da gibt es übrigens auch bittere,

Jochen

also, ja, ich meine, Security-mäßig

Jochen

immer schon so ein bisschen fragwürdig, das so zu machen.

Jochen

Aber es gibt halt auch viele Dinge,

Jochen

die die Leute vielleicht nicht wissen,

Jochen

die halt echt übel sind.

Jochen

Selbst wenn man bei Curl halt sagt,

Jochen

irgendwie benutzt doch bitte SSL,

Jochen

macht es zuerst nur Request auf HTTP.

Jochen

Das heißt, wenn ein Angreifer dazwischen sitzt,

Jochen

der kann das, selbst wenn du sagst,

Jochen

verwende bitte HTTPS,

Jochen

wenn du das nicht in die URL dazu geschrieben hast,

Jochen

Konfigurationsoption gesetzt hast,

Jochen

kann sich jemand dazwischen klemmen

Jochen

und einfach den ersten HTTP-Request abfangen

Jochen

und dann was zurückliefern.

Jochen

Das heißt, wenn jemand in deinem Netzwerk sitzt,

Jochen

dann kann er dir da Dinge unterschieben,

Jochen

wenn du das so machst.

Jochen

Also, das ist schon, also, naja.

Jochen

Aber, ja, ich verstehe,

Jochen

warum Leute auf die Idee kommen, das so zu machen,

Jochen

weil, ja, die Alternativen sind auch alle nicht so toll.

Dominik

Gut, also, Rust-Up ist auch per Curl übrigens,

Dominik

das an der Stelle mal.

Dominik

Ja.

Dominik

Ja.

Dominik

Ja, also, ist die Frage auch noch interessant.

Dominik

Habt ihr irgendwelche Pakete,

Dominik

die ihr in das System Python mit direkt installiert?

Dominik

Ganz verpflichtend, oder sagt ihr alles,

Dominik

nein, pur, da kommt nichts dran,

Dominik

das ist rein Standard-Lib.

Dominik

Also, ich installiere tatsächlich immer Django.

Dominik

Ich versuche tatsächlich zu vermeiden.

Dominik

Also, bei mir ist immer Django drin.

Dominik

Nee, bei mir nicht.

Dominik

Also, ich hätte gerne immer Start-Project zum Beispiel.

Jochen

Ach so, damit du quasi im Template

Jochen

direkt immer was erzeugen kannst.

Jochen

Ja.

Jochen

Okay, ja gut.

Jochen

Und Rich ist immer drin,

Dominik

weil ich habe immer so ein paar Sachen in meiner Shell,

Dominik

die auf Python basiert sind

Dominik

und da hätte ich gerne immer Rich drin

Dominik

und Typer hätte ich halt in dem Fall auch gerne drin,

Dominik

weil ich halt viele Kommando-Talent-Tools,

Dominik

die ich im System weit benutze, baue.

Dominik

Deswegen auch da.

Dominik

Ja, aber das sind dann schon wieder so Dependencies,

Dominik

die ich dazu packen muss.

Anna-Lena

Ich habe tatsächlich noch nie Django benutzt.

Anna-Lena

Warum hast du das?

Anna-Lena

Also, du hast das gerade kurz erwähnt,

Anna-Lena

aber nicht so, dass ich das verstehen konnte.

Dominik

Also, das ist eigentlich nur ein einziger Grund.

Dominik

Normalerweise, wenn ich ein neues Projekt mache,

Dominik

benutze ich Django Start-Project,

Dominik

was quasi den Scaffold macht

Dominik

und ich benutze dafür mein eigenes Template.

Dominik

Du kannst halt dann bei Start-Project

Dominik

einen Pfad zu deinem Template angeben

Dominik

und damit aber Start-Project

Dominik

verfügbar ist,

Dominik

muss halt Django schon da sein.

Dominik

Und deswegen zähle ich Django einfach direkt mit.

Dominik

Ja, das ergibt Sinn.

Anna-Lena

Dieses mit dem Project Scaffolding,

Anna-Lena

da habe ich auch gerade daran gedacht,

Anna-Lena

dass die meisten Packaging-Tools,

Anna-Lena

die haben da auch eben Befehle für.

Anna-Lena

Das ist vielleicht ganz gut zu wissen.

Anna-Lena

Also, normalerweise hat man irgendwie

Anna-Lena

Tests-Directory und Source-Directory

Anna-Lena

und die meisten Tools,

Anna-Lena

beispielsweise jetzt Hedge-Poetry,

Anna-Lena

die haben alle einen Befehl.

Anna-Lena

Könnte irgendwie Hedge-Init,

Anna-Lena

nee, Hedge-New und dann sozusagen

Anna-Lena

so eine Init-Flag beispielsweise,

Anna-Lena

die erstellen dann das PyProject-Hummel-File

Anna-Lena

schon mal für einen.

Anna-Lena

Da sind dann auch viele der Tools schon konfiguriert,

Anna-Lena

wie Black beispielsweise

Anna-Lena

und dann auch diese Folder-Struktur.

Anna-Lena

Also, das kann auch ganz nett sein,

Anna-Lena

wenn man das nicht alles selbst machen will.

Dominik

Ja, oder wenn man das mag, ja.

Dominik

Das ist zum Beispiel so ein Punkt,

Dominik

wo ich sagen würde,

Dominik

ich hätte da gerne,

Dominik

dass er dann ein Template nimmt,

Dominik

was ich ihm vorgebe,

Dominik

weil ich nicht mag, wie der es macht.

Dominik

Und das ist auch der Grund.

Dominik

Also, es gibt noch ein paar andere Möglichkeiten,

Dominik

so ein Project Scaffolding zu machen,

Dominik

sowas wie Cookie Cutter oder so.

Dominik

Das ist halt,

Dominik

also ich finde es mittlerweile recht bloated,

Dominik

wie das haben wir früher halt so ein paar Mal öfter gemacht,

Dominik

aber da ist halt so viel Zeug drin,

Dominik

das du halt nie brauchst,

Dominik

dass du halt alles immer wegschmeißt

Dominik

und rausschneiden musst.

Dominik

Total, ich weiß nicht mehr, warum man so.

Jochen

Wenn man jetzt so ein Standardprojekt,

Jochen

Django-Cookie-Cutter-Projekt nimmt oder so,

Jochen

genau, das habe ich früher,

Jochen

weil früher war das für mich alles so,

Jochen

oh, es ist so viel Zeug,

Jochen

was man irgendwie einstellen muss und so,

Jochen

dann gut, dass da jemand anders drüber nachdenken muss

Jochen

und nicht ich.

Jochen

Und inzwischen denke ich mir auch so,

Jochen

na ja, nee, ich mache das lieber selber.

Jochen

Aber das Problem ist,

Jochen

wenn jetzt jemand anfängt,

Jochen

was empfiehlt man dem?

Jochen

Ich würde fast sagen,

Jochen

gar keinen Scaffold,

Jochen

sondern alles selber bauen.

Jochen

Ja, aber dann hat er halt eine schwere Lehrkurve

Jochen

erst mal vor sich.

Jochen

Und es ist auch Kurve Buchung,

Jochen

du musst alles aufräumen.

Jochen

Ich kenne halt auch so Kundenprojekte,

Jochen

wo die Leute an da irgendwas angefangen haben

Jochen

und denkst dir so, oh mein Gott.

Dominik

Ja, Cookie-Cutter ist vielleicht gar nicht so doof,

Dominik

es gibt ja auch für Data-Science-Templates oder sowas

Dominik

und vielleicht kann man da auch sein eigenes Template bauen,

Dominik

ich weiß es nicht.

Dominik

Ich habe es für Django halt,

Dominik

Django-Template.

Dominik

Interessanterweise,

Dominik

man kann mit diesem Django-Start-Project-Template

Dominik

das auch missbrauchen für Nicht-Django-Projekte.

Dominik

Das heißt, du kannst halt da tatsächlich auch andere Projekte,

Dominik

die gar nicht Django brauchen, haben.

Dominik

Deswegen habe ich Django tatsächlich am Anfang installiert,

Dominik

weil ich kann einfach arbiträre Projekte

Dominik

mit meinem Django-Template bauen,

Dominik

was im Prinzip sowas ähnliches macht,

Dominik

wo einfach Ginger ersetzen für irgendwelche Python-Files

Dominik

und halt Dietrich-Strukturen bauen.

Dominik

Mir ist fast so wie Cookie-Cutter nicht ganz so mächtig

Dominik

und ich brauche es halt auch nur so für kleine Sachen.

Dominik

Ich mache jetzt auch nicht so mega große Dinge, aber ja.

Jochen

Ja, und ein Problem, was man dabei hat, ist halt,

Jochen

was ist, wenn sich an dem Basis-Template irgendwas ändert?

Jochen

Und man möchte jetzt alle Projekte,

Jochen

die man mit dem Template erzeugt hat,

Jochen

auf den aktuellen Stand bringen.

Jochen

Wie macht man denn das?

Jochen

Das ist eine gute Frage.

Dominik

Ich bin da gerade dabei, mir was zu überlegen.

Dominik

Und zwar ist das sowas wie,

Dominik

du musst dir halt den Commit merken,

Dominik

von dem du das Template gescaffoldet hast.

Dominik

Dann musst du einen neuen Brand erstellen,

Dominik

musst dann den neuen Commit-Hash auschecken,

Dominik

machst dazu einen Div,

Dominik

dann hast du halt den Div von deinem Template

Dominik

und dann machst du ...

Dominik

dann machst du einen Rebase von deinem ganzen Projekt

Dominik

auf diesen Div drauf.

Dominik

So ungefähr funktioniert das.

Dominik

Und dafür schreibe ich gerade zum Kommando

Dominik

und das funktioniert.

Dominik

Okay.

Dominik

Ja, und das ist aber ...

Dominik

Ja, ich habe es Cherry genannt.

Dominik

Ich mache dann CC Cherry

Dominik

und dann pickt der quasi alle Changes

Dominik

von meinem Template-Scaffold.

Dominik

Okay.

Dominik

Du musst dich halt an zwei Sachen halten.

Dominik

Zum Beispiel darfst du halt jetzt nicht

Dominik

an den Sachen, die das Template bereitstellt,

Dominik

eigentlich rumfummeln.

Dominik

Ich habe zum Beispiel so Core-Sachen,

Dominik

die kommen halt immer aus dem Template.

Dominik

Das heißt, ich muss die immer im Template bauen

Dominik

und dann picken.

Dominik

Anstatt, dass ich Sachen selber im Core ändere.

Dominik

Ich könnte halt nur Sachen dazufügen

Dominik

und dann sonst wird es halt immer Mesh-Konflikte geben,

Dominik

wo du halt immer dann manuell rumfummeln musst.

Dominik

Deswegen würde ich einfach sagen,

Dominik

meine Konvention ist das dann einfach nicht zu machen,

Dominik

weil das brauche ich auch nicht,

Dominik

weil ich habe halt dann E-Apps in der Applikation,

Dominik

die für die Applikation da sind

Dominik

und dann machen die halt nur Sachen,

Dominik

die die Applikation macht

Dominik

und Core-Funktionalität kommt halt immer dann

Dominik

aus der Basis raus.

Dominik

Aber, ja.

Jochen

Oder auch noch eine Frage.

Jochen

Genau, gibt es irgendwie,

Jochen

dass bei diesen ganzen Tools

Jochen

gibt es da auch so Funktionalitäten für.

Jochen

Ich habe jetzt irgendwie 30 Reports,

Jochen

Repositories, die alle relativ ähnlich sind.

Jochen

jetzt gern zum Beispiel, weiß ich nicht, Poetry Update

Jochen

oder was auch immer, mal

Jochen

auf allen ausführen? Gibt es da

Jochen

Support?

Anna-Lena

Ich hatte den Fall noch nie, das kann

Anna-Lena

gut sein. Also habe ich noch

Anna-Lena

nie ausprobiert, ausprobieren müssen.

Jochen

Ja, und ich kenne das auch immer so, dass dann Leute sich

Jochen

ihre eigenen Dinge zum Verwalten von vielen Projekten

Jochen

schreiben.

Jochen

Also ich glaube, das ist sehr gefährlich,

Dominik

weil die Projekte alle so unterschiedlich sind,

Dominik

da alle gleichzeitig anfassen.

Jochen

Ja, also zum Beispiel

Jochen

in der letzten

Jochen

Jungle Chat Episode wurde Adam Johnson gefragt,

Jochen

wie er das hinkriegt, dass er irgendwie 70

Jochen

populäre Repositories

Jochen

maintained. Oder es gibt ja

Jochen

Leute, die da ganz viel haben.

Jochen

Der erste Schritt ist, dass man alle Projekte ungefähr auf den gleichen

Jochen

Status bringen muss. Und dann kann man

Jochen

mit Skripten drüber gehen.

Jochen

Ja, ich habe auch

Dominik

für die Produktivsachen so ein Ansible-Book,

Dominik

das halt dann hingeht und einfach Python updatet.

Dominik

Also zumindest Python Minor oder so, oder Buckmix geht ja noch.

Dominik

Aber wenn du halt Major, dann musst du

Dominik

halt eigentlich immer das Projekt auschecken, gucken, ob es geht.

Dominik

Noch so eine Frage halt.

Dominik

Wie macht ihr das dann mit Tests für

Dominik

Produktion, für so Builds in verschiedenen Versionen?

Dominik

Nehmt ihr da alle Tox? Oder

Dominik

wie macht ihr das am besten?

Anna-Lena

Ja, genau. Also ich habe

Anna-Lena

bisher immer Tox verwendet.

Anna-Lena

Auch weil es eben meistens schon, wenn man

Anna-Lena

jetzt irgendwie Hedge oder ähnliches hat, dann

Anna-Lena

mitkonfiguriert ist. Einfach der einfache

Dominik

Teil. Ah, okay. Also Hedge konfiguriert Tox auch

Dominik

direkt mit... Soweit ich weiß,

Dominik

ja. Und dann sagt ihr einfach,

Dominik

okay, ich unterstütze bis zu dieser

Dominik

und dieser Version runter und

Dominik

ähm...

Dominik

Dann installiert...

Dominik

Also was macht Tox nochmal? Also Tox

Dominik

macht verschiedene Pythons. Ja, das

Jochen

erzeugt dir zum Beispiel alle virtuell, also die

Jochen

unterschiedlichen Virtual Amps in unterschiedlichen Versionen

Jochen

und lässt dann da deine Tests

Jochen

gegenlaufen und so und macht dann hinterher eine Zusammenfassung,

Jochen

was alles funktioniert oder nicht funktioniert hat.

Dominik

Woher nimmt denn Tox die Python-Version?

Dominik

Ähm...

Dominik

Das ist eine gute Frage.

Dominik

Da...

Dominik

Äh...

Dominik

Ich weiß gar nicht,

Dominik

ob es selber eine Möglichkeit

Dominik

gibt.

Jochen

Ob die auf der Maschine schon da sein müssen

Jochen

oder ob es selber...

Jochen

Docker oder...

Jochen

Nee, nee, nicht Docker. Docker, das glaube ich

Jochen

nicht, aber ich glaube...

Jochen

Aber muss da sein?

Jochen

Ich glaube, es kann die selber installieren

Jochen

tatsächlich. Ich glaube, weil es nicht da sein muss, weil

Jochen

ich glaube... Nee, ich

Jochen

hab... Ich hab wahrscheinlich alte

Jochen

Versionen nicht mehr, aber die Tox-Dinger testen

Jochen

auch gegen alte Python-Versionen und

Jochen

ähm... Das hat eigentlich immer funktioniert. Also

Jochen

wahrscheinlich... Also, so mein...

Jochen

Mein Guess wäre an der Stelle, ja,

Jochen

Tox macht das irgendwie selber, aber

Jochen

ich weiß es auch nicht genau. Okay, Bold Prediction.

Jochen

Ja.

Jochen

Es gibt auch Nox.

Jochen

Gar nicht so sicher. Auch noch ganz interessant,

Jochen

weil ich habe auch schon viel zu viel Zeit damit

Jochen

verwendet, irgendwie

Jochen

Tox-Inni so zu konfigurieren, wie ich das gerne hätte

Jochen

und dann kann man da ja...

Jochen

Und es dauert immer länger, als man denkt, dann funktioniert es doch nicht

Jochen

und dann... Und bei Nox

Jochen

kann man einfach Python-Code hinschreiben

Jochen

und das finden viele auch angenehmer.

Jochen

Ich habe es aber auch noch nicht, weil jetzt habe ich schon so viel...

Jochen

Jetzt unterliege ich der

Jochen

Sun-Cost-Fallacy und jetzt habe ich schon so viel Zeit

Jochen

in Tox-Innis investiert. Jetzt gehe ich davon nicht mehr.

Jochen

Weg.

Anna-Lena

Ich habe gerade mal nebenbei nachgeguckt

Anna-Lena

und es sieht so aus, als müsste man das vorher

Anna-Lena

installiert haben. Ach doch, okay.

Dominik

Okay, also tatsächlich

Dominik

PyEnv und dann alle Versionen, die du halt testen willst,

Dominik

einmal draufhauen und dann Tox sagen,

Dominik

wo die sind.

Dominik

Ja, ja, ja.

Dominik

Also ich finde so Backwards-Compatibility

Dominik

Maintain auch fürchterlich, ne?

Dominik

Ja, aber...

Dominik

Ich nutze gerne sowas wie neue Sprachfeatures,

Dominik

einfach so direkt.

Jochen

Kann man ja auch so in Projekten,

Jochen

die nicht andere Leute, auf die andere Leute

Jochen

nicht dependen, kann man das ja gerne machen, aber ich meine,

Jochen

wenn... Also viele können sich ja gar nicht so unbedingt

Jochen

aussuchen, auf welche Python-Visienz sie sind und dann...

Dominik

Ja, aber warum nicht? Das ist schon mal so ein

Dominik

Infrastruktur-Problem, wo ich sagen würde, erst mal

Dominik

dieses Infrastruktur-Problem lösen?

Jochen

Naja, nee, zum Beispiel, wenn du jetzt die Kombination hast

Jochen

aus Data Science und zum Beispiel Web,

Jochen

dann gibt es halt diverse Geschichten,

Jochen

so, weiß ich nicht, irgendwie PyTorch

Jochen

oder Dinge in diesem Ökosystem,

Jochen

die halt nicht

Jochen

auf Python 3.11 laufen. Das kannst du

Dominik

dann, geht halt noch nicht. Ja, aber genau, aber das ist halt

Dominik

so ein Ding, ne? Harte, obere

Dominik

Abhängigkeitsschranke. Warum laufen die nicht auf Python 3.11?

Dominik

Ja, gut, weiß ich auch nicht so genau. Ja, aber das ist ja

Dominik

genau der Punkt, weil die meistens haben ihre

Dominik

Top, dann

Dominik

gesetzt, oder viele Pakete in diesem Data Science

Dominik

Umfeld, die gehen auch nicht für Python

Dominik

größer 4, also größer 3,

Dominik

also nicht für 4.

Dominik

Ja. Warum auch immer man

Dominik

das sagen möchte. Ich würde sagen,

Dominik

warum nicht? Wenn Python 4, vielleicht läuft das ja noch.

Dominik

Mal ausprobieren.

Dominik

Ja, das ist nicht so einfach.

Jochen

Ja, ich weiß nicht, haben wir denn

Jochen

irgendwie noch irgendwie ein

Jochen

größeres Thema bei diesem Paket?

Jochen

Paketierungstools,

Jochen

Projektmanagement?

Anna-Lena

Ich glaube vielleicht die Quintessenz, ne?

Anna-Lena

Dass es irgendwie nicht das beste Tool gibt.

Anna-Lena

Das wünschen sich irgendwie alle,

Anna-Lena

aber bis zur Zeit ist es leider noch nicht

Anna-Lena

aufgetaucht. Genau.

Anna-Lena

Ja, und es ist eben auch schwierig, das hast du ja auch

Anna-Lena

gerade beschrieben, dass man nicht von Python

Anna-Lena

aus dieses Tool herstellen kann.

Anna-Lena

Und es gibt immer mal wieder Ansätze, das zu lösen,

Anna-Lena

aber so wirklich das beste

Anna-Lena

Tool, was glaube ich alle

Anna-Lena

adoptieren werden, kann man es im Deutschen

Anna-Lena

sagen, was alle

Anna-Lena

benutzen werden, ist irgendwie noch nicht so wirklich

Anna-Lena

gefunden. Du hast es ja auch gerade gesagt, zum Beispiel

Anna-Lena

Rai kann ja theoretisch alles,

Anna-Lena

aber wenn es dann nicht wirklich dem

Anna-Lena

entspricht, auch diesem Workflow oder wie es

Anna-Lena

aufgebaut ist, wie man das gerne hätte und man

Anna-Lena

benutzt es dann nicht, dann fällt man eben

Anna-Lena

doch wieder auf eins der anderen Tools zurück. Und dadurch

Anna-Lena

entsteht das auch, dass so viele Leute so viele verschiedene

Anna-Lena

Tools benutzen.

Anna-Lena

Ja.

Anna-Lena

Ja.

Anna-Lena

Euag zum Beispiel

Anna-Lena

oder sowas, wie heißt das? Habe ich noch nie gehört.

Dominik

Das ist auch so eine Rust-Implementierung von

Dominik

Python-Paketen

Dominik

für VENVs und sowas, Format

Dominik

Activate-Add und sowas.

Jochen

Ja, aber dieses Bootstrapping-Problem

Jochen

ist halt schon auch eines der

Jochen

grundlegenden, dass man halt nicht

Jochen

einfach irgendwie,

Jochen

ja, dass man immer schon

Jochen

irgendwie Python und Virtual

Jochen

Envs und so, das irgendwie

Jochen

können muss, um halt irgendwas, um sich

Jochen

ein Tool zu installieren, das dann

Jochen

Probleme löst. Und ja,

Jochen

da bleibt wahrscheinlich nur der Ausweg irgendwie über

Jochen

irgendwas zu gehen, was halt, wo

Jochen

man halt ein Binary deployen kann, also Rust oder

Jochen

Go oder so, aber

Jochen

Ja.

Dominik

Also ich würde gerne noch vielleicht ein, zwei Sachen zu diesem Packaging-Ding sagen.

Dominik

Also mich interessiert das zum Beispiel noch, also wann würde man denn zum Beispiel

Dominik

ein Package auf Pypi

Dominik

publishen wollen?

Dominik

Also es gibt ja da recht viele Pakete,

Dominik

würde ich sagen. Ja, also ich denke,

Anna-Lena

das kommt total darauf an, also ob man das

Anna-Lena

irgendwie gerne einfach mal ausprobieren

Anna-Lena

will, habe ich auch schon häufiger mal mitbekommen, dass Leute

Anna-Lena

wirklich einfach mal

Anna-Lena

sich ein bisschen einlesen möchten in diese ganze Thematik

Anna-Lena

und wie funktioniert das überhaupt und dann so ein kleines

Anna-Lena

Beispielprojekt schreiben,

Anna-Lena

weil man muss ja nicht viel machen, man kann an sich

Anna-Lena

einfach einen Account erstellen und dann kann man

Anna-Lena

sein Paket hochladen und zugänglich

Anna-Lena

machen. Darum muss man, glaube ich, auch sehr aufpassen,

Anna-Lena

was man sich so installiert von Pypi.

Anna-Lena

Genau, oder

Anna-Lena

dass man, was auch

Anna-Lena

häufiger vorkommt, das ist jetzt dann, dass man

Anna-Lena

so einen internen Packaging

Anna-Lena

Index benutzen würde, wenn man

Anna-Lena

beispielsweise in einem großen Unternehmen

Anna-Lena

arbeitet und Code

Anna-Lena

zwischen verschiedenen

Anna-Lena

Gruppen oder Abteilungen teilen

Anna-Lena

möchte. So eine Core-Library quasi, so eine eigene.

Anna-Lena

Ja, genau, dass

Anna-Lena

man das dann hochlädt, sodass andere

Anna-Lena

das wieder installieren können.

Anna-Lena

Genau.

Anna-Lena

Gibt es, denke ich, verschiedene

Anna-Lena

Use Cases. Und

Anna-Lena

es gibt natürlich auch total viele tolle Open Source

Anna-Lena

Libraries, wie beispielsweise

Anna-Lena

4D.

Anna-Lena

Die man sich darüber

Anna-Lena

installieren kann, einfach weil

Anna-Lena

jemand sich mal dachte, boah, das

Anna-Lena

müsste man mal machen, das mache ich jetzt mal

Anna-Lena

und das total populär geworden ist.

Anna-Lena

Ich finde aber auch in dieser Hinsicht, wir hatten da ja gerade

Anna-Lena

schon mit Poetry drüber geredet, dass da so viele

Anna-Lena

offene Issues waren, teilweise,

Anna-Lena

dass man häufig auch vergisst,

Anna-Lena

dass da eine Person hinter sitzt, die das

Anna-Lena

eventuell noch in ihrer freien Zeit macht.

Anna-Lena

Und dass man das

Anna-Lena

auch ganz häufig

Anna-Lena

wertschätzender beurteilen muss,

Anna-Lena

als man es tut, wenn Dinge nicht funktionieren.

Dominik

Das ist total krass. Also wie soll ich das denn

Dominik

jemals schaffen? Also welche freie Zeit?

Dominik

Fangen wir mal so.

Jochen

Ja, das ist ja auch

Jochen

ein sehr, sehr verbreitetes Problem,

Jochen

dass Leute dann halt

Jochen

irgendwie, also

Jochen

dass dann Maintainer von so Projekten

Jochen

verschwinden, liegt ja häufig daran,

Jochen

dass sie das dann halt irgendwie hinkriegen.

Jochen

Aber man kriegt das halt nur eine Zeit lang irgendwie hin

Jochen

und irgendwann ist man halt einfach durch.

Jochen

Und dann ist halt,

Jochen

dann geht man halt irgendwie was mit Holz

Jochen

machen oder so und das Projekt ist halt nicht mehr

Jochen

Maintainer.

Jochen

Ja, vor allem,

Jochen

wenn der Ton dann nicht wertschätzend ist,

Anna-Lena

wenn Leute Ansprüche stellen und sagen,

Anna-Lena

jetzt sieh aber mal zu, dass du das machst

Anna-Lena

oder es funktioniert hier nicht und warum nicht und gib mir

Anna-Lena

bitte die Lösung.

Anna-Lena

Ja, stelle ich mir

Anna-Lena

auch schon ganz schön frustrierend vor, wenn man sowas hat.

Anna-Lena

Ja.

Anna-Lena

Ja.

Anna-Lena

Ja gut, der Computer

Anna-Lena

und Internet und so, das ist eh

Anna-Lena

immer, oh je.

Dominik

Ungefilterte Menschen aufeinander

Dominik

loslassen.

Dominik

Tja.

Dominik

Die sich gegenseitig nicht sehen können.

Anna-Lena

Aber die Community ist auch, finde ich, sehr wertschätzend

Anna-Lena

und freundlich. Also wenn ich jetzt auf Python-Konferenzen

Anna-Lena

war, die Leute sind ja wirklich nett.

Anna-Lena

Also man muss dann irgendwie Sorge haben, Vortrag

Anna-Lena

zu halten und Fehler zu machen, weil

Anna-Lena

da sitzt niemand, der dich dann ausbuht

Anna-Lena

oder irgendwie sagt, boah, was hast denn du jetzt für ein Mist

Anna-Lena

fabriziert?

Anna-Lena

Also ich finde, die Leute in der Python-Community sind schon

Anna-Lena

sehr freundlich. Ja, vor Ort, die Leute, das

Dominik

macht immer mehr Spaß als auch bei anderen

Dominik

Sachen, die ich so kennengelernt habe im Check-in-Feld.

Jochen

Ja, und man muss auch sagen, dass die Python-Community da halt

Jochen

ein, ja,

Jochen

so ein gutes Beispiel ist für, wie das

Jochen

gut funktionieren kann. Das ist in

Jochen

anderen Communities ist das nicht unbedingt so.

Jochen

Also Python ist da doch besonders

Jochen

angenehm, ehrlich gesagt.

Dominik

Wir waren da natürlich nicht davor, irgendwie von irgendwelchen Randoms auf Reddit

Dominik

angeschrien zu werden, aber...

Jochen

Nee, gut, das kann natürlich auch mal passieren, aber

Jochen

generell ist es, und vor allen Dingen ist es halt

Jochen

auch besser als bei anderen.

Dominik

Wir erinnern uns ja vielleicht selber an junge Jahre,

Dominik

wo man vielleicht selber mal nicht immer den Ton

Dominik

getroffen hat, den man eigentlich sich als Erwachsener hätte,

Dominik

überlegt.

Dominik

Ja, es passiert auch immer noch mit T und so.

Dominik

Ja, genau.

Dominik

Manchmal, ja.

Anna-Lena

Ja, mir passiert das nie.

Anna-Lena

Ich bin immer freundlich, immer höflich,

Anna-Lena

immer gut drauf.

Anna-Lena

Ja.

Jochen

Ja, ansonsten, ich weiß nicht genau,

Jochen

ob, ich hab sonst auch nicht...

Jochen

Habt ihr noch ein Packaging-Thema?

Dominik

Oder ein Management-

Dominik

von-Environments-Thema, oder?

Jochen

Nee, aber ansonsten, ich fand dieses

Jochen

Automatic-Speech-Recognition-Thema auch noch total interessant.

Jochen

Ich weiß nicht, ob du Lust hast,

Jochen

drüber zu reden, oder...

Anna-Lena

Ich würde da super gerne drüber reden, aber ich darf leider nicht.

Anna-Lena

Ach so, ah, okay.

Anna-Lena

Also, das ist so ziemlich alles, was ich erzählen darf,

Anna-Lena

was ich schon gesagt habe.

Anna-Lena

Ja.

Anna-Lena

Leider, aber es ist ein super interessantes Thema,

Anna-Lena

das stimmt schon.

Dominik

Okay. Ich überlege gerade, also für

Dominik

Environment-Management oder Painting,

Dominik

ich glaube, da haben wir so die meisten Tools so besprochen,

Dominik

es gibt noch so ein paar mehr,

Dominik

die wir jetzt nicht so gesprochen haben. Ja, aber ich glaube, ich weiß auch nicht, ob die wichtig sind

Dominik

oder relevant. Wir können ja auch einfach

Dominik

den

Anna-Lena

Vortrag verlinken oder auch den Blog-Post,

Anna-Lena

da ist dann auch nochmal das Ganze ein bisschen grafischer

Anna-Lena

dargestellt, das finde ich,

Anna-Lena

hilft natürlich auch für die Übersicht.

Anna-Lena

Es gibt eben auch ein paar Tools,

Anna-Lena

PyFlow zum Beispiel haben wir gar nicht angesprochen, das habe ich auch mit

Anna-Lena

aufgenommen, aber das ist so ein klassisches

Anna-Lena

Projekt, was mal angefangen wurde

Anna-Lena

und was nicht mehr maintained wird und

Anna-Lena

dementsprechend auch nicht unbedingt

Anna-Lena

empfehlenswert ist, das zu benutzen.

Anna-Lena

Ich habe es mal ausprobiert und

Anna-Lena

habe sofort ganz viele Fehler gehabt,

Anna-Lena

aber da sollte man auch immer drauf achten, was man

Anna-Lena

sich da für ein Projekt anschaut,

Anna-Lena

ob da wirklich regelmäßig Releases

Anna-Lena

rauskommen und die Issues auch abgearbeitet

Dominik

werden. Ja, ich würde auch sagen, tatsächlich,

Dominik

insgesamt bei Libraries so ein bisschen die Frage,

Dominik

also manchmal tendiert man ja so ein bisschen

Dominik

dazu, immer den neuesten heißen geilen Scheiß zu benutzen,

Dominik

wenn er aber dann

Dominik

halt im halben Jahr wieder weg ist, dann ist es halt blöd,

Dominik

wenn man halt Projekte darauf direkt

Dominik

aufgebaut hat und dann so diese ganzen

Dominik

abgehangenen Sachen, die sind vielleicht nicht immer so

Dominik

eine blöde Idee.

Dominik

Ja, absolut.

Dominik

Ja,

Dominik

das ist halt immer so ein bisschen,

Jochen

irgendwie, es ist

Jochen

ein nicht unerhebliches

Jochen

Feature, dass Dinge halt langweilig,

Jochen

boring und alt

Jochen

sind. Das kann auch sehr,

Jochen

sehr gut sein.

Anna-Lena

Ja, alleine schon auch, weil dann

Anna-Lena

man in den Issues ja häufig

Anna-Lena

genau das Problem

Anna-Lena

findet, was man gerade hat und dass das schon

Anna-Lena

beantwortet wurde. Alleine sowas kann ja unheimlich

Anna-Lena

hilfreich sein, dass einfach

Anna-Lena

solche Probleme schon besprochen wurden und

Anna-Lena

schon zig Leute das Gleiche hatten.

Jochen

Ja, genau. Und man kann

Jochen

Chat-GPT fragen, weil

Jochen

es war vor 2021 schon

Jochen

irgendwie etwas, was man finden konnte.

Jochen

Ja, ja.

Jochen

Ja, ja.

Jochen

Ja, das ist halt genau, also ich

Jochen

weiß nicht, also das finde ich zum Beispiel bei Django immer toll.

Jochen

Also ich meine auch, ich mag ja fast

Jochen

API, ich mag das ja gerne.

Jochen

Ich mag auch Pydentic, ich finde den Ansatz super.

Jochen

Aber

Jochen

das ist etwas, was halt bei Django echt

Jochen

angenehmer ist, dass es da halt schon so viel Zeug gibt,

Jochen

dass es halt eine 15 Jahre alte Geschichte gibt,

Jochen

und ganz viel Content,

Jochen

den man halt durchsuchen kann.

Jochen

Und ja,

Jochen

auch solche Dinge, auch da

Jochen

ich mich persönlich,

Jochen

also ich kriege immer, wenn

Jochen

halt irgendwie so Venture Capital

Jochen

ins Spiel kommt, dann denke ich mir immer so, oh nein.

Jochen

Ja.

Jochen

Und andere, also vor allen Dingen,

Jochen

ich finde den Gegensatz halt interessant, weil die Leute,

Jochen

die das dann bekommen, oder es ist halt immer so,

Jochen

juhu, jetzt können wir endlich und so.

Jochen

Und die Leute, die es benutzen, denken sich so, oh nein.

Jochen

Ja gut, aber es ist halt auch

Dominik

so ein Trade-off. Du hast natürlich einerseits Interessen

Dominik

geleitete Entwicklung dann, und die ist halt nicht mehr

Dominik

vielleicht so ganz neutral.

Jochen

Ja, vor allen Dingen, weil Leute dann irgendwann ihr Geld wieder haben.

Jochen

Ja, aber das ist ein

Dominik

Problem, aber eine andere Frage ist halt auch,

Dominik

du hast tatsächlich dann halt Zeit da und Geld

Dominik

da Sachen zu bauen.

Dominik

Ja, also brauchst du ein Geschäftsmodell, willst du eins haben,

Dominik

willst du nichts. Und also, was immer ganz

Dominik

schlecht ist, wenn die Leute auf einmal halt ihr Geschäftsmodell dann so

Dominik

zufällig anpassen.

Jochen

Genau, aber das finde ich eben bei solchen Projekten

Jochen

dann halt auch oft irgendwie sehr nett, wenn die

Jochen

dann, wenn es halt wirkliche Open-Source-Projekte

Jochen

sind in der Community, wo nicht eine Firma dahinter

Jochen

steht. Und wenn man halt eine Firma hat,

Jochen

dann ist immer,

Jochen

es ist tendenziell eher kurzlebiger, weil

Jochen

vielleicht haben Firmen dann auch mal andere Prioritäten,

Dominik

andere Interessen. Ja, eine kleine Anekdote am Rennen, ich weiß nicht,

Dominik

ob ihr es mitbekommen habt und ob ihr euch damit

Dominik

auskennt, aber es gibt Unity Game Engine.

Dominik

Ja, ja, ja.

Dominik

Das muss halt ganz viel Open-Source oder irgendwie

Dominik

so Indie-Studios, die haben halt

Dominik

auf Unity gesetzt und halt da ihre

Dominik

Spiele entwickelt. Und die haben dann irgendwie gesagt,

Dominik

so ja, neue Version jetzt übrigens, ach und

Dominik

alle Projekte, also auch alle, die ihr irgendwann mal

Dominik

angefangen habt, die sollen jetzt bitte pro Installation

Dominik

so viel Geld teilen.

Dominik

Das war natürlich

Dominik

auf einmal geknallt.

Dominik

Ich würde sagen, ist tot. Mal gucken.

Dominik

Ja, es war sehr blöd

Dominik

und die Leute müssen jetzt alle ihre Projekte umziehen

Dominik

und so. Die sind jetzt wieder mal zurückgerudert,

Dominik

wie es halt immer so ist, kommen wir so raus,

Dominik

aber solche Sachen sind natürlich gefährlich,

Dominik

wenn man halt dann von kommerziellen,

Dominik

proprietären Anbietern irgendwie abhängig ist.

Dominik

Ja. Das ist vielleicht nicht so.

Dominik

Aber andererseits ist es aber halt auch eine Chance,

Dominik

ne, aus diesem, ich mache das, als man

Dominik

mein Hobby und da passiert immer...

Jochen

Ja, natürlich, ja, ist alles irgendwie...

Dominik

Also ich finde, ja, also Open Source ist halt

Dominik

das Problem, ist halt meiner Meinung nach immer so

Dominik

die Finanzierung.

Dominik

Weil irgendwann kommen halt die meisten Leute,

Dominik

also ich meine, es gibt vielleicht Leute, die so

Dominik

viel Glück haben, dass sie mit so viel Geld

Dominik

begegnet sind, dass sie nichts anderes machen müssen

Dominik

oder die so genügsam sind,

Dominik

dass sie halt den ganzen Tag verbringen

Dominik

können mit wunderbaren Beiträgen an die

Dominik

Community, aber oft ist man halt

Dominik

leider gerade mit Familienhintergrund oder sowas

Dominik

dazu gezwungen, irgendeiner Erwerb

Dominik

Tätigkeit nachzugehen, die irgendwie

Dominik

Einkommen erwirtschaftet und wenn das halt mit Open Source

Dominik

nicht geht, ist es halt schwierig, ne.

Dominik

Also ich versuche

Dominik

auch immer tatsächlich, also bei den Konzernen, wo ich irgendwie

Dominik

so da bin, irgendwen zu bewegen,

Dominik

dass das so Geld zurückgibt,

Dominik

also dass die zumindest dann so Spenden machen an Projekte

Dominik

oder so, aber die hören dann immer so, ja, ja, total tolle

Dominik

Ideen, würden wir auch total gerne machen, aber nein.

Anna-Lena

Passiert eher selten, leider.

Dominik

Ja, denen ist das dann egal.

Jochen

Ja, man müsste halt einen Grund dafür liefern

Jochen

können und das ist, glaube ich, halt auch eins

Jochen

der Dinge, wo man sich über Sachen überlegen

Jochen

müsste, wie man das hängt. Also es gibt ja

Jochen

diverse Ideen. Ah, ich finde übrigens genau

Jochen

dieses Material Theme für MKDocs, du hattest das eben

Jochen

erwähnt, der Autor davon,

Jochen

der hat einen sehr schönen Weg gefunden, um damit

Jochen

Geld zu erzielen. Der lebt ausschließlich davon

Jochen

und der

Jochen

lebt eigentlich quasi davon,

Jochen

dass er Unternehmen einen Grund gibt,

Jochen

ihm Geld dafür zu bezahlen und zwar

Jochen

gibt es halt alle Features

Jochen

sozusagen zuerst für eine Bezahlversion

Jochen

und

Jochen

die werden aber irgendwann dann halt

Jochen

quasi auch in der, kommen halt in die

Jochen

normale rein und alles ist Open Source,

Jochen

aber wenn du halt irgendwie das ein bisschen

Jochen

früher haben willst als andere, dann musst du halt zahlen.

Jochen

Und das funktioniert wohl sehr, sehr gut.

Jochen

Also, ja.

Jochen

Aber ansonsten, ich würde sagen, das ist das zentrale

Jochen

Problem. Also wie kann man Unternehmen klar machen,

Jochen

ja, es wäre

Jochen

nicht nur nett, wenn ihr das tun würdet, sondern ihr habt auch

Jochen

einen Vorteil davon.

Dominik

Also ich finde auch diese, also ich

Dominik

muss halt auch darauf angewiesen sein, dass ich

Dominik

jetzt mit Open Source, die ich benutze, dass ich die

Dominik

für alles benutzen kann, also auch für Business, weil sonst kann ich

Dominik

halt für meine Arbeit nicht verwenden.

Dominik

Ja.

Dominik

Was aber halt doof ist halt, wenn es halt nie,

Dominik

wenn irgendjemand aber richtig viel Geld mitfindet, der halt nichts

Dominik

zurückgibt, das ist halt irgendwie so der Deal dann gebrochen und

Dominik

die Frage ist halt, ob man das lizenztechnisch irgendwie lösen kann.

Dominik

Ich würde sagen, eher nicht.

Jochen

AGPL war da natürlich so ein Versuch.

Dominik

Ja, aber das ist halt eher kacke. Also bei mir führt es halt dazu, dass ich das gar nicht

Dominik

verwenden kann, weil dann ich

Dominik

sonst lizenzprobleme kriege,

Dominik

die ich halt nicht haben darf. Deswegen kann ich die Software mit

Dominik

AGPL nicht verwenden für Arbeitsprojekte, sondern nur

Dominik

irgendwie in der Freizeit irgendwie und das bringt es halt

Dominik

irgendwie nicht.

Dominik

Ja, aber ja, schwierige.

Dominik

Auch wieder ein schwieriger Ansatz.

Anna-Lena

Man kann ja jetzt zumindest bei

Anna-Lena

bestimmten Projekten, wenn man sie selbst als User

Anna-Lena

hilfreich findet, über

Anna-Lena

GitHub-Sponsors da was zurückgeben.

Anna-Lena

Das finde ich manchmal ganz schön. Und wenn es mal

Anna-Lena

nur ein paar Euro sind, die Wertschätzung

Anna-Lena

doch irgendwie mitzuteilen.

Dominik

Ja, also das ist notwendig, aber

Dominik

also schwierig, weil du halt davon abgelehnt hast,

Dominik

dass das halt so dieses Spenden-Ding nicht

Dominik

eigentlich, also meiner Meinung nach

Dominik

müsste so der Staat so ein bisschen mit der

Dominik

Gießkanne vielleicht sogar dahin gehen und was machen.

Dominik

Gerade bei Umschuss.

Dominik

Das hat ja noch viel zu wenig für sich entdeckt, weil also auch

Dominik

Behörden und so sind ja abhängig von sowas und ich finde,

Dominik

das wäre eigentlich so eine gute Sache, dass man sagt, okay,

Dominik

es gibt jetzt so und so ein Budget, die halt dann

Dominik

investieren müssen in so eine Infrastruktur.

Jochen

Ja, aber das ist

Jochen

halt auch wieder das, bist du das, oder

Jochen

das ist halt das Problem, das zu erklären,

Jochen

das ist halt so schwierig. Ja, dann hast du irgendwie so einen Prozess

Jochen

und dann und so, ja.

Jochen

Aber ja, vielleicht wäre tatsächlich

Jochen

einfach das mit Steuergeld, aber ja.

Jochen

Ich sehe nicht, dass das

Jochen

passieren würde.

Jochen

Ja.

Dominik

Habt ihr einen Pick der Woche, Pick der

Dominik

Folge?

Dominik

Habe ich irgendwelche

Dominik

Picks?

Jochen

Ich muss nochmal nachdenken.

Jochen

Hast du schon einen?

Dominik

Was ist

Dominik

tatsächlich mit Django Neapolitan?

Dominik

Ah.

Dominik

Kennt ihr das?

Anna-Lena

Nee, aber ich bin auch

Anna-Lena

wie gesagt Django noch nicht benutzt.

Anna-Lena

Genau, ja.

Dominik

Guck mal rein.

Dominik

Okay.

Jochen

Ja, wenn man jetzt Django sonst nicht macht, dann bringt

Jochen

einem das noch nicht so viel. Ja, würde ich auch sagen.

Dominik

Also es ist Quatt, wenn man halt irgendwie

Dominik

meistens hat man ja irgendwie so sein Quatt-Template

Dominik

irgendwo liegen oder sowas und das ist halt

Dominik

direkt mit drinnen.

Dominik

Ja, die Idee ist sozusagen,

Jochen

Class-Based Views ist halt

Jochen

in Django problematisch, weil man

Jochen

erbt von ganz vielen Dingen und die Dinge

Jochen

erben wieder von ganz viel und oft hat man das Problem,

Jochen

dass man nicht weiß, welche Methode muss man denn

Jochen

jetzt überschreiben oder welche

Jochen

darf man auf gar keinen Fall überschreiben und wann

Dominik

passiert eigentlich was? Jochen ändert da an dieser Stelle seine Meinung auch.

Dominik

Immer, ne, wie seine Popposen, ne, weil

Dominik

ab und zu reden wir immer drüber.

Dominik

Nein, okay,

Dominik

nicht ganz. Aber, äh, also ich mag

Dominik

Class-Based Views in Django immer noch sehr gerne.

Jochen

Ja, also ich finde Class-Based

Jochen

Views im Prinzip auch nicht schlecht, nur die sind schon

Jochen

sehr kompliziert und quasi so

Jochen

Vererbungs-Hierarchien sind halt auch etwas. Ja, aber dann machst du

Dominik

halt einfach keine Vererbung, sondern erbst halt einfach nur von einem View

Dominik

und dann hast du aber eine wunderschöne

Dominik

Interface.

Jochen

Also wenn du den Form-View nimmst, der erbt

Jochen

halt von fünf unterschiedlichen Sachen und das

Jochen

ist halt echt cool. Ja, dann halt kein Form-View.

Jochen

Ja gut, okay, klar, aber

Jochen

sozusagen die Class-Based Views sind halt so

Jochen

komplizierte Vererbungs-Hierarchie und

Jochen

man braucht dann halt sowas wie

Jochen

Classy Class-Based Views. Irgendwie gibt es so eine schöne

Jochen

Seite, wo man dann halt sehen kann.

Jochen

Und

Jochen

es ist halt vielleicht einfach ein bisschen

Jochen

viel und deswegen sind viele auf

Jochen

der, ne, ich verwende nur

Jochen

Funktionen als Views-Seite. Oh ja, man hat dann

Dominik

If-Request-Message-Post und sowas

Dominik

und boah. Ja, hat

Jochen

dann auch Nachteile, klar. Und

Jochen

letztlich die Frage, gibt es was dazwischen? Und

Jochen

äh, genau.

Jochen

Es gab dann mal irgendwann von Tom Christie

Jochen

Vanilla-Views, sozusagen,

Jochen

um halt diese ausufernde

Jochen

Vererbungs-Hierarchie in den Griff zu kriegen.

Jochen

Aber das ist halt ein bisschen sehr wenig.

Jochen

Und dann war halt sozusagen die Idee hinter Neapolitan

Jochen

war halt, sagen wir mal, ja, es muss ein bisschen mehr

Jochen

sein als Vanilla. Und also das ist quasi das,

Jochen

wenn man das nicht kennt, also hier ist das immer,

Jochen

wie heißt das ganz schrecklich, der Name? Fürst Pückler

Jochen

Eis oder so.

Jochen

Und ich glaube, die

Jochen

internationale, der Name

Jochen

dafür ist Neapolitan.

Jochen

Und

Jochen

deswegen, es war halt sozusagen die Idee, es ist

Jochen

ein bisschen mehr als Vanilla, aber nicht sehr viel mehr.

Jochen

Ja. Interessant.

Anna-Lena

Also ich kann immer empfehlen,

Anna-Lena

quasi Themenwechsel, anderer Pick,

Anna-Lena

was ich auch vorhin schon erwähnt habe,

Anna-Lena

Material für MK-Docs, finde ich

Anna-Lena

ein super cooles Package, wo man

Anna-Lena

wirklich einfach tolle Dokumentationen

Anna-Lena

bauen kann, was

Anna-Lena

doch meiner Erfahrung nach viel zu selten

Anna-Lena

gemacht wird. Mit was ist die, war das auch Markdown?

Anna-Lena

Genau.

Anna-Lena

Und dann kann man die

Anna-Lena

Dokumentation mit in seinem Repo haben.

Anna-Lena

Ich habe das so häufig schon mitgekriegt in kurzen Projekten.

Anna-Lena

Dass es überall verteilt war. Manchmal schon was

Anna-Lena

im Readme-File, dann gab es noch irgendwie eine Confluence-Seite.

Anna-Lena

Manches war in den Jira-Tickets

Anna-Lena

irgendwie dokumentiert.

Anna-Lena

Und das, finde ich, hat so

Anna-Lena

wenig Einstiegshürden, um

Anna-Lena

so eine schöne webbasierte

Anna-Lena

Oberfläche für seine Dokumentation

Anna-Lena

zu gestalten.

Anna-Lena

Mag ich auch. Würde ich auch

Dominik

bevorzugen gegenüber Sphinx oder sowas. Finde ich schöner auch, ja.

Dominik

Ja.

Jochen

Ja, nee, ich finde das auch super.

Jochen

Also ich verwende es vor allen Dingen

Jochen

eben bei Fast-API-Geschichten,

Jochen

weil es halt,

Jochen

aber

Jochen

ja, ja, nee, das ist schon toll.

Jochen

Okay, was könnte ich denn?

Jochen

Okay, ich picke mal was ganz anderes.

Jochen

Du hast ja eben schon mit Rezepten so ein Buch

Jochen

irgendwie da reingeguckt.

Jochen

Ja, wundervoll, das

Dominik

Ottolenghi-Flavor, das Gemüse-

Dominik

Kochbuch.

Jochen

Und zwar gibt's

Jochen

ein schönes,

Jochen

wenn man auf dem Mac ist,

Jochen

gibt's eine sehr, sehr schöne App,

Jochen

die nennt sich

Jochen

Paprika Receipt Manager

Jochen

und

Jochen

genau, das verwende ich seit einiger Zeit

Jochen

und finde das ganz, ganz toll.

Jochen

Hast du das nicht schon mal gesagt?

Jochen

Habe ich das schon mal gepickt? Oh nein!

Dominik

Ich weiß nicht, ob du das gepickt hast, aber wir hatten es schon ein paar Mal.

Jochen

Ah ja, okay, kann sein. Ich sage immer das Gleiche.

Jochen

Ja, ich

Dominik

ertappe mich auch dabei.

Anna-Lena

Aber es ist gut, dass ihr das noch mal gesagt habt,

Anna-Lena

weil ich hatte es nicht mehr auf dem Schirm.

Dominik

Also ich finde, manchmal muss man einige schöne Sachen

Dominik

noch mal ein paar Mal öfter sagen.

Jochen

Man kann Dinge auch öfter sagen, ja, okay.

Dominik

Wer weiß, wer immer bis zum Ende von jeder Folge bleibt

Dominik

und wenn wir gerade so spannende Folgen haben,

Dominik

wir manchmal haben wir,

Dominik

spannende Folgen, dann

Dominik

wer weiß, wie viele Leute am Ende noch übrig sind.

Dominik

Genau.

Dominik

Ja.

Dominik

Dann ganz vielen herzlichen Dank an der Lena,

Dominik

dass du da warst.

Anna-Lena

Danke, dass ihr mich angeladen habt.

Dominik

Und ja, bleibt uns gewogen,

Dominik

schaltet uns weiter rein, morgens, abends und so weiter

Dominik

und wir wünschen euch eine wunderschöne gute Zeit

Dominik

und bis demnächst.

Jochen

Und hoffentlich bis in gar nicht mal allzu langer Zeit.

Jochen

Ja, diesmal lassen wir uns nicht so viel Zeit.

Jochen

Ja, wir haben auch so ein paar Sachen, Ideen.

Jochen

Gut, bis dann, tschüss.