{"record":{"id":"5fd0542a83885121","repo":"ruvnet/RuView","slug":"wifi-densepose-1-x-has-been-superseded-by-v2-0-0-w","errorCode":null,"errorMessage":"wifi-densepose 1.x has been superseded by v2.0.0 which wraps the Rust-based stack.\n\n  pip install wifi-densepose==2.0.0\n\nMigration guide: https://github.com/ruvnet/RuView/blob/main/docs/pip-migration.md\nModernization rationale: https://github.com/ruvnet/RuView/blob/main/docs/adr/ADR-117-pip-wifi-densepose-modernization.md\nLegacy v1 source (archived): https://github.com/ruvnet/RuView/tree/main/archive/v1\n","messagePattern":"wifi-densepose 1\\.x has been superseded by v2\\.0\\.0 which wraps the Rust-based stack\\.\n\n  pip install wifi-densepose==2\\.0\\.0\n\nMigration guide: https://github\\.com/ruvnet/RuView/blob/main/docs/pip-migration\\.md\nModernization rationale: https://github\\.com/ruvnet/RuView/blob/main/docs/adr/ADR-117-pip-wifi-densepose-modernization\\.md\nLegacy v1 source \\(archived\\): https://github\\.com/ruvnet/RuView/tree/main/archive/v1\n","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"python/tombstone/src/wifi_densepose/__init__.py","lineNumber":10,"sourceCode":"# ADR-117 §7.2 — v1.99.0 tombstone.\n#\n# This module is part of the `wifi-densepose==1.99.0` PyPI release.\n# Its ONLY job is to raise ImportError on import so any project that\n# upgraded from the legacy 1.x line gets a clear migration error\n# rather than a silent broken import.\n#\n# The real package lives at `wifi-densepose>=2.0.0` (built by the\n# PyO3+maturin pipeline in `python/`).\nraise ImportError(\n    \"wifi-densepose 1.x has been superseded by v2.0.0 which wraps the Rust-based stack.\\n\"\n    \"\\n\"\n    \"  pip install wifi-densepose==2.0.0\\n\"\n    \"\\n\"\n    \"Migration guide: https://github.com/ruvnet/RuView/blob/main/docs/pip-migration.md\\n\"\n    \"Modernization rationale: https://github.com/ruvnet/RuView/blob/main/docs/adr/ADR-117-pip-wifi-densepose-modernization.md\\n\"\n    \"Legacy v1 source (archived): https://github.com/ruvnet/RuView/tree/main/archive/v1\\n\"\n)\n","sourceCodeStart":1,"sourceCodeEnd":19,"githubUrl":"https://github.com/ruvnet/RuView/blob/4685618388a5e49fad5b3005806f3bdd6a7c25c3/python/tombstone/src/wifi_densepose/__init__.py#L1-L19","documentation":"Deliberate tombstone. The wifi-densepose==1.99.0 PyPI release contains only this module, which raises ImportError unconditionally at import time (ADR-117 §7.2). Its job is to give projects that upgrade from the legacy 1.x Python line a clear migration error instead of a silently broken package. The real implementation lives at wifi-densepose>=2.0.0, a PyO3+maturin build that wraps the Rust stack.","triggerScenarios":"Any `import wifi_densepose` (direct or transitive) in an environment where pip resolved the 1.x line: a pin like `wifi-densepose<2` or `~=1.99` in requirements.txt, a stale lockfile, or a cached 1.99.0 wheel in CI.","commonSituations":"Upgrading an app that pinned 1.x; a transitive dependency constraining wifi-densepose<2; CI layer caches serving the old wheel; deploying from a requirements snapshot taken before the 2.0 release.","solutions":["Install the new line: pip install wifi-densepose==2.0.0 (or add wifi-densepose>=2.0.0 to requirements)","Regenerate the lockfile (pip-compile / poetry lock / uv lock) so the 1.99.0 tombstone is dropped","If a dependency pins wifi-densepose<2, upgrade or relax that constraint","Follow docs/pip-migration.md for API differences between 1.x and 2.x"],"exampleFix":"# before\n# requirements.txt\nwifi-densepose==1.99.0  # import raises the tombstone ImportError\n\n# after\n# requirements.txt\nwifi-densepose>=2.0.0","handlingStrategy":"try-catch","validationCode":"import importlib.metadata as md\n\nversion = md.version(\"wifi-densepose\")\nif version.startswith(\"1.\"):\n    raise SystemExit(\n        f\"wifi-densepose {version} is the 1.x tombstone; \"\n        \"upgrade: pip install wifi-densepose==2.0.0\"\n    )\nimport wifi_densepose","typeGuard":null,"tryCatchPattern":"try:\n    import wifi_densepose\nexcept ImportError as e:\n    if \"superseded by v2.0.0\" in str(e):\n        raise SystemExit(\n            \"Legacy wifi-densepose 1.x is installed. \"\n            \"Run: pip install wifi-densepose==2.0.0\"\n        )\n    raise","preventionTips":["Pin wifi-densepose>=2.0.0 in every requirements file and lockfile","Clear pip/CI wheel caches when upgrading past the tombstone release","Add a CI smoke test that imports wifi_densepose in the deployed environment"],"tags":["python","pip","migration","import","versioning","tombstone"],"backgroundTag":null,"analyzedSha":"4685618388a5e49fad5b3005806f3bdd6a7c25c3","analyzedAt":"2026-08-16T06:09:40.886Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}