Akkudoktor-EOS / EOS

Other
11 stars 5 forks source link

Reproducible Dev Environments #8

Open njoerd114 opened 4 days ago

njoerd114 commented 4 days ago

Um sich auf eine einheitliche Entwicklungsumgebung verlassen zu können, wären reproducible Dev Environments wünschenswert, am liebsten devbox.sh

lorenzleutgeb commented 4 days ago

Eine weitere Möglichkeit wäre Nix, bzw. Nix via devenv.sh

niklasbeinghaus commented 4 days ago

das ist implizit, devbox geht nicht ohne Nix.

lorenzleutgeb commented 3 days ago

Für meinen Geschmack "zu implizit". Hätte angenommen, dass die Zeichenfolge "Nix" dann zumindest irgendwo auf devbox.sh vorkommt. Danke für den Hinweis.

njoerd114 commented 3 days ago

hab fälschlicherweise auf deren cloud-angebot verwiesen, auf der eigentlichen Seite zum Produkt steht es: https://www.jetify.com/devbox

danimo commented 3 days ago

Danke für den Hinweis auf devbox.sh. Gleichzeitig möchte nur davor warnen, die Einstiegshürden mit zusätzlichen bzw. spezielleren Dependencies höher zu hängen. Der Vorteil an pip mit (ggf. mit direnv/lorri) ist seine Einfachheit und das Einzige, was es uns nicht zusichert ist die Python-Version. Solange wir nicht deutlich mehr notwendige Dependencies brauchen, die pip nicht liefern kann, würde ich die Hürden niedrig halten. Übersehe ich was?

lorenzleutgeb commented 3 days ago

AFAIK schließen sich die beiden Zugänge nicht aus. Nur weil es ein devbox/devenv/Nix Environment gibt, heißt das nicht, dass man nicht auch direkt pip verwenden kann, wenn man möchte.

danimo commented 3 days ago

Das stimmt schon, und es gibt schon jetzt "more than one way to do it", aber das kommt aktuell alles bei virtualenv/pip raus. Mir geht es nur darum, dass es am Ende hintenraus nicht zu sehr fragementiert. Ich werde mir devbox wie gesagt mal ansehen.

dsiebel commented 3 days ago

Habe über die letzten Jahre ganz gute Erfahrungen mit https://containers.dev/ gemacht. Speziell mit VSCode und bereits existierendem container-setup (#11) deutlich anfängerfreundlicher als z.B. Nix.

niklasbeinghaus commented 3 days ago

genau die komplexität von nix wird durch devbox wegabstrahiert. wie @lorenzleutgeb schon erwähnt hat, ist das nur ein zusätzlicher weg, der die konfiguration (bspw. requirements.txt) einfach nutzt. Der große Vorteil ist imo, dass das setup portabel wird und user einfach nur devbox run server ausführen muss, alle dependencies aufgelöst werden, etc.