{"record":{"id":"9cbad07d382a9a14","repo":"nikivdev/code","slug":"version-not-provided-pass-version-or-set-releas","errorCode":null,"errorMessage":"Version not provided. Pass --version or set release.versioning.","messagePattern":"Version not provided\\. Pass --version or set release\\.versioning\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/registry.rs","lineNumber":380,"sourceCode":"\nfn resolve_registry_version(\n    cfg: &Config,\n    version: Option<String>,\n    registry_url: &str,\n    package: &str,\n) -> Result<String> {\n    if let Some(version) = version {\n        return Ok(version);\n    }\n    let versioning = cfg\n        .release\n        .as_ref()\n        .and_then(|release| release.versioning.as_deref());\n    match versioning {\n        Some(\"calver\") | Some(\"calendar\") | Some(\"date\") => {\n            Ok(calver_version(cfg, registry_url, package))\n        }\n        _ => bail!(\"Version not provided. Pass --version or set release.versioning.\"),\n    }\n}\n\nfn calver_version(cfg: &Config, registry_url: &str, package: &str) -> String {\n    let now = Local::now();\n    let mut base = format!(\"{}.{}.{}\", now.year(), now.month(), now.day());\n    let suffix = cfg\n        .release\n        .as_ref()\n        .and_then(|release| release.calver_suffix.clone())\n        .or_else(|| env::var(\"FLOW_CALVER_SUFFIX\").ok());\n    if let Some(suffix) = suffix {\n        let trimmed = suffix.trim();\n        if !trimmed.is_empty() {\n            base = format!(\"{}-{}\", base, trimmed);\n        }\n        return base;\n    }","sourceCodeStart":362,"sourceCodeEnd":398,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/registry.rs#L362-L398","documentation":"resolve_registry_version determines which version to publish. If no --version was given and config release.versioning is not set to a recognized calver variant (\"calver\"/\"calendar\"/\"date\"), it has no way to compute a version and bails with this message.","triggerScenarios":"Calling publish without --version while config's release.versioning is absent, null, or set to an unrecognized string (the match falls to the `_` arm).","commonSituations":"New project where release.versioning was never configured; typo in the versioning value (e.g. \"semver\" when only calver modes are supported here); CI pipeline omitting the --version flag after a config change.","solutions":["Pass an explicit version: `mytool publish --version 1.2.3`.","Set `release.versioning = \"calver\"` (or \"calendar\"/\"date\") in your config so publish derives a date-based version.","Fix typos in release.versioning so it matches one of the supported values."],"exampleFix":"// before (config.toml)\n[release]\n# versioning missing\n\n// after (config.toml)\n[release]\nversioning = \"calver\"","handlingStrategy":"validation","validationCode":"// Before publish: ensure a version is derivable\nlet has_version = opts.version.is_some();\nlet versioning = cfg.release.as_ref().and_then(|r| r.versioning.as_deref());\nif !has_version && !matches!(versioning, Some(\"calver\") | Some(\"calendar\") | Some(\"date\")) {\n    return Err(\"pass --version or set release.versioning = \\\"calver\\\" in config\".into());\n}","typeGuard":null,"tryCatchPattern":"match publish(opts.clone()) {\n    Err(e) if e.to_string().contains(\"Version not provided\") => {\n        eprintln!(\"Supplying default version; better: fix config\");\n        publish(PublishOpts { version: Some(\"0.1.0\".into()), ..opts })\n    }\n    other => other,\n}","preventionTips":["Set release.versioning = \"calver\" in every publishable project's config at init time.","Always pass --version in CI publish pipelines.","Lint configs for release.versioning values against the supported set (calver/calendar/date).","Template new projects with a release section pre-filled."],"tags":["config","versioning","publish"],"backgroundTag":"missing-config-value","analyzedSha":"a747e741ae92c09071d0ae946ab48488adcff1ce","analyzedAt":"2026-09-01T22:43:55.719Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}