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 test

Eigene Pakete veröffentlichen

# 1. Login bei der Registry
velin login

# 2. Build & Test
velin test && velin build --release

# 3. Publish
velin publish

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"]

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