Migrate to lumis.dev/v1
Upgrade released v1alpha1 documents to the stable v1 envelopes with a validated, deterministic, idempotent migration.
What changed
The stable v1 envelopes preserve the released alpha field shapes and change the version marker. Migration validates the complete document before producing output—unknown fields and invalid values fail closed. Released v1alpha1 project and rule documents keep loading with a LumisV1Alpha1DeprecationWarning through the 1.x line and are planned for removal in 2.0, so treat the warning as scheduled upgrade work, not a failure.
Supported kinds: Project, DiagnosisRuleSet, DiagnosisRule, DiagnosisReport, PluginManifest, Playbook, and RecoveryPolicy.
Migrate with the CLI
# preview stable YAML on standard output
lumis config migrate lumis.yml
# write to a new path (existing output is never replaced without --force)
lumis config migrate lumis.yml --output lumis.v1.ymlJSON input is accepted and the canonical migration output is YAML. Running migration on an already-v1 file validates it and is idempotent.
Migrate a project collection
lumis config migrate lumis.yml -o lumis.v1.yml
lumis config migrate rules.yml -o rules.v1.yml
lumis doctor --config lumis.v1.yml
lumis rules validate --config lumis.v1.ymlUpdate spec.rules.files if output filenames change. The loader rejects a v1 project that references v1alpha1 rules, preventing a partially migrated collection from appearing valid.
Python API
from pathlib import Path
from lumis_sdk.config import migrate_config_file, render_migrated_yaml
result = migrate_config_file(Path("lumis.yml"))
print(result.kind, result.changed, result.target_api_version)
print(render_migrated_yaml(result))migrate_config_document accepts an in-memory mapping. Both APIs return a frozen ConfigMigrationResult and never write files themselves.