Devenv - Shopware6 Setup - Hilfe

Hallo zusammen,

ich möchte ein neues Shopware6 Projekt starten und als Entwicklungsumgebung devenv verwenden.
So wie ich gelesen habe ist devenv die momentan von Shopware6-Entwicklern empfohlene performanteste Methode da keine Virtualisierung verwendet wird.

@shyim
Auf devenv bin ich das erste mal auf Shyim Seite gestossen.
Hier der Beitrag dazu:
Devenv: Compose a Developer Environment easily for PHP with Nix | Shyim’s Brain

Dann habe ich gesehen, dass Shopware hier bereits die Shopware Docs zu angepasst hat und hier eine Installationsanleitung für bereitstellt:
Devenv - Shopware Entwickler

Ich arbeite auf einem Linux Ubuntu Server mit sudo.
folgendes Setup:

  • PHP 8.2.8 (cli), Zend Engine v4.2.8, with Zend OPcache v8.2.8
  • Composer version 2.5.8

Die Installationsanleitung für Linux lautet zusammengefasst:

:white_check_mark: 1. Nix installieren (check)

sh <(curl -L https://nixos.org/nix/install) --daemon

Dies installiert NIX welches für Denev eine Voraussetzung ist.
Die Installation lief bei mir ohne Probleme durch.

:white_check_mark: 2. Cachix installieren (check)

nix-env -iA cachix -f https://cachix.org/api/v1/install

auch hier gabe es keine Fehlermelung und cachix wurde erfolgreich installiert.

:white_check_mark:2.2 Cachix denev-Cach zuweisen (check)

Bevor man jetzt mit der eigentlichen Installation von devenv anfangen kann sollte man cachix noch anweisen den devenv-Cache zu verenden dies habe ich wie folgt gemacht:

da ich cachix das erste mal verwende muss man vor Ausführung von cachix use devenv vorher noch folgenden Befehl ausführen:

echo „trusted-users = root ${USER}“ | sudo tee -a /etc/nix/nix.conf && sudo pkill nix-daemon

danach kann dann

cachix use devenv

ausgeführt werden.
Auch hier gibt es keinerlei Probleme.

:white_check_mark:3. Devenv Installation (check)

Nun ist das System soweit konfiguriert, dass devenv mit dem folgenden Befehl installiert werden kann:

nix-env -if https://github.com/cachix/devenv/tarball/latest

auch diese Installation lief ohne Fehler durch.

:white_check_mark:3.1 cachix für shopware (check)

Nun sollte man cachix so konfigurieren, dass es den Cache von Shopware verwendet was wie folgt funktioniert:

cachix use shopware

auch dies hat ohne Probleme funktioniert.

:x: 4. ab jetzt wird es leider unklar und nicht verständlich.

wenn ich wie im Beitrag:

composer require devenv

ausführen möchte, erhalte ich:

image

was mache ich falsch? kann mir hier jemand bitte weiterhelfen?

P.S. und sorry, ich fange gerade erst an mich mit Shopware6 zu beschäftigen, kann sein, dass ich hier ziemlich viele noob-Fragen stellen werde und Ihr regelmäsig schmunzeln müsst :wink:

DANKE

Ich stecke gerade genau im selben Thema drin und es ist sehr frustrierend, weil die Dokumentation einen nicht wirklich an die Hand nimmt um ein sauberes Setup zu erhalten. Wenn du mit Shopware 6.5 starten willst, dann mache folgendes:

STEP-BY-STEP

Erstelle Neues Projekt

composer create-project shopware/production <project-name>

Gehe in Project Ordner

cd <project-name>

Git initalisieren

git init

Shopware Setup innerhalb von Projekt

Lade Shopware Projekteinstellungen für DevEnv

composer require devenv

DB Eintrag in .env Datei ändern für Zugriff via devenv

DATABASE_URL="mysql://shopware:shopware@127.0.0.1:3306/shopware?sslmode=disable&charset=utf8mb4"

Hochfahren der Umgebung

devenv up 

(Terminal-Fenster muss geöffnet bleiben, da kein Daemon!)

Neues Terminal Tab öffnen

devenv shell

Installation von Shopware Demostore

bin/console system:install --basic-setup --create-database --force

Damit bekommst du eine saubere Umgebung für Shopware 6.5+.
Wenn du allerdings mit einer älteren Version arbeiten möchest SW 6.4 etc., dann sieht es schon ganz anders aus. Hier hänge ich komplett in der Luft, da zuviele Abhängigkeiten inkompatibel sind (Composer Version, keine devenv config in der composer install vorhanden, im composer.json ist shopware/recovery zu entfernen, und und und. Super nervig.

Liebe Shopware Devs, bitte bitte arbeitet eine detaillierte Anleitung aus, die klar macht unter welchen Bedingungen die Installation überhaupt möglich ist.

Es gibt nach wie vor so gut wie keine(!) weiteren hilfreichen Seiten die dieses Thema beleuchten oder verschiedene Aspekte erklären, wie z.B. ein bestehendes Shopware Projekt in eine devenv Umgebung zu holen (Versionsgenaue Installation, Import von DB, Überschreiben von Database-URL, Überschreiben/Erweitern von Usern für Testzwecke.

4 „Gefällt mir“

Ich möchte hier ein dickes Danke lassen! Die Anleitung hat mir Stunden des rumprobierens erspart, woran meine Kolleginnen die letzten Tage verzweifelt sind.

Und ein großes SCHÄMT EUCH! an die Entwickler von Shopware. Die Doku ist seit Monaten nicht brauchbar und das wisst ihr.

2 „Gefällt mir“

Das freut mich, dass ich etwas helfen konnte. Ich setze devenv mittlerweile ganz gerne bei allen Projekten ab 6.5 ein. Ich habe es auch hinbekommen ein Setup für 6.4 auf die Beine zu stellen, aber das ist dann doch sehr frickelig gewesen.

Eines meiner Hauptprobleme ist noch ein ordentliches Handling der build/watch skripte zusammen mit https und eigenen local dev domains.

Man merkt dass devenv noch sehr in den Anfängen steckt. Es kann enorm viel, nur erklärt es sich wahnsinnig schlecht. Anscheinend gibt es innerhalb von shopware große Enthusiasten für diese Umgebung, weshalb sie jetzt gefeatured wird. Ich würde mir aber wünschen, dass für jedes dieser Projekte ein oder zwei weniger IT-affine Praktikanten rangeholt werden, die dass dann ausprobieren sollen. Dann würden Sie endlich merken woran es in vielen Dokumentationen hapert.

1 „Gefällt mir“

6.3/.4 war damals leichter für mich, aber flüssig von der Hand ging das auch nicht.

devenv muss ich auf jeden Fall die Performance zugute halten. So flüssig und mit wenig Belastung des Arbeitsgerätes lief die Shopware-Dev Umgebung noch nie.

Dein Vorschlag die Anleitung zu testen wäre genau das Richtige. Ich hoffe das liest jemand

@Moritz_Naczenski

bitte mal an die DOC Leute weitergeben, dass hier noch Bedarf besteht!
DANKE

@n8lauscher einer der „DOC Leute“ liest hier gerade zufällig mit :upside_down_face:

Ich werde dafür ein internes Ticket erstellen und jemand (vermutlich ich) wird das Setup dann mal durchlaufen. Persönlich nutze ich nativ alle Services in Ubuntu 22.04 - bin also auch noch jungfräulich in dem Bereich, nehme aber die oben erwähnten Punkte gerne schon mal als Feedback mit auf.

Sollten euch fehlende oder unverständliche Docs auffallen bitte ich euch diese gerne direkt in der Dokumentation (Hotjar auf der rechten Seite) zu melden, das ist die schnellste und effektivste Methode. Das Feedback dort wird regelmäßig ausgewertet und weitergegeben, auch haben wir dort dann direkt einen Screenshot, einen Link und mögliche Kontaktdaten. Wenn möglich mit etwas Kontext und auch gerne konstruktive Kritik.

Ansonsten gerne mit @Misengo im Forum oder im Slack Channel

2 „Gefällt mir“

@n8lauscher @mme @KaleAndMe

Hier muss ich für die Entwickler eine Lanze brechen. Die Anleitung lief für mich, unter 6.5 (6.4 ist in Prüfung - sollte dieses Setup dafür nicht möglich sein prüfe ich Lösungen bzw. wird es aus 6.4 entfernt), ohne Probleme. Ich habe allerdings einen Hinweis hinzugefügt wo man das composer require devenv ausführen muss mit einer Verlinkung zum flex template.

Soweit ich das lese war der Rest klar. Ansonsten bringt gerne konkretes Feedback direkt im Repo ein → Sign in to GitHub · GitHub

Problematisch sehe ich hier Themen wie „DB import“ in einen Guide für devenv mit aufzunehmen. Das sprengt den Rahmen etwas und der Fokus auf devenv geht verloren.

Das Thema „weniger IT-affine Praktikanten“ - die docs richten sich an Entwickler, da macht es vermutlich weniger Sinn Praktikanten als Testpersonen zu nutzen, die keine Erfahrung mit z.B. der Console etc. haben. Aber, wir schauen natürlich das die Docs für alle Entwickler passen, vom Junior bis Senior.

1 „Gefällt mir“

@mme @KaleAndMe @n8lauscher

Die neusten Änderungen sind jetzt live und damit funktioniert die Installtion unter 6.4 auch sauber. Hier muss das die dev-flex version genommen werden, daher auch dein Problem mit composer und recovery.

composer create-project shopware/production:dev-flex

Ich hoffe damit kann in Zukunft gut und schnell getestet werden, ich werde devenv in Zukunft auch immer mal wieder verwenden.

Danke für euer Feedback!

2 „Gefällt mir“

Hey,

bin relativ neu in der Shopware Materie und auch super am verzweifeln.

Dein Setup hat soweit super funktioniert, jedoch hab ich hier mal die doofe Frage:

Shopware selber - das Frontend. Muss ich das auch noch separat aufsetzen? Unter Windows mit Docker hatte man den Shop auch direkt laufen, allerdings ist PHP und Windows ja wohl ein rotes Tuch, weshalb ich gezwungenermaßen auf MAC gewechselt bin.

Wenn ich http://localhost:8000/ aufrufe, was ja wohl der WebServer ist, kommt einfach nur 500er Error.

Ich möchte eigentlich nur Themes und Plugins entwickeln und die Changes im Idealfall live sehen. (So wie ich es von Vue und Co. kenne)

Die Option die bei mir grad läuft, ist einfach eine Community Edition als Setup mit MAMP. Aber da fehlen dann natürlich die Sample Data’s.

Am liebsten hätte ich das ganze unter Windows, im Notfall auch mit WSL.

Hey,

bin selbst kein großer Docker Fan aber wenns mal nur um das Testen von was geht check doch mal dockware aus.
Für mich bis jetzt das Setup welches am einfachsten von der Hand geht und am wenigsten Probleme mit sich bringt. Sollte deine Probleme lösen.

Über WSL ist natürlich auch eine Option, aber es klingt nicht so als ob du dich in dem Umfeld so wohlfühlst :wink:

Grüße

Hey,

Ja nach langem hin und her, habe ich jetzt ein Docker laufen mit PHPStorm ist das ganz gut.

Ich dachte immer die Docker sind kaputt, weil Themes nicht gingen, bis ich gelesen habe, das die Devs etwas nachlässig waren mit dem Creator Tool :sweat_smile:

Nur das Cachen stört etwas. Ich habe das HTTP Caching aus gemacht über die .env und in den Admin Configs steht auch Off.

Aber dennoch scheint er ab und an zu Cachen.

Und was bei mir natürlich nicht geht, sind die SH Scripts fürs Storefront Rebuild (sofern ich das brauchen sollte)

Aber zumindest läuft jetzt soweit erstmal alles.

Hallo zusammen,

ich bin jetzt das Tutorial für 6.5 und 6.6 mehrmals durchlaufen, interessanterweise bekomme ich bei Shopware 6.5.6.0 (wird benötigt) im letzten Schritt folgenden Fehler:

j@J2:~/shopware6560$ devenv up
error:
       … while evaluating the attribute 'config'
         at «github:NixOS/nixpkgs/635a306fc8ede2e34cb3dd0d6d0a5d49362150ed»/lib/modules.nix:326:9:
          325|         options = checked options;
          326|         config = checked (removeAttrs config [ "_module" ]);
             |         ^
          327|         _module = checked (config._module);

       … while calling the 'seq' builtin
         at «github:NixOS/nixpkgs/635a306fc8ede2e34cb3dd0d6d0a5d49362150ed»/lib/modules.nix:326:18:
          325|         options = checked options;
          326|         config = checked (removeAttrs config [ "_module" ]);
             |                  ^
          327|         _module = checked (config._module);

       … while calling the 'throw' builtin
         at «github:NixOS/nixpkgs/635a306fc8ede2e34cb3dd0d6d0a5d49362150ed»/lib/modules.nix:302:18:
          301|                     ''
          302|             else throw baseMsg
             |                  ^
          303|         else null;

       error:
       error: **The option `devenv.dotfile' does not exist.** Definition values:
       - In `<unknown-file>': "/home/j/shopware6560/.devenv"

✖ Command produced the following output:
Error:   × Command `/nix/store/waamfx5n3cw54c8hxbwmgrd84i8k6i5z-nix-devenv-2.21.0pre20240412_b24a931/bin/nix --show-trace --extra-experimental-features nix-command --extra-experimental-features flakes --option warn-dirty false --option eval-cache false --keep-going --max-jobs 16 eval .#devenv.processes --json` failed
  │ with with exit code 1

Beim 1:1 durchlaufen mit Shopware 6.6 geht es.

Hat jmd. vllt dieses Phänomen schonmal gehabt?

Danke und viele Grüße

1 „Gefällt mir“

Schließe mich an. Habe das selbe Problem. Ich vermute dass sich das Konfigurations-Format von devenv in den letzten Versionen etwas geändert hat.

vor dem devenv up oder devenv shell musst du bei Sopware 6.5.x ein devenv update machen, dann geht es.

2 „Gefällt mir“

Danke! Das war die Lösung!