feat: attach user-defined metadata to Nexus YAML manifest files

Fermée
#306 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@VassilisVassiliadis y travaille déjà.

Depuis le 9/10/2026.

  • #310 par @VassilisVassiliadis — ouverte

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
45/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
python
Domaine
cli

Piste de recherche

The payload names no source files, so start by finding the nexus validate entry point and the schema or parser for the benchmark, instance, experiment package and binding YAML formats. Add an optional flat string-to-string metadata field, with keys and values capped at 4096 characters, to all four. Done when a manifest containing metadata passes nexus validate, and a manifest with an over-long key or value is rejected.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

enhancement

Is your feature request related to a problem? Please describe.

There is no supported way to attach arbitrary key-value annotations to a Nexus manifest YAML files.

To work around this, I need to store that context outside Nexus (in README.md files, custom YAML/JSON files, etc) and must manually associate these files with the nexus YAML manifests.

Describe the solution you'd like.

Add an optional top-level metadata field to benchmark, benchmark instance, experiment, and binding YAML files. The field accepts a flat string-to-string dictionary. Both keys and values are strings of up to 4 096 characters. The field is optional and may be omitted entirely.

Example benchmark.yaml with the new field:

benchmarkIdentifier: inference_serving
title: Inference Serving Benchmark
metadata:
  data_source_version: "v2.1.0"
  owning_team: "platform-perf"

Example instance.yaml with the new field:

instanceIdentifier: small_model_8b
benchmarkIdentifier: inference_serving
metadata:
  region: "us-south"
  endpoint-url: "http://ibm.com/my-endpoint/"

Example experiment_package.yaml with the new field:

experiment_package:
  requirement_specifier: https://github.com/IBM/my-experiment.git
  experiments:
    - my_experiment
metadata:
  author: IBM

Example binding YAML with the new field:

instanceBindingIdentifier: my_binding
instanceReference: inference_serving/small_model_8b
metadata:
  run_label: "nightly-2025-07-01"

The nexus validate command should accept files that include this field without reporting a validation error.

Describe alternatives you've considered.

Using YAML comments (# key: value) to store annotations: this is unstructured and not accessible to the CLI or any downstream tooling; it cannot be queried or validated.

Using the existing description string field on benchmark and instance: this is a hack that misues the description field, conflating human-readable text with machine-readable tags.

Langage dominant
Python
Étoiles
4
Forks
8
Merge moyen
16 h 12 min
PR mergées (30 j)
23

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de IBM/algorithm-nexus

Toutes les issues de IBM/algorithm-nexus

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.