Bereich Bibliotheken
Der Bereich Bibliotheken erlaubt Ihnen, eine geteilte Bibliothek lokal zu entwickeln und sie in den Micros zu sehen, die sie nutzen, ohne sie in einer Registry zu veröffentlichen. Aseptic baut ihr Artefakt und verknüpft es mit jedem Verbraucher. Unterstützt werden Bibliotheken für npm, Maven, Gradle und Python.
Es ist ein Bereich mit einem Liste-+-Detail-Muster (wie Micros): auf der Seite der Bibliothekskatalog; in der Mitte das bearbeitbare Detail der ausgewählten.
Was „verknüpfen” bedeutet
Abschnitt betitelt „Was „verknüpfen” bedeutet“Das hängt von der Technologie ab, denn jedes Ökosystem löst seine Abhängigkeiten an einer anderen Stelle auf. Sie wählen den Mechanismus nicht: Aseptic leitet ihn daraus ab, was die Bibliothek ist.
| Technologie | Wo das Artefakt landet | Was Trennen rückgängig macht |
|---|---|---|
| npm | kopiert über das node_modules/<Paket> des Verbrauchers | löscht die Kopie und stellt den ursprünglichen Ordner wieder her |
| Maven und Gradle | das lokale Repository (~/.m2), aus dem alle Verbraucher auflösen | löscht diese Version aus dem lokalen Repository (Maven lädt sie erneut vom Remote) |
| Python | das Wheel (.whl), installiert in die virtuelle Umgebung jedes Verbrauchers | deinstalliert es und installiert die Version wieder, die vorher da war |
In allen drei Fällen ist es umkehrbar: jede Verknüpfung hinterlässt eine Markierung, und Trennen macht nur rückgängig, was Aseptic abgelegt hat. Ein Artefakt, das schon da war — eine aus der Registry geladene Version —, wird nie angefasst.
Eine Bibliothek hinzufügen
Abschnitt betitelt „Eine Bibliothek hinzufügen“Über den Hinzufügen-Knopf (obere Leiste) —auch im leeren Hintergrund des Bereichs angeboten, wenn es noch keine gibt—:
- Bibliothek hinzufügen — Sie wählen den Ordner des Repos. Sobald Sie das tun, zeigt Ihnen Aseptic, was es erkannt hat, bevor irgendetwas hinzugefügt wird: die Technologie, den Paketnamen, die Version und welche Micros des Katalogs sie bereits deklarieren. Ist der Ordner keine Bibliothek, die es bauen kann, sagt es das dort und lässt Sie nicht fortfahren.
- Aus Git importieren — klont das Repo und fügt sie hinzu. Hier gibt es keine Vorschau: bis nach dem Klonen liegt nichts auf der Platte, das man ansehen könnte.
Die Technologie wird aus dem Repo abgeleitet: pom.xml → Maven, build.gradle → Gradle,
package.json mit name → npm, pyproject.toml/setup.py → Python. Das Paket ist
der Name so, wie ihn schreiben würde, wer sie nutzt: der name aus der package.json,
groupId:artifactId in der JVM, der Distributionsname in Python.
Das Detail einer Bibliothek
Abschnitt betitelt „Das Detail einer Bibliothek“Identität und Build-Rezept. Es speichert von selbst (Autosave mit kleiner Verzögerung, wie in Micros; kann in Einstellungen deaktiviert werden):
-
Name und Paket.
-
Technologie — die beim Hinzufügen abgeleitete. Sie können sie ändern, falls sie danebenlag.
-
Build — der Befehl, der das Artefakt baut, und der Pfad des Artefakts. Wenn Sie sie nicht deklarieren, werden die des Profils ihrer Technologie verwendet:
Technologie Build-Vorgabe Pfad des Artefakts npm npm run builddist/<letztes Segment des Pakets>Maven ${mvn} install -DskipTeststargetGradle ${gradle} publishToMavenLocal -x testbuild/libsPython python -m build --wheeldist -
Verbraucher — die Micros, die die Bibliothek nutzen. Standardmäßig werden sie von selbst erkannt, indem gelesen wird, wer dieses Paket deklariert (
package.json,pom.xml,build.gradle,requirements.txt,pyproject.toml); Sie können sie von Hand festlegen (durch Kommas getrennte Micro-IDs). -
Änderungen überwachen — baut neu und verknüpft automatisch erneut bei Codeänderungen.
${mvn} und ${gradle} werden durch die ausführbare Datei des Repos ersetzt: seinen
Wrapper (mvnw, gradlew), falls vorhanden, sonst die globale. So gilt das Rezept auf
allen Rechnern des Teams gleich.
Status und Aktionen
Abschnitt betitelt „Status und Aktionen“Pro Bibliothek:
| Aktion | Was sie tut |
|---|---|
| Installieren | Installiert die Abhängigkeiten der Bibliothek in ihrem Repo (der Build tut es von selbst, wenn sie fehlen). |
| Bauen | Erzeugt das Artefakt. |
| Verknüpfen | Baut und legt das Artefakt dort ab, wo jeder Verbraucher es auflöst (siehe Tabelle oben). |
| Trennen | Macht die Verknüpfung bei jedem Verbraucher rückgängig und stellt den vorherigen Zustand wieder her. |
| Überwachen | Macht Bauen + Verknüpfen live bei jeder Änderung. Benötigt die aktive Engine. |
Der Status jeder Bibliothek (gebaut / nicht gebaut, in N Verbrauchern verknüpft, wird überwacht) wird in der Liste und im Detail angezeigt.
Beim Überwachen ignoriert Aseptic, was der Build selbst schreibt — node_modules,
target, build/, die virtuelle Umgebung und die Caches —, um nicht in eine endlose
Neubau-Schleife zu geraten.
Ein Hinweis zu Maven und Gradle
Abschnitt betitelt „Ein Hinweis zu Maven und Gradle“In der JVM lebt das Artefakt nicht im Repo des Verbrauchers, sondern in Ihrem lokalen Repository. Das hat zwei Folgen:
- Die Verknüpfung gilt für alle Micros auf einmal, ob sie im Szenario sind oder nicht.
- Lässt Ihre Bibliothek ihre Version nicht aus dem Repo auflösen (eine
pom.xml, die sie über${revision}erbt, einegroup, die in einem Gradle-Skript berechnet wird), sagt die Verknüpfung es Ihnen. Das lässt sich lösen, indem Sie die Version im YAML der Bibliothek deklarieren (stack.version).
Repository (Git)
Abschnitt betitelt „Repository (Git)“Wie in Micros enthält das Detail einer Bibliothek ihr Git: Branch wechseln, fetch und
pull (--ff-only). Der Zugriff ist nur lesend (macht nie push), und wenn es nicht
committete Änderungen gibt, warnt Aseptic vor dem Branch-Wechsel oder dem Aktualisieren.
Wenn das Repo nicht auf der Platte ist
Abschnitt betitelt „Wenn das Repo nicht auf der Platte ist“Wurde der Ordner einer Bibliothek verschoben, markiert das Detail es und bietet an, sie neu zu verorten: Sie wählen den neuen Ordner und der Pfad wird gespeichert.
Nicht invasiv
Abschnitt betitelt „Nicht invasiv“Aseptic verändert weder das Repo des Verbrauchers noch das der Bibliothek: es fasst
weder deren package.json noch pom.xml noch requirements.txt an. Angefasst wird, was
außerhalb von Git liegt — node_modules, das lokale Repository, die virtuelle Umgebung —,
und immer mit einer Markierung, um es zurücknehmen zu können.
Bei npm gibt es eine Ausnahme, die man kennen sollte: ein npm install beim Verbraucher
überschreibt sein node_modules und reißt die Verknüpfung mit. Aseptic merkt das und
verknüpft danach erneut. Bei Maven und Gradle passiert das nicht, weil das Artefakt
dort nicht lebt.
Eine Bibliothek aus dem Katalog zu löschen, trennt sie nicht: war sie verknüpft, trennen Sie sie vorher im Detail.
Aus der CLI und dem MCP
Abschnitt betitelt „Aus der CLI und dem MCP“aseptic library detect/list/status/build/link/unlink/watch. Die nur lesenden
(library_detect, library_list, library_status) sind auch als Werkzeuge des
MCP verfügbar.