{"id":"7ecf1711521411b5","repo":"rust-lang/cargo","slug":"project-is-not-supported-as-of-the-2024-editio","errorCode":null,"errorMessage":"`[project]` is not supported as of the 2024 Edition, please use `[package]`","messagePattern":"`\\[project\\]` is not supported as of the 2024 Edition, please use `\\[package\\]`","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/workspace/parser/mod.rs","lineNumber":1395,"sourceCode":"            ));\n        }\n        default_edition\n    };\n    if !edition.is_stable() {\n        let version = normalized_package\n            .normalized_version()\n            .expect(\"previously normalized\")\n            .map(|v| format!(\"@{v}\"))\n            .unwrap_or_default();\n        let hint = rust_version\n            .as_ref()\n            .map(|rv| format!(\"help: {package_name}{version} requires rust {rv}\"));\n        features.require_with_hint(Feature::unstable_editions(), hint.as_deref())?;\n    }\n\n    if original_toml.project.is_some() {\n        if Edition::Edition2024 <= edition {\n            anyhow::bail!(\n                \"`[project]` is not supported as of the 2024 Edition, please use `[package]`\"\n            );\n        } else {\n            warnings.push(format!(\"`[project]` is deprecated in favor of `[package]`\"));\n        }\n    }\n\n    if normalized_package.metabuild.is_some() {\n        features.require(Feature::metabuild())?;\n    }\n\n    if is_embedded {\n        let manifest::TomlManifest {\n            cargo_features: _,\n            package: _,\n            project: _,\n            badges: _,\n            features: _,","sourceCodeStart":1377,"sourceCodeEnd":1413,"githubUrl":"https://github.com/rust-lang/cargo/blob/0e07a155371a6ce88ae53a2c00df940280c09a67/src/workspace/parser/mod.rs#L1377-L1413","documentation":"Thrown at src/workspace/parser/mod.rs:1395. Historically cargo accepted `[project]` as a synonym for `[package]`; in edition 2024 and later the `[project]` table is rejected entirely and `[package]` is required (`original_toml.project.is_some() && Edition::Edition2024 <= edition`). Earlier editions only warn.","triggerScenarios":"A Cargo.toml on edition 2024 that still uses a `[project]` header instead of `[package]`.","commonSituations":"Upgrading an old crate to edition 2024; manifests generated by ancient `cargo new` versions or templates.","solutions":["Rename the section header from `[project]` to `[package]`.","After renaming, run `cargo check` to confirm no other deprecated keys remain."],"exampleFix":"# before (edition 2024)\n[project]\nname = \"mycrate\"\nversion = \"0.1.0\"\n# after\n[package]\nname = \"mycrate\"\nversion = \"0.1.0\"","handlingStrategy":"validation","validationCode":"if edition >= 2024 && doc.as_table().get(\"project\").and_then(|i| i.as_table_like()).is_some() {\n    return Err(\"rename [project] to [package] for edition 2024\".into());\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always use `[package]`, never `[project]`.","Run an edition upgrade linter that renames legacy headers."],"tags":["manifest","edition-2024","deprecation"],"analyzedSha":"0e07a155371a6ce88ae53a2c00df940280c09a67","analyzedAt":"2026-08-06T01:46:58.334Z","schemaVersion":2}