publish

Par harbor-framework · harbor

Publie une tâche ou un jeu de données Harbor dans le registre. À utiliser quand l'utilisateur souhaite téléverser, publier ou partager des tâches ou des jeux de données/benchmarks sur le registre Harbor.

npx skills add https://github.com/harbor-framework/harbor --skill publish

Aidez l'utilisateur à publier une tâche ou un dataset Harbor dans le registre. Guidez-le à travers chaque étape, en vérifiant les prérequis et en confirmant avant d'exécuter les commandes de publication.

Toutes les commandes utilisent uvx harbor pour que l'utilisateur n'ait pas besoin d'installer le CLI globalement.

Prérequis

  1. Auth : Assurez-vous que l'utilisateur est connecté en exécutant uvx harbor auth status. S'il n'est pas connecté, invitez-le à exécuter uvx harbor auth login.

  2. Identifiants de tâche : Toutes les tâches doivent avoir une section [task] dans leur task.toml avec un nom comme <org>/<name>. Si absent, exécutez :

    uvx harbor task update "<path/to/task>" --org "<org>"

    Pour mettre à jour toutes les tâches dans un répertoire :

    uvx harbor task update "<path/to/tasks>" --org "<org>" --scan

Publier une tâche

uvx harbor publish "<path/to/task>"

Publier plusieurs tâches ou toutes les tâches dans un répertoire :

uvx harbor publish "<path/to/task-a>" "<path/to/task-b>"
uvx harbor publish "<path/to/tasks>"

Publier un dataset

1. Initialiser le manifeste du dataset (si aucun dataset.toml n'existe)

uvx harbor dataset init "<org>/<dataset>" \
  --description "<description>" \
  --author "Jane Doe <jane@example.com>"

Ajoutez --with-metric si l'utilisateur a besoin d'un script de métrique personnalisé. Si omis, le dataset utilise la métrique par défaut (récompense moyenne entre les tâches, avec les valeurs manquantes traitées comme 0).

Comportement auto-ajout : Si dataset init est exécuté dans un répertoire contenant déjà des tâches, ces tâches sont automatiquement ajoutées au manifeste. Après l'initialisation, demandez à l'utilisateur s'il souhaite ajouter des tâches supplémentaires — soit du registre Harbor, soit d'autres dossiers locaux.

2. Ajouter des tâches et fichiers supplémentaires (optionnel)

cd "<path/to/dataset>"
uvx harbor add "<path/to/task-a>" "<path/to/task-b>"   # tâches locales d'ailleurs
uvx harbor add "<path/to/folder>" --scan                 # toutes les tâches dans un autre dossier
uvx harbor add org/task-name                             # tâches publiées du registre
uvx harbor add org/dataset-name                          # toutes les tâches d'un dataset publié
uvx harbor add metric.py                                 # fichier de métrique (même répertoire que dataset.toml)
uvx harbor remove "<org>/<task-name>"                     # supprimer une tâche

Versions spécifiques : org/task@tag, org/task@revision, ou org/task@sha256:<hash>.

3. Synchroniser les digests (si les tâches/métriques ont changé depuis la dernière publication)

uvx harbor sync
uvx harbor sync --upgrade   # aussi mettre à niveau les tâches distantes vers la version la plus récente

4. Publier le dataset

uvx harbor publish "<path/to/dataset>"

uvx harbor publish rafraîchit automatiquement les digests des tâches locales dans le répertoire du dataset.

Options de publication (tâches et datasets)

  • -t / --tag : ajouter des tags (répétable). latest est toujours inclus.
  • -c / --concurrency : contrôler la concurrence de téléchargement.
  • --public : rendre public (privé par défaut).
  • --no-tasks (datasets uniquement) : ignorer la publication des tâches dans le répertoire du dataset.

Exemple :

uvx harbor publish "<path>" -t v1.0 --public

Après la publication

  • La visibilité peut être modifiée ultérieurement avec uvx harbor task visibility / uvx harbor dataset visibility ou sur https://hub.harborframework.com/.
  • Exécutez un dataset publié avec :
    uvx harbor run -d "<org>/<dataset>@v1.0" -a "<agent>" -m "<model>"

Skills similaires