v2.5Erweitert
Paketmanagement mit velin.toml
Jedes Velisch-Projekt wird durch eine velin.toml-Datei definiert. Der Velin Paketmanager (VPM) verwaltet Abhängigkeiten und garantiert reproduzierbare Builds.
Features
Installation
Einfaches Hinzufügen
Caching
Schnelle Builds
Registry
Zentrale Plattform
Security
Malware-Scan
Abhängigkeiten verwalten
[package]
name = "my-awesome-app"
version = "1.0.0"
authors = ["Max Mustermann <max@example.com>"]
description = "Eine Velisch Demo App"
[dependencies]
# Standard-Abhängigkeiten aus der Registry
http-server = "1.2.0"
sea-orm = "0.12"
# Git-Abhängigkeiten (für Private Repos oder Forks)
utils = { git = "https://github.com/velin/utils.git", branch = "dev" }
# Lokale Pfade (für Monorepos)
my-shared-lib = { path = "./libs/shared" }
[dev-dependencies]
test-utils = "0.5"Workspaces (Monorepos)
Für große Projekte können Sie Workspaces definieren, um Abhängigkeiten zu teilen und mehrere Pakete gemeinsam zu bauen:
# Root velin.toml
[workspace]
members = [
"apps/api",
"apps/worker",
"libs/shared",
"libs/database"
]Workspace-Struktur
my-monorepo/
velin.toml # Workspace Root
apps/
api/
velin.toml # Eigenes Package
src/
worker/
velin.toml
src/
libs/
shared/
velin.toml
src/
database/
velin.toml
src/Häufige Befehle
# Ein neues Paket hinzufügen
vpm add @velin/auth
# Spezifische Version
vpm add sea-orm@0.12.0
# Git-Dependency hinzufügen
vpm add --git https://github.com/velin/utils.git
# Alle Abhängigkeiten installieren
vpm install
# Dependencies aktualisieren
vpm update
# Veraltete Pakete anzeigen
vpm outdated
# Projekt kompilieren
vpm build
# Tests ausführen
vpm testEigene Pakete veröffentlichen
# 1. Login bei der Registry
velin login
# 2. Build & Test
velin test && velin build --release
# 3. Publish
velin publishSofort verfügbar
Ihr Paket ist dann sofort über die zentrale Registry mit
vpm add your-package verfügbar.Lock-Datei
Die velin.lock Datei speichert exakte Versionen aller Abhängigkeiten für reproduzierbare Builds:
# velin.lock - Auto-generated, do not edit manually
[[package]]
name = "http-server"
version = "1.2.0"
checksum = "sha256:abc123..."
[[package]]
name = "sea-orm"
version = "0.12.0"
checksum = "sha256:def456..."
dependencies = ["sqlx", "async-trait"]Commit velin.lock
Die Lock-Datei sollte immer ins Git-Repository committed werden, um identische Builds in CI/CD zu garantieren.
Best Practices
Semantic Versioning
major.minor.patch für Kompatibilität
Lock-File committen
Reproduzierbare Builds garantieren
Dev-Dependencies trennen
[dev-dependencies] für Test-Tools
Security Updates
Regelmäßig vpm audit ausführen