pz-cli 5.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pz_cli-5.0.0.dist-info/METADATA +51 -0
- pz_cli-5.0.0.dist-info/RECORD +399 -0
- pz_cli-5.0.0.dist-info/WHEEL +4 -0
- pz_cli-5.0.0.dist-info/entry_points.txt +5 -0
- pz_core/__init__.py +64 -0
- pz_core/__main__.py +7 -0
- pz_core/app.py +45 -0
- pz_core/assembly/__init__.py +17 -0
- pz_core/assembly/app_discovery.py +1240 -0
- pz_core/assembly/apps/__init__.py +25 -0
- pz_core/assembly/apps/compiler.py +824 -0
- pz_core/assembly/apps/providers.py +188 -0
- pz_core/assembly/cli/__init__.py +9 -0
- pz_core/assembly/cli/compiler.py +166 -0
- pz_core/assembly/diagnostics/__init__.py +21 -0
- pz_core/assembly/diagnostics/checks.py +257 -0
- pz_core/assembly/diagnostics/dev_sources.py +569 -0
- pz_core/assembly/events/__init__.py +5 -0
- pz_core/assembly/events/compiler.py +219 -0
- pz_core/assembly/extensions/__init__.py +5 -0
- pz_core/assembly/extensions/compiler.py +696 -0
- pz_core/assembly/infra/__init__.py +6 -0
- pz_core/assembly/infra/compiler.py +272 -0
- pz_core/assembly/lifecycle/__init__.py +5 -0
- pz_core/assembly/lifecycle/compiler.py +95 -0
- pz_core/assembly/middlewares/__init__.py +19 -0
- pz_core/assembly/middlewares/compiler.py +508 -0
- pz_core/assembly/project/__init__.py +7 -0
- pz_core/assembly/project/compiler.py +9 -0
- pz_core/assembly/project/context.py +17 -0
- pz_core/assembly/project/discovery.py +227 -0
- pz_core/assembly/resources/__init__.py +19 -0
- pz_core/assembly/resources/compiler.py +310 -0
- pz_core/assembly/resources/settings.py +129 -0
- pz_core/assembly/routes/__init__.py +7 -0
- pz_core/assembly/routes/compiler.py +400 -0
- pz_core/assembly/runtime_manifests/__init__.py +13 -0
- pz_core/assembly/runtime_manifests/compiler.py +159 -0
- pz_core/assembly/settings/__init__.py +17 -0
- pz_core/assembly/settings/compiler.py +786 -0
- pz_core/assembly/settings/host_project_overrides.py +82 -0
- pz_core/assembly/settings/host_runtime_endpoint.py +207 -0
- pz_core/authoring/__init__.py +79 -0
- pz_core/authoring/app_init_service.py +946 -0
- pz_core/authoring/app_versions.py +814 -0
- pz_core/authoring/cli.py +192 -0
- pz_core/authoring/commands.py +1810 -0
- pz_core/authoring/conflicts.py +180 -0
- pz_core/authoring/dev_bindings.py +916 -0
- pz_core/authoring/dev_git.py +1087 -0
- pz_core/authoring/dev_import.py +1061 -0
- pz_core/authoring/dev_manifest.py +522 -0
- pz_core/authoring/dev_sources.py +1638 -0
- pz_core/authoring/env_cli.py +454 -0
- pz_core/authoring/files.py +109 -0
- pz_core/authoring/ide_projection.py +1129 -0
- pz_core/authoring/naming.py +58 -0
- pz_core/authoring/official_dev_sources.py +432 -0
- pz_core/authoring/official_sources.json +156 -0
- pz_core/authoring/orchestration_service.py +558 -0
- pz_core/authoring/project_default.jsonc +53 -0
- pz_core/authoring/project_defaults.py +88 -0
- pz_core/authoring/project_metadata_service.py +199 -0
- pz_core/authoring/project_settings_checks.py +51 -0
- pz_core/authoring/project_settings_cli.py +299 -0
- pz_core/authoring/project_settings_service.py +1700 -0
- pz_core/authoring/project_state.py +399 -0
- pz_core/authoring/publish_git.py +423 -0
- pz_core/authoring/publish_lock.py +188 -0
- pz_core/authoring/publish_source.py +195 -0
- pz_core/authoring/release.py +1382 -0
- pz_core/authoring/repo_keys.py +29 -0
- pz_core/authoring/root_cli.py +28 -0
- pz_core/authoring/scaffold_service.py +325 -0
- pz_core/authoring/sync_service.py +787 -0
- pz_core/authoring/templates/app/__init__.py +1 -0
- pz_core/authoring/templates/app/api.py +25 -0
- pz_core/authoring/templates/app/apps.py +31 -0
- pz_core/authoring/templates/app/auth_package_init.py +14 -0
- pz_core/authoring/templates/app/auth_readme.py +29 -0
- pz_core/authoring/templates/app/configs_package_init.py +14 -0
- pz_core/authoring/templates/app/default_env.py +18 -0
- pz_core/authoring/templates/app/default_jsonc.py +25 -0
- pz_core/authoring/templates/app/locales_readme.py +25 -0
- pz_core/authoring/templates/app/migrations_readme.py +19 -0
- pz_core/authoring/templates/app/models.py +14 -0
- pz_core/authoring/templates/app/package_init.py +8 -0
- pz_core/authoring/templates/app/pages_base.py +161 -0
- pz_core/authoring/templates/app/pages_readme.py +25 -0
- pz_core/authoring/templates/app/public.py +31 -0
- pz_core/authoring/templates/app/pyproject.py +77 -0
- pz_core/authoring/templates/app/readme.py +74 -0
- pz_core/authoring/templates/app/settings.py +46 -0
- pz_core/authoring/templates/app/static_app_js.py +24 -0
- pz_core/authoring/templates/app/static_readme.py +31 -0
- pz_core/authoring/templates/app/template_config_page.py +23 -0
- pz_core/authoring/templates/app/template_index_html.py +28 -0
- pz_core/authoring/templates/app/templates_readme.py +32 -0
- pz_core/authoring/templates/app/urls.py +36 -0
- pz_core/authoring/templates/app/views.py +36 -0
- pz_core/authoring/templates/project/__init__.py +1 -0
- pz_core/authoring/templates/project/agents.py +51 -0
- pz_core/authoring/templates/project/apps_container_readme.py +37 -0
- pz_core/authoring/templates/project/main_py.py +59 -0
- pz_core/authoring/templates/project/project_env.py +19 -0
- pz_core/authoring/templates/project/pyproject.py +26 -0
- pz_core/authoring/templates/project/pz_env_env.py +65 -0
- pz_core/authoring/templates/project/pz_env_jsonc.py +69 -0
- pz_core/authoring/templates/project/pz_jsonc.py +12 -0
- pz_core/authoring/templates/project/readme.py +94 -0
- pz_core/authoring/templates/project/root_gitkeep.py +8 -0
- pz_core/authoring/templates/shared/__init__.py +5 -0
- pz_core/authoring/templates/shared/text.py +10 -0
- pz_core/authoring/venv_service.py +87 -0
- pz_core/authoring/workspace.py +167 -0
- pz_core/cli.py +291 -0
- pz_core/cli_options.py +74 -0
- pz_core/core/__init__.py +3 -0
- pz_core/core/errors/__init__.py +5 -0
- pz_core/core/errors/models.py +117 -0
- pz_core/core/events/__init__.py +5 -0
- pz_core/core/events/registry.py +54 -0
- pz_core/core/extensions/__init__.py +51 -0
- pz_core/core/extensions/registry.py +790 -0
- pz_core/core/health/__init__.py +6 -0
- pz_core/core/health/contracts.py +10 -0
- pz_core/core/middlewares/__init__.py +6 -0
- pz_core/core/middlewares/models.py +24 -0
- pz_core/core/routing/__init__.py +5 -0
- pz_core/core/routing/models.py +21 -0
- pz_core/core/settings_contracts.py +25 -0
- pz_core/docs/README.md +20 -0
- pz_core/docs/distribution-README.md +438 -0
- pz_core/docs/pz/345/221/275/344/273/244/346/200/273/350/247/210.md +1011 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/00-pz/346/236/266/346/236/204/346/200/273/347/272/262.md +240 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/01-/347/233/256/345/275/225/344/270/216/345/210/206/345/261/202/350/247/204/350/214/203.md +216 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/02-/345/214/205/344/270/216/345/210/206/345/217/221/350/247/204/350/214/203.md +403 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/03-App/346/234/200/345/260/217/345/255/220/345/214/205/350/247/204/350/214/203.md +571 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/04-Settings/344/270/216/351/205/215/347/275/256/350/247/204/350/214/203.md +1177 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/05-/350/265/204/346/272/220/344/270/216/350/277/220/350/241/214/347/233/256/345/275/225/350/247/204/350/214/203.md +575 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/06-/346/225/260/346/215/256/345/272/223/344/270/216/345/217/257/351/200/211/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/350/214/203.md +499 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/07-App/346/233/277/346/215/242/350/247/204/350/214/203.md +206 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/08-/345/271/263/345/217/260/347/272/247App/344/270/216/350/277/220/350/241/214/346/227/266/345/215/225/344/276/213/350/247/204/350/214/203.md +445 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/09-CLI/344/270/216Worker/345/205/245/345/217/243/350/247/204/350/214/203.md +950 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/10-/346/265/213/350/257/225/344/270/216/345/245/221/347/272/246/350/247/204/350/214/203.md +1001 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/11-/344/273/223/345/272/223/347/234/237/347/233/270/346/272/220/345/234/260/345/233/276.md +102 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/12-/346/236/204/345/273/272/344/270/216/345/217/221/345/270/203/346/243/200/346/237/245/346/270/205/345/215/225.md +171 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/13-/346/255/243/345/274/217Facade/346/200/273/350/241/250.md +402 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/14-/345/210/206/345/261/202/344/270/216/346/211/251/345/261/225/350/247/204/350/214/203.md +550 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/15-/345/255/220/345/214/205/345/274/200/345/217/221/344/275/277/347/224/250/346/211/213/345/206/214.md +1004 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/16-/346/211/251/345/261/225/347/202/271/346/255/243/345/274/217/345/215/217/350/256/256/346/270/205/345/215/225.md +352 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/17-pz.protocols.v1/346/255/243/345/274/217/345/215/217/350/256/256.md +266 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/18-/346/211/251/345/261/225/347/202/271/345/206/262/347/252/201/350/243/201/345/206/263/346/200/273/350/241/250.md +131 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/19-/351/224/231/350/257/257/347/240/201/344/270/216/350/257/212/346/226/255/345/215/217/350/256/256.md +176 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/20-/347/247/201/346/234/211/345/214/205/344/273/223/344/270/216/347/273/237/344/270/200/350/256/244/350/257/201/351/203/250/347/275/262/350/247/204/350/214/203.md +243 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/21-contrib/347/272/246/345/256/232/344/270/216Provider/346/216/245/345/205/245/350/247/204/350/214/203.md +365 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/22-/345/244/232/345/233/275/350/257/255/350/250/200/350/265/204/346/272/220/346/262/273/347/220/206/344/270/216/346/214/211/351/234/200/345/212/240/350/275/275/350/247/204/350/214/203.md +912 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/23-/351/246/226/345/261/217/345/261/225/347/244/272/344/270/216/351/246/226/345/270/247/347/250/263/345/256/232/350/247/204/350/214/203.md +269 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/24-pz/345/220/257/345/212/250/344/270/216/350/277/220/350/241/214/346/227/266/347/274/226/350/257/221/346/265/201/347/250/213.md +245 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/25-/351/235/242/345/220/221/345/257/271/350/261/241/345/274/200/345/217/221/350/247/204/350/214/203.md +300 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/README.md +98 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/00-legacy_core/346/240/207/345/207/206pip/345/214/205/345/214/226/351/207/215/346/236/204/346/200/273/347/272/262.md +1073 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/01-/347/233/256/345/275/225/344/270/216/345/210/206/345/261/202/351/207/215/346/236/204/346/211/247/350/241/214/346/226/271/346/241/210.md +224 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/02-/345/214/205/344/270/216/345/210/206/345/217/221/350/247/204/350/214/203-/345/220/253/345/216/206/345/217/262/345/217/243/345/276/204.md +671 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/13-/344/270/200/346/254/241/346/200/247/345/256/236/346/226/275/346/270/205/345/215/225.md +387 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/14-/345/255/220/345/214/205/351/200/202/351/205/215/346/224/271/351/200/240/346/270/205/345/215/225.md +592 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/15-infra/350/243/201/345/211/252/344/270/216/350/220/275/344/275/215/346/270/205/345/215/225.md +81 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/19-core/345/215/225/344/270/200/346/255/243/345/274/217/346/226/271/346/241/210/346/224/266/346/225/233/346/211/247/350/241/214/346/270/205/345/215/225.md +161 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/25-/345/215/217/350/256/256/345/210/260/346/272/220/347/240/201/345/267/256/350/267/235/346/270/205/345/215/225.md +377 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/26-cutover/345/256/214/345/267/245/346/243/200/346/237/245/346/270/205/345/215/225.md +117 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/29-/345/244/232/345/233/275/350/257/255/350/250/200/350/265/204/346/272/220/346/262/273/347/220/206/344/270/216/346/214/211/351/234/200/345/212/240/350/275/275/350/247/204/350/214/203-/345/220/253/350/277/201/347/247/273/347/255/226/347/225/245.md +956 -0
- pz_core/docs/pz/350/247/204/350/214/203/344/270/216/344/275/277/347/224/250/archive//344/270/255/351/227/264/346/200/201/99-/350/265/204/346/272/220/346/224/266/345/217/243/345/220/216/347/273/255TODO.md +84 -0
- pz_core/docs//345/217/221/347/211/210/345/211/215/346/270/205/345/215/225-4.0.11.md +84 -0
- pz_core/docs//346/226/260/346/211/213/346/214/207/345/215/227.md +422 -0
- pz_core/infra/__init__.py +17 -0
- pz_core/infra/db/__init__.py +23 -0
- pz_core/infra/db/contracts.py +73 -0
- pz_core/infra/health/__init__.py +5 -0
- pz_core/infra/health/contracts.py +8 -0
- pz_core/infra/kv/__init__.py +5 -0
- pz_core/infra/kv/contracts.py +17 -0
- pz_core/infra/observability/__init__.py +23 -0
- pz_core/infra/observability/contracts.py +142 -0
- pz_core/infra/resilience/__init__.py +5 -0
- pz_core/infra/resilience/contracts.py +17 -0
- pz_core/infra/resources/__init__.py +5 -0
- pz_core/infra/resources/contracts.py +16 -0
- pz_core/infra/settings/__init__.py +17 -0
- pz_core/infra/settings/models.py +81 -0
- pz_core/infra/storage/__init__.py +5 -0
- pz_core/infra/storage/ports.py +27 -0
- pz_core/project_root_commands.py +282 -0
- pz_core/project_runtime_cli.py +344 -0
- pz_core/project_sources.py +253 -0
- pz_core/pz_launcher.py +209 -0
- pz_core/root_cli.py +70 -0
- pz_core/runtime/__init__.py +229 -0
- pz_core/runtime/access.py +86 -0
- pz_core/runtime/adapters/__init__.py +5 -0
- pz_core/runtime/adapters/base.py +18 -0
- pz_core/runtime/asyncio_bridge.py +18 -0
- pz_core/runtime/bindings/__init__.py +5 -0
- pz_core/runtime/bindings/container.py +50 -0
- pz_core/runtime/cli/__init__.py +5 -0
- pz_core/runtime/cli/_args.py +67 -0
- pz_core/runtime/cli/app_commands.py +417 -0
- pz_core/runtime/cli/check.py +214 -0
- pz_core/runtime/cli/db.py +297 -0
- pz_core/runtime/cli/main.py +89 -0
- pz_core/runtime/cli/resources.py +280 -0
- pz_core/runtime/discovery.py +23 -0
- pz_core/runtime/environment_integrity.py +157 -0
- pz_core/runtime/errors.py +5 -0
- pz_core/runtime/events.py +87 -0
- pz_core/runtime/facades/__init__.py +38 -0
- pz_core/runtime/facades/_capabilities.py +46 -0
- pz_core/runtime/facades/cache.py +103 -0
- pz_core/runtime/facades/database.py +71 -0
- pz_core/runtime/facades/events.py +380 -0
- pz_core/runtime/facades/health.py +101 -0
- pz_core/runtime/facades/mail.py +121 -0
- pz_core/runtime/facades/observability.py +102 -0
- pz_core/runtime/facades/providers.py +75 -0
- pz_core/runtime/facades/resources.py +52 -0
- pz_core/runtime/facades/storage.py +296 -0
- pz_core/runtime/health/__init__.py +5 -0
- pz_core/runtime/health/service.py +102 -0
- pz_core/runtime/host.py +188 -0
- pz_core/runtime/host_runner.py +282 -0
- pz_core/runtime/http/__init__.py +20 -0
- pz_core/runtime/http/app.py +576 -0
- pz_core/runtime/http_timing.py +173 -0
- pz_core/runtime/invocation.py +29 -0
- pz_core/runtime/json_safe.py +47 -0
- pz_core/runtime/lifecycle/__init__.py +25 -0
- pz_core/runtime/lifecycle/manager.py +533 -0
- pz_core/runtime/plan.py +214 -0
- pz_core/runtime/plan_context.py +33 -0
- pz_core/runtime/plan_snapshot.py +177 -0
- pz_core/runtime/registries/__init__.py +27 -0
- pz_core/runtime/registries/capabilities.py +101 -0
- pz_core/runtime/registries/providers.py +396 -0
- pz_core/runtime/resource_assets.py +344 -0
- pz_core/runtime/run_cli.py +211 -0
- pz_core/runtime/settings.py +888 -0
- pz_core/runtime/worker/__init__.py +21 -0
- pz_core/runtime/worker/engine.py +921 -0
- pz_core/runtime/worker/runtime.py +25 -0
- pz_core/testing/__init__.py +15 -0
- pz_core/testing/doc_route_contracts.py +305 -0
- pz_core/utils/__init__.py +44 -0
- pz_core/utils/env.py +65 -0
- pz_core/utils/project_jsonc/__init__.py +29 -0
- pz_core/utils/project_jsonc/document.py +420 -0
- pz_core/utils/project_settings.py +99 -0
- pz_foundation/__init__.py +50 -0
- pz_foundation/_contracts.py +81 -0
- pz_foundation/_errors.py +34 -0
- pz_foundation/api.py +14 -0
- pz_foundation/apps.py +127 -0
- pz_foundation/auth/__init__.py +1 -0
- pz_foundation/cache_control.py +233 -0
- pz_foundation/cli/__init__.py +2 -0
- pz_foundation/cli/workers.py +565 -0
- pz_foundation/configs/__init__.py +0 -0
- pz_foundation/configs/default.env +15 -0
- pz_foundation/configs/default.jsonc +452 -0
- pz_foundation/db/__init__.py +94 -0
- pz_foundation/db/aerich_executor.py +664 -0
- pz_foundation/db/config.py +358 -0
- pz_foundation/db/connection_manager.py +689 -0
- pz_foundation/db/connection_probe.py +204 -0
- pz_foundation/db/database.py +1291 -0
- pz_foundation/db/deps.py +47 -0
- pz_foundation/db/lifecycle_status.py +85 -0
- pz_foundation/db/migrations.py +477 -0
- pz_foundation/db/mysql.py +57 -0
- pz_foundation/db/postgresql.py +409 -0
- pz_foundation/db/production_pool_fallback.py +143 -0
- pz_foundation/db/public.py +45 -0
- pz_foundation/db/session.py +369 -0
- pz_foundation/db/sqlite.py +15 -0
- pz_foundation/db/tortoise_manager.py +724 -0
- pz_foundation/db/tortoise_psycopg.py +148 -0
- pz_foundation/docs/README.md +18 -0
- pz_foundation/docs/distribution-README.md +319 -0
- pz_foundation/docs/infra/350/243/201/345/211/252/344/270/216/350/220/275/344/275/215/350/257/264/346/230/216.md +39 -0
- pz_foundation/docs//345/205/254/345/274/200/345/205/215/350/264/271/346/216/245/345/217/243/351/230/262/346/273/245/347/224/250/344/270/216/344/272/272/346/234/272/346/240/241/351/252/214.md +680 -0
- pz_foundation/docs//350/256/276/350/256/241/346/226/207/346/241/243.md +288 -0
- pz_foundation/docs//350/267/257/347/224/261/344/270/216URL/345/244/204/347/220/206/350/247/204/350/214/203.md +119 -0
- pz_foundation/health.py +105 -0
- pz_foundation/host/__init__.py +11 -0
- pz_foundation/host/builder.py +34 -0
- pz_foundation/host/cache_runtime.py +44 -0
- pz_foundation/host/db/__init__.py +17 -0
- pz_foundation/host/db/aerich_config.py +36 -0
- pz_foundation/host/db/config.py +106 -0
- pz_foundation/host/db/connection_manager.py +48 -0
- pz_foundation/host/db/deps.py +5 -0
- pz_foundation/host/db/orm_retry_patch.py +566 -0
- pz_foundation/host/db/request_adapter.py +325 -0
- pz_foundation/host/db/router.py +28 -0
- pz_foundation/host/db/session.py +284 -0
- pz_foundation/host/db/tortoise_manager.py +10 -0
- pz_foundation/host/idempotency.py +132 -0
- pz_foundation/host/lifespan.py +247 -0
- pz_foundation/host/redis_runtime.py +100 -0
- pz_foundation/host/web.py +790 -0
- pz_foundation/infra_provider.py +236 -0
- pz_foundation/kv/__init__.py +25 -0
- pz_foundation/kv/cache.py +1166 -0
- pz_foundation/kv/deps.py +84 -0
- pz_foundation/kv/public.py +25 -0
- pz_foundation/kv/redis_manager.py +1531 -0
- pz_foundation/lazy_exports.py +43 -0
- pz_foundation/lazy_imports.py +124 -0
- pz_foundation/lifecycle.py +392 -0
- pz_foundation/managed_workers.py +1117 -0
- pz_foundation/middlewares/__init__.py +26 -0
- pz_foundation/middlewares/_settings.py +250 -0
- pz_foundation/middlewares/analytics.py +124 -0
- pz_foundation/middlewares/cache_control.py +156 -0
- pz_foundation/middlewares/compression.py +202 -0
- pz_foundation/middlewares/cors.py +62 -0
- pz_foundation/middlewares/geo_country.py +44 -0
- pz_foundation/middlewares/inner_router.py +50 -0
- pz_foundation/middlewares/rate_limited/__init__.py +3 -0
- pz_foundation/middlewares/rate_limited/key_limiter.py +115 -0
- pz_foundation/middlewares/request_logging.py +104 -0
- pz_foundation/middlewares/route_owner.py +309 -0
- pz_foundation/middlewares/security_csrf.py +44 -0
- pz_foundation/middlewares/security_headers/__init__.py +4 -0
- pz_foundation/middlewares/security_headers/conflicts.py +44 -0
- pz_foundation/middlewares/security_headers/csp_nonce.py +200 -0
- pz_foundation/middlewares/security_headers/security_headers.py +44 -0
- pz_foundation/migrations/__init__.py +1 -0
- pz_foundation/migrations/pz_foundation/__init__.py +1 -0
- pz_foundation/models.py +22 -0
- pz_foundation/notifications/__init__.py +23 -0
- pz_foundation/notifications/email.py +542 -0
- pz_foundation/notifications/public.py +31 -0
- pz_foundation/observability/__init__.py +71 -0
- pz_foundation/observability/http.py +34 -0
- pz_foundation/observability/logger/__init__.py +49 -0
- pz_foundation/observability/logger/_bot_settings.py +126 -0
- pz_foundation/observability/logger/bot_message.py +592 -0
- pz_foundation/observability/logger/core.py +385 -0
- pz_foundation/observability/logger/delivery_audit.py +84 -0
- pz_foundation/observability/logger/feishu_bot.py +199 -0
- pz_foundation/observability/logger/telegram_bot.py +194 -0
- pz_foundation/observability/metrics.py +365 -0
- pz_foundation/observability/runtime.py +68 -0
- pz_foundation/public.py +405 -0
- pz_foundation/resources/__init__.py +12 -0
- pz_foundation/resources/builder.py +900 -0
- pz_foundation/resources/images.py +363 -0
- pz_foundation/root_cli.py +20 -0
- pz_foundation/routing/__init__.py +203 -0
- pz_foundation/routing/canonical.py +486 -0
- pz_foundation/routing/convertors.py +82 -0
- pz_foundation/routing/declarations.py +843 -0
- pz_foundation/routing/exports.py +148 -0
- pz_foundation/routing/loaders.py +138 -0
- pz_foundation/routing/manifest.py +215 -0
- pz_foundation/routing/manifest_provider.py +47 -0
- pz_foundation/routing/mounts.py +101 -0
- pz_foundation/routing/ordering.py +172 -0
- pz_foundation/routing/registry.py +133 -0
- pz_foundation/routing/utils.py +28 -0
- pz_foundation/runtime.py +234 -0
- pz_foundation/settings.py +253 -0
- pz_foundation/settings_normalization.py +130 -0
- pz_foundation/storage/__init__.py +25 -0
- pz_foundation/storage/local.py +209 -0
- pz_foundation/storage/public.py +106 -0
- pz_foundation/storage/s3.py +116 -0
- pz_foundation/storage/service.py +234 -0
- pz_foundation/urls.py +19 -0
- pz_foundation/utils/__init__.py +6 -0
- pz_foundation/utils/merge.py +160 -0
- pz_foundation/worker_replicas.py +55 -0
- pz_settings_center/__init__.py +5 -0
- pz_settings_center/api/__init__.py +5 -0
- pz_settings_center/api/runtime_overrides.py +360 -0
- pz_settings_center/apps.py +28 -0
- pz_settings_center/configs/__init__.py +0 -0
- pz_settings_center/configs/default.env +2 -0
- pz_settings_center/configs/default.jsonc +1 -0
- pz_settings_center/docs/01-settings_center/350/203/275/345/212/233/350/276/271/347/225/214.md +124 -0
- pz_settings_center/docs/README.md +12 -0
- pz_settings_center/docs/distribution-README.md +150 -0
- pz_settings_center/docs//350/256/276/350/256/241/346/226/207/346/241/243.md +48 -0
- pz_settings_center/integration_payload.py +18 -0
- pz_settings_center/project_helpers.py +405 -0
- pz_settings_center/public.py +139 -0
- pz_settings_center/routing_helpers.py +73 -0
- pz_settings_center/runtime_override_provider.py +61 -0
- pz_settings_center/typed_settings.py +324 -0
- pz_settings_center/urls.py +9 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# 19-legacy_core 并入 pz 迁移执行清单
|
|
2
|
+
|
|
3
|
+
> 历史说明:本文本身就是 `legacy_core -> pz` 的迁移执行记录,因此会保留大量 `legacy_core` 字样;当前正式基础包统一为 `pz`。
|
|
4
|
+
|
|
5
|
+
本文档只定义一件事:
|
|
6
|
+
|
|
7
|
+
- 把 `legacy_core` 作为历史过渡基础包并入 `pz`,完成单一基础包 cutover。
|
|
8
|
+
|
|
9
|
+
适用边界:
|
|
10
|
+
|
|
11
|
+
- 只处理基础层迁移、公开面迁移、命令迁移与契约治理
|
|
12
|
+
- 不在 `legacy_core` 内继续补长期兼容层
|
|
13
|
+
- 需要迁移的消费侧,迁到 `pz` 正式公开面,不保留双轨
|
|
14
|
+
|
|
15
|
+
## 目标
|
|
16
|
+
|
|
17
|
+
迁移完成后,系统必须满足:
|
|
18
|
+
|
|
19
|
+
- 只有 `pz` 是正式基础包与唯一可独立启动的包
|
|
20
|
+
- `legacy_core` 不再作为长期独立 distribution / import 面 / CLI 主入口
|
|
21
|
+
- 正式命令、正式 Python API、正式 RuntimePlan 编译链全部收敛到 `pz`
|
|
22
|
+
- 共享子包只依赖 `pz` 正式公开面
|
|
23
|
+
|
|
24
|
+
## 总顺序
|
|
25
|
+
|
|
26
|
+
按下面顺序执行,禁止跳步:
|
|
27
|
+
|
|
28
|
+
1. 收 `pz` / `legacy_core` 基础层边界与目标公开面
|
|
29
|
+
2. 收命令入口与 Python API 到 `pz`
|
|
30
|
+
3. 收 import surface、distribution 与共享子包依赖
|
|
31
|
+
4. 收扩展点合同与配置合同
|
|
32
|
+
5. 清理 `legacy_core` 历史兼容别名与桥接入口
|
|
33
|
+
6. 重跑契约、重装受影响共享包、重启宿主、跑宿主验证
|
|
34
|
+
|
|
35
|
+
原则:
|
|
36
|
+
|
|
37
|
+
- 先收正式公开面,再收消费侧
|
|
38
|
+
- 每一步完成后都补契约测试
|
|
39
|
+
- 不保留长期双轨
|
|
40
|
+
- cutover 必须是一次性切换,不接受“先都支持着”
|
|
41
|
+
|
|
42
|
+
## 阶段一:基础层目标公开面收口
|
|
43
|
+
|
|
44
|
+
目标:
|
|
45
|
+
|
|
46
|
+
- 明确 `pz` 是唯一正式基础包
|
|
47
|
+
- 明确 `legacy_core` 仅作为短期迁移桥接
|
|
48
|
+
|
|
49
|
+
范围:
|
|
50
|
+
|
|
51
|
+
- 冻结 `pz` 最终必须保留的基础层协议模块
|
|
52
|
+
- 冻结 `legacy_core` 最终不应继续承载的具体实现
|
|
53
|
+
- 冻结 `pz` 的正式 CLI、正式 Python API、正式扩展点合同
|
|
54
|
+
|
|
55
|
+
完成标志:
|
|
56
|
+
|
|
57
|
+
- `pz` 成为文档、CLI、契约测试中的唯一基础包名
|
|
58
|
+
- `legacy_core` 不再出现在新设计的正式示例里
|
|
59
|
+
- `pz` 公开面清单稳定冻结
|
|
60
|
+
|
|
61
|
+
## 阶段二:命令入口与 Python API cutover
|
|
62
|
+
|
|
63
|
+
目标:
|
|
64
|
+
|
|
65
|
+
- 所有正式命令与 Python API 收敛到 `pz`
|
|
66
|
+
|
|
67
|
+
范围:
|
|
68
|
+
|
|
69
|
+
- `legacy_core` CLI -> `pz`
|
|
70
|
+
- `legacy_core check` -> `pz check`
|
|
71
|
+
- `legacy_core db` -> `pz db`
|
|
72
|
+
- `legacy_core <app_id> <tool>` -> `pz <app_id> <tool>`
|
|
73
|
+
- `legacy_core.app:create_app` / `register_pz` -> `pz.app:*`
|
|
74
|
+
|
|
75
|
+
完成标志:
|
|
76
|
+
|
|
77
|
+
- 帮助文案、README、测试、宿主入口只使用 `pz`
|
|
78
|
+
- CLI 与 Python API 共用同一条编译链
|
|
79
|
+
- `legacy_core` 旧命令不再是正式主路径
|
|
80
|
+
|
|
81
|
+
## 阶段三:import surface 与 distribution cutover
|
|
82
|
+
|
|
83
|
+
目标:
|
|
84
|
+
|
|
85
|
+
- 共享子包与宿主项目改为依赖 `pz`
|
|
86
|
+
|
|
87
|
+
范围:
|
|
88
|
+
|
|
89
|
+
- `pyproject.toml` 依赖切到 `pz`
|
|
90
|
+
- import 面从 `legacy_core.*` 迁到 `pz.*`
|
|
91
|
+
- 收 distribution、entrypoint、安装校验脚本
|
|
92
|
+
|
|
93
|
+
完成标志:
|
|
94
|
+
|
|
95
|
+
- 新增代码不再直接依赖 `legacy_core`
|
|
96
|
+
- 宿主和共享包以 `pz` 为唯一基础依赖
|
|
97
|
+
- `legacy_core` 不再是正式依赖链关键节点
|
|
98
|
+
|
|
99
|
+
## 阶段四:扩展点与配置合同 cutover
|
|
100
|
+
|
|
101
|
+
目标:
|
|
102
|
+
|
|
103
|
+
- 扩展点与配置协议全面切到新合同
|
|
104
|
+
|
|
105
|
+
范围:
|
|
106
|
+
|
|
107
|
+
- `host.builder`
|
|
108
|
+
- `settings.provider`
|
|
109
|
+
- `cli.tool`
|
|
110
|
+
- module config owner / settings surface owner / settings runtime owner 协作链
|
|
111
|
+
- `required_pz` 字段与 app 元数据校验
|
|
112
|
+
|
|
113
|
+
完成标志:
|
|
114
|
+
|
|
115
|
+
- 运行时与编译期都只认新扩展点对象形状
|
|
116
|
+
- 配置体系只保留单一运行时读取入口
|
|
117
|
+
- 契约测试锁死新对象协议与冲突策略
|
|
118
|
+
|
|
119
|
+
## 阶段五:清理 `legacy_core` 历史桥接
|
|
120
|
+
|
|
121
|
+
目标:
|
|
122
|
+
|
|
123
|
+
- 删除 `legacy_core` 中仍残留的历史兼容入口与桥接别名
|
|
124
|
+
|
|
125
|
+
范围:
|
|
126
|
+
|
|
127
|
+
- 删除历史命令入口
|
|
128
|
+
- 删除历史 import shim
|
|
129
|
+
- 删除历史别名与宽松兼容逻辑
|
|
130
|
+
- 将 `legacy_core` 收敛为迁移期最小桥接壳,直至彻底下线
|
|
131
|
+
|
|
132
|
+
完成标志:
|
|
133
|
+
|
|
134
|
+
- `legacy_core` 不再是正式公开主路径
|
|
135
|
+
- 历史桥接不再进入正式主链
|
|
136
|
+
- 旧入口回流会被契约测试直接拦截
|
|
137
|
+
|
|
138
|
+
## 验证要求
|
|
139
|
+
|
|
140
|
+
每个阶段都要执行:
|
|
141
|
+
|
|
142
|
+
1. source repo 本地契约测试
|
|
143
|
+
2. `pz env sync --project-dir <host-project-dir>`
|
|
144
|
+
3. 若 public surface 影响到共享包,再补宿主 `pz run` / `/health` 验证
|
|
145
|
+
|
|
146
|
+
宿主最终要求:
|
|
147
|
+
|
|
148
|
+
- 重启完成
|
|
149
|
+
- `/health` 返回 `200`
|
|
150
|
+
- 对应 host integration contract 通过
|
|
151
|
+
|
|
152
|
+
## 当前执行决议
|
|
153
|
+
|
|
154
|
+
阶段一处于文档冻结中。
|
|
155
|
+
|
|
156
|
+
本轮优先执行:
|
|
157
|
+
|
|
158
|
+
- 冻结 `pz` 基础层协议模块
|
|
159
|
+
- 冻结扩展点对象合同
|
|
160
|
+
- 冻结配置三层协作链
|
|
161
|
+
- 为 `legacy_core -> pz` cutover 准备契约测试与宿主 smoke 要求
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
# 25-协议到源码差距清单
|
|
2
|
+
|
|
3
|
+
> 历史说明:本文里保留的 `legacy_core` 只用于差距追踪、旧 owner package 记录与迁移尾项描述;当前正式基础包统一为 `pz`。
|
|
4
|
+
|
|
5
|
+
本文档只做一件事:
|
|
6
|
+
|
|
7
|
+
- 对照 `22-pz.protocols.v1 草案`、`23-扩展点冲突裁决总表`、`24-错误码与诊断协议`,记录源码差距的收口结果与剩余治理尾项。
|
|
8
|
+
|
|
9
|
+
适用边界:
|
|
10
|
+
|
|
11
|
+
- 不重复定义新协议
|
|
12
|
+
- 不把迁移语境重新写回正式规则
|
|
13
|
+
- 只记录“当前源码是否已经完成正式 cutover”
|
|
14
|
+
|
|
15
|
+
## 1. 当前结论
|
|
16
|
+
|
|
17
|
+
当前正式运行主链已经完成 cutover:
|
|
18
|
+
|
|
19
|
+
- `required_core -> required_pz` 已完成
|
|
20
|
+
- `settings.provider` 已成为正式主链
|
|
21
|
+
- `host.builder`、`route`、`middleware`、`lifecycle`、`resource` contribution 已完成对象化
|
|
22
|
+
- 正式 CLI 已收敛到 `pz`
|
|
23
|
+
- 正式 Python API 已收敛到 `pz.*`
|
|
24
|
+
- 宿主重装、重启、健康检查与关键契约测试已通过
|
|
25
|
+
|
|
26
|
+
当前剩余事项只保留两类治理尾项:
|
|
27
|
+
|
|
28
|
+
1. `workspace_packages.toml` 仍保留 `legacy-core` 的 migration-only source-repo 条目
|
|
29
|
+
2. 少量迁移文档与仓库说明仍保留旧口径,用于记录 cutover 过程,而不是定义当前正式规则
|
|
30
|
+
3. 多国语言资源治理仍停留在历史 `base + namespace` 约定,尚未完全映射到正式 locale bundle / consumer binding 协议
|
|
31
|
+
|
|
32
|
+
本文档每条差距统一补充下面 5 类执行信息:
|
|
33
|
+
|
|
34
|
+
- `owner repo`
|
|
35
|
+
- `owner package`
|
|
36
|
+
- `status`
|
|
37
|
+
- `DoD ref`
|
|
38
|
+
- `tests`
|
|
39
|
+
|
|
40
|
+
## 2. 配置链差距
|
|
41
|
+
|
|
42
|
+
本节差距已全部关闭。
|
|
43
|
+
|
|
44
|
+
### 2.1 `settings.provider` 正式主链
|
|
45
|
+
|
|
46
|
+
处理结果:
|
|
47
|
+
|
|
48
|
+
- `SettingsProviderSpec` 已成为正式声明对象
|
|
49
|
+
- `RuntimePlan` 已直接编译 provider manifest
|
|
50
|
+
- provider 正式输出已统一为 `SettingsPatch`
|
|
51
|
+
- settings surface owner 的 `public.py` 不再把命令式注册 API 作为稳定公开面
|
|
52
|
+
- settings surface owner 不再公开 `load_app_settings()` / `load_typed_app_settings()` 这类第二读取 helper
|
|
53
|
+
|
|
54
|
+
执行信息:
|
|
55
|
+
|
|
56
|
+
- `owner repo`
|
|
57
|
+
- `pz_framework/legacy_core`
|
|
58
|
+
- `pz_framework/pz_contrib`
|
|
59
|
+
- `owner package`
|
|
60
|
+
- `pz`
|
|
61
|
+
- settings surface owner
|
|
62
|
+
- `status`
|
|
63
|
+
- `done`
|
|
64
|
+
- `DoD ref`
|
|
65
|
+
- `C1`
|
|
66
|
+
- `C2`
|
|
67
|
+
- `tests`
|
|
68
|
+
- 现有:settings provider 编译与 settings surface 契约测试
|
|
69
|
+
- 现有:宿主 settings smoke、runtime override smoke
|
|
70
|
+
|
|
71
|
+
### 2.2 settings runtime owner 接入方式
|
|
72
|
+
|
|
73
|
+
处理结果:
|
|
74
|
+
|
|
75
|
+
- settings runtime owner 已通过正式 `SettingsProviderSpec` 接入
|
|
76
|
+
- 不再依赖命令式 provider 注册作为主链
|
|
77
|
+
|
|
78
|
+
执行信息:
|
|
79
|
+
|
|
80
|
+
- `owner repo`
|
|
81
|
+
- `pz_framework/pz_contrib`
|
|
82
|
+
- `owner package`
|
|
83
|
+
- settings runtime owner
|
|
84
|
+
- `status`
|
|
85
|
+
- `done`
|
|
86
|
+
- `DoD ref`
|
|
87
|
+
- `C1`
|
|
88
|
+
- `C2`
|
|
89
|
+
- `tests`
|
|
90
|
+
- 现有:settings operator import smoke
|
|
91
|
+
- 现有:runtime override 与 provider 共存测试
|
|
92
|
+
|
|
93
|
+
### 2.3 check / preflight owner import-time provider 注册
|
|
94
|
+
|
|
95
|
+
处理结果:
|
|
96
|
+
|
|
97
|
+
- import-time provider 注册已删除
|
|
98
|
+
- check / preflight settings 注入已改为正式 `extensions()` 输出的 `settings.provider`
|
|
99
|
+
|
|
100
|
+
执行信息:
|
|
101
|
+
|
|
102
|
+
- `owner repo`
|
|
103
|
+
- `pz_framework/pz_contrib`
|
|
104
|
+
- `owner package`
|
|
105
|
+
- check / preflight owner
|
|
106
|
+
- `status`
|
|
107
|
+
- `done`
|
|
108
|
+
- `DoD ref`
|
|
109
|
+
- `C2`
|
|
110
|
+
- `tests`
|
|
111
|
+
- 现有:preflight import smoke
|
|
112
|
+
- 现有:无 import-time 副作用测试
|
|
113
|
+
|
|
114
|
+
## 3. 扩展点差距
|
|
115
|
+
|
|
116
|
+
本节差距已全部关闭。
|
|
117
|
+
|
|
118
|
+
### 3.1 `host.builder`
|
|
119
|
+
|
|
120
|
+
处理结果:
|
|
121
|
+
|
|
122
|
+
- `foundation` 已输出结构化 `HostBuilderSpec`
|
|
123
|
+
- `RuntimePlan` 已直接挂结构化 host manifest
|
|
124
|
+
- `runtime.host` 已直接消费 `HostBuilderSpec`
|
|
125
|
+
- 冲突裁决只认 `priority`
|
|
126
|
+
|
|
127
|
+
执行信息:
|
|
128
|
+
|
|
129
|
+
- `owner repo`
|
|
130
|
+
- `pz_framework/pz_contrib`
|
|
131
|
+
- `pz_framework/legacy_core`
|
|
132
|
+
- `owner package`
|
|
133
|
+
- official infra owner
|
|
134
|
+
- `pz`
|
|
135
|
+
- `status`
|
|
136
|
+
- `done`
|
|
137
|
+
- `DoD ref`
|
|
138
|
+
- `D1`
|
|
139
|
+
- `tests`
|
|
140
|
+
- 现有:host runtime 契约测试
|
|
141
|
+
- 现有:host integration 契约测试
|
|
142
|
+
- 现有:宿主 `/health`
|
|
143
|
+
|
|
144
|
+
### 3.2 其它 contribution
|
|
145
|
+
|
|
146
|
+
处理结果:
|
|
147
|
+
|
|
148
|
+
- `route`、`middleware`、`lifecycle`、`resource` contribution 已全部对象化
|
|
149
|
+
- `extensions()` 正式返回值已只保留协议对象
|
|
150
|
+
- 旧 dict 声明已退出正式主链
|
|
151
|
+
|
|
152
|
+
执行信息:
|
|
153
|
+
|
|
154
|
+
- `owner repo`
|
|
155
|
+
- `pz_framework/legacy_core`
|
|
156
|
+
- `pz_framework/pz_contrib`
|
|
157
|
+
- `pz_apps`
|
|
158
|
+
- `pz_apps`
|
|
159
|
+
- `owner package`
|
|
160
|
+
- 受影响最小子包
|
|
161
|
+
- `status`
|
|
162
|
+
- `done`
|
|
163
|
+
- `DoD ref`
|
|
164
|
+
- `D2`
|
|
165
|
+
- `tests`
|
|
166
|
+
- 现有:`RuntimePlan` 结构测试
|
|
167
|
+
- 现有:各 contribution 契约测试
|
|
168
|
+
|
|
169
|
+
## 4. App 元数据与编译器差距
|
|
170
|
+
|
|
171
|
+
本节差距已全部关闭。
|
|
172
|
+
|
|
173
|
+
### 4.1 `required_pz`
|
|
174
|
+
|
|
175
|
+
处理结果:
|
|
176
|
+
|
|
177
|
+
- 编译器与 `AppDecl` 已统一到 `required_pz`
|
|
178
|
+
- 错误码与错误消息已围绕 `required_pz` 收口
|
|
179
|
+
- app 声明、测试、模板已同步切换
|
|
180
|
+
|
|
181
|
+
执行信息:
|
|
182
|
+
|
|
183
|
+
- `owner repo`
|
|
184
|
+
- `pz_framework/legacy_core`
|
|
185
|
+
- `pz_framework/pz_contrib`
|
|
186
|
+
- `pz_apps`
|
|
187
|
+
- `pz_apps`
|
|
188
|
+
- `owner package`
|
|
189
|
+
- 受影响最小子包
|
|
190
|
+
- `status`
|
|
191
|
+
- `done`
|
|
192
|
+
- `DoD ref`
|
|
193
|
+
- `A1`
|
|
194
|
+
- `B1`
|
|
195
|
+
- `tests`
|
|
196
|
+
- 现有:app registry 契约测试
|
|
197
|
+
- 现有:apps.py 元数据契约测试
|
|
198
|
+
|
|
199
|
+
## 5. 脚手架与顶层包差距
|
|
200
|
+
|
|
201
|
+
本节差距已全部关闭。
|
|
202
|
+
|
|
203
|
+
### 5.1 `pz startapp`
|
|
204
|
+
|
|
205
|
+
处理结果:
|
|
206
|
+
|
|
207
|
+
- 脚手架模板已输出 `pz` 正式依赖
|
|
208
|
+
- `apps.py` 模板已输出 `required_pz`
|
|
209
|
+
- 新生成代码不再扩散旧字段与旧依赖
|
|
210
|
+
|
|
211
|
+
执行信息:
|
|
212
|
+
|
|
213
|
+
- `owner repo`
|
|
214
|
+
- `pz_framework/pz`
|
|
215
|
+
- `owner package`
|
|
216
|
+
- `pz`
|
|
217
|
+
- `status`
|
|
218
|
+
- `done`
|
|
219
|
+
- `DoD ref`
|
|
220
|
+
- `A1`
|
|
221
|
+
- `A2`
|
|
222
|
+
- `tests`
|
|
223
|
+
- 现有:`pz` CLI 契约测试
|
|
224
|
+
|
|
225
|
+
### 5.2 `pz` 顶层 README 与正式入口
|
|
226
|
+
|
|
227
|
+
处理结果:
|
|
228
|
+
|
|
229
|
+
- `pz` 顶层 README 已改为单一基础包叙述
|
|
230
|
+
- 正式 CLI 与正式 Python API 已收敛到 `pz`
|
|
231
|
+
|
|
232
|
+
执行信息:
|
|
233
|
+
|
|
234
|
+
- `owner repo`
|
|
235
|
+
- `pz_framework/pz`
|
|
236
|
+
- `owner package`
|
|
237
|
+
- `pz`
|
|
238
|
+
- `status`
|
|
239
|
+
- `done`
|
|
240
|
+
- `DoD ref`
|
|
241
|
+
- `A2`
|
|
242
|
+
- `E1`
|
|
243
|
+
- `E2`
|
|
244
|
+
- `tests`
|
|
245
|
+
- 现有:CLI 契约测试
|
|
246
|
+
- 现有:Python API smoke
|
|
247
|
+
|
|
248
|
+
## 6. 仓库元数据与工作区尾项
|
|
249
|
+
|
|
250
|
+
### 6.1 workspace migration-only 条目
|
|
251
|
+
|
|
252
|
+
当前状态:
|
|
253
|
+
|
|
254
|
+
- `workspace_packages.toml` 仍存在 `[packages."legacy-core"]`
|
|
255
|
+
- 该条目已明确标注为 migration-only source-repo entry
|
|
256
|
+
|
|
257
|
+
说明:
|
|
258
|
+
|
|
259
|
+
- 该条目对应的是真相源仓库位置,而不是终端用户正式 CLI/安装口径
|
|
260
|
+
- 正式基础包、正式 CLI、正式 Python API 已经收敛到 `pz`
|
|
261
|
+
|
|
262
|
+
执行信息:
|
|
263
|
+
|
|
264
|
+
- `owner repo`
|
|
265
|
+
- `mt` workspace root
|
|
266
|
+
- `owner package`
|
|
267
|
+
- workspace metadata
|
|
268
|
+
- `status`
|
|
269
|
+
- `accepted_migration_context`
|
|
270
|
+
- `DoD ref`
|
|
271
|
+
- `B2`
|
|
272
|
+
- `tests`
|
|
273
|
+
- 现有:`pz env sync` 宿主依赖刷新验证
|
|
274
|
+
- 现有:宿主 `pz run` 与 `/health` 验证
|
|
275
|
+
|
|
276
|
+
## 7. 文档尾项
|
|
277
|
+
|
|
278
|
+
当前状态:
|
|
279
|
+
|
|
280
|
+
- `22/23/24/25/26` 主协议与执行文档已收口到新口径
|
|
281
|
+
- 少量迁移文档与仓库说明仍保留旧口径,用于记录迁移过程
|
|
282
|
+
|
|
283
|
+
说明:
|
|
284
|
+
|
|
285
|
+
- 这些残留不再定义当前正式规则
|
|
286
|
+
- 它们属于治理尾项,不再阻塞正式运行主链完工
|
|
287
|
+
|
|
288
|
+
执行信息:
|
|
289
|
+
|
|
290
|
+
- `owner repo`
|
|
291
|
+
- `pz_framework/legacy_core`
|
|
292
|
+
- `pz_framework/pz`
|
|
293
|
+
- `owner package`
|
|
294
|
+
- docs
|
|
295
|
+
- readmes
|
|
296
|
+
- `status`
|
|
297
|
+
- `accepted_migration_context`
|
|
298
|
+
- `DoD ref`
|
|
299
|
+
- `F1`
|
|
300
|
+
- `tests`
|
|
301
|
+
- 现有:文档 `rg` 扫描
|
|
302
|
+
- 现有:`compileall docs`
|
|
303
|
+
|
|
304
|
+
## 8. 多国语言资源治理差距
|
|
305
|
+
|
|
306
|
+
### 8.1 locale bundle / consumer binding 正式协议
|
|
307
|
+
|
|
308
|
+
当前状态:
|
|
309
|
+
|
|
310
|
+
- `29-多国语言资源治理与按需加载规范` 已定义 locale governance 方向
|
|
311
|
+
- `22-pz.protocols.v1 草案` 已补 `LocaleBundleSpec`、`LocaleDependencySpec`、`LocaleConsumerBinding`、`LocaleCompositionProfile`、`LocaleOverridePatch`
|
|
312
|
+
- 源码主链尚未把 `resource.contribution` 的 locale governance metadata 编译为正式 locale bundle manifest
|
|
313
|
+
|
|
314
|
+
说明:
|
|
315
|
+
|
|
316
|
+
- 当前运行时仍主要停留在历史 namespace/base 回退模型
|
|
317
|
+
- bundle、dependency、consumer binding、composition profile、page-local override 尚未成为可执行正式主链
|
|
318
|
+
- `locales/config.json` 已在实现层退出 `module_config` 正式主链;当前遗留点主要在 locale governance manifest 尚未完全编译落地,而不是 `module_config` 继续依赖它
|
|
319
|
+
- `page_supported_language` / `page_language_alternates` 也尚未完整进入旧清单所描述的主链,因此页面语言切换、hreflang 与 sitemap 还未统一消费同一份页面语言事实投影
|
|
320
|
+
|
|
321
|
+
执行信息:
|
|
322
|
+
|
|
323
|
+
- `owner repo`
|
|
324
|
+
- `pz_framework/pz`
|
|
325
|
+
- `pz_framework/pz_contrib`
|
|
326
|
+
- `owner package`
|
|
327
|
+
- `pz`
|
|
328
|
+
- 共享 i18n owner 子包
|
|
329
|
+
- `status`
|
|
330
|
+
- `planned`
|
|
331
|
+
- `DoD ref`
|
|
332
|
+
- `I1`
|
|
333
|
+
- `I2`
|
|
334
|
+
- `tests`
|
|
335
|
+
- 待补:resource manifest locale metadata 契约测试
|
|
336
|
+
- 待补:bundle dependency / consumer binding 契约测试
|
|
337
|
+
- 待补:SEO keyword page composition profile 契约测试
|
|
338
|
+
- 待补:`page_supported_language` / `page_language_alternates` 到语言切换 / hreflang / sitemap 的一致性契约测试
|
|
339
|
+
- 待补:page-local override 白名单与体积预算测试
|
|
340
|
+
- 待补:按 bundle 按需加载与体积预算测试
|
|
341
|
+
|
|
342
|
+
## 9. 当前收口顺序回顾
|
|
343
|
+
|
|
344
|
+
本轮已按下面顺序完成源码收口:
|
|
345
|
+
|
|
346
|
+
1. `required_core -> required_pz`
|
|
347
|
+
2. `settings.provider` 主链对象化
|
|
348
|
+
3. `host.builder` 与其它 contribution 对象化
|
|
349
|
+
4. `pz` 顶层 README、脚手架模板与正式入口切换
|
|
350
|
+
5. 文档与 workspace 元数据收口
|
|
351
|
+
|
|
352
|
+
## 10. 本轮非目标
|
|
353
|
+
|
|
354
|
+
为避免任务继续膨胀,本轮明确不做:
|
|
355
|
+
|
|
356
|
+
- 全仓 `legacy_core.* -> pz.*` 机械重命名
|
|
357
|
+
- 全量重写所有 `uv.lock`
|
|
358
|
+
- 重写与本轮协议无关的业务实现
|
|
359
|
+
- 在宿主内补影子包、桥接包或本地装配 hack
|
|
360
|
+
|
|
361
|
+
## 11. 验证要求
|
|
362
|
+
|
|
363
|
+
本轮收口已覆盖下列验证:
|
|
364
|
+
|
|
365
|
+
1. 对应 source repo 契约测试
|
|
366
|
+
2. `pz` CLI smoke
|
|
367
|
+
3. 受影响共享包 import smoke
|
|
368
|
+
4. `pz env sync --project-dir <host-project-dir>`
|
|
369
|
+
5. 宿主重启后 `/health`
|
|
370
|
+
|
|
371
|
+
## 12. 当前执行决议
|
|
372
|
+
|
|
373
|
+
当前正式决议如下:
|
|
374
|
+
|
|
375
|
+
- 协议层不再继续加新概念
|
|
376
|
+
- 运行时主链 cutover 已完成
|
|
377
|
+
- 后续只继续处理迁移文档与 source-repo 元数据的治理尾项
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# 26-cutover 完工检查清单
|
|
2
|
+
|
|
3
|
+
> 历史说明:本文保留 `legacy_core -> pz` 字样,仅用于 cutover 完工判定与历史任务闭环;当前正式基础包统一为 `pz`。
|
|
4
|
+
|
|
5
|
+
本文档用于确认 `legacy_core -> pz`、旧扩展协议 -> 新扩展协议、旧配置主链 -> 新配置主链这批任务是否已经按单一路径完成收口。
|
|
6
|
+
|
|
7
|
+
它不是迁移愿景文档,也不是差距盘点文档。
|
|
8
|
+
|
|
9
|
+
## 1. 使用规则
|
|
10
|
+
|
|
11
|
+
- 只按正式协议判断是否完成
|
|
12
|
+
- 不允许靠 shim、alias、双轨兼容层把“未完成”伪装成“已完成”
|
|
13
|
+
- 若后续再发现协议缺位,应先回到协议文档补正式合同,再继续施工
|
|
14
|
+
|
|
15
|
+
## 2. 总体完工定义
|
|
16
|
+
|
|
17
|
+
本轮任务在同时满足下面全部条件后,视为已完成:
|
|
18
|
+
|
|
19
|
+
- `pz` 成为唯一正式基础包、唯一正式 CLI、唯一正式 Python API 主入口
|
|
20
|
+
- 新 app 脚手架不再生成 `legacy-core`、`required_core`、旧 dict 扩展声明
|
|
21
|
+
- app 编译器、扩展编译器、settings 编译链只认新协议
|
|
22
|
+
- `settings.provider`、`host.builder`、其它 contribution 全部走结构化协议对象
|
|
23
|
+
- 运行主链不再依赖 import-time 注册和全局 provider 主路径
|
|
24
|
+
- `workspace_packages.toml`、README、主要规范文档不再把 `legacy-core` 当正式长期口径
|
|
25
|
+
- 宿主重装、重启、健康检查、关键契约测试全部通过
|
|
26
|
+
|
|
27
|
+
## 3. 阶段 A:止血项
|
|
28
|
+
|
|
29
|
+
### A1. app 元数据止血
|
|
30
|
+
|
|
31
|
+
- [x] `required_core` 不再作为新增代码和模板字段出现
|
|
32
|
+
|
|
33
|
+
### A2. 基础依赖止血
|
|
34
|
+
|
|
35
|
+
- [x] 新生成代码不再把 `legacy-core` 写入正式依赖
|
|
36
|
+
|
|
37
|
+
## 4. 阶段 B:编译器与元数据切换
|
|
38
|
+
|
|
39
|
+
### B1. app 编译器切到 `required_pz`
|
|
40
|
+
|
|
41
|
+
- [x] `AppDecl` 与编译器校验逻辑切到 `required_pz`
|
|
42
|
+
|
|
43
|
+
### B2. workspace 与分发真相源收口
|
|
44
|
+
|
|
45
|
+
- [x] 工作区与分发说明不再把 `legacy-core` 作为长期正式包
|
|
46
|
+
|
|
47
|
+
补充说明:
|
|
48
|
+
|
|
49
|
+
- `workspace_packages.toml` 中的 `legacy-core` 条目仍保留,但已明确标注为 migration-only source-repo entry,不再代表终端用户正式入口。
|
|
50
|
+
|
|
51
|
+
## 5. 阶段 C:settings 主链切换
|
|
52
|
+
|
|
53
|
+
### C1. `settings.provider` 成为正式主链
|
|
54
|
+
|
|
55
|
+
- [x] settings 注入统一改为结构化 `SettingsProviderSpec`
|
|
56
|
+
|
|
57
|
+
### C2. 清退命令式 provider 注册入口
|
|
58
|
+
|
|
59
|
+
- [x] `register_app_settings_provider(...)` 退出正式公开面
|
|
60
|
+
|
|
61
|
+
## 6. 阶段 D:扩展点对象化切换
|
|
62
|
+
|
|
63
|
+
### D1. `host.builder` 切换到结构化对象
|
|
64
|
+
|
|
65
|
+
- [x] `host.builder` 不再使用旧 dict + payload 声明
|
|
66
|
+
|
|
67
|
+
### D2. 其它 contribution 切换到结构化对象
|
|
68
|
+
|
|
69
|
+
- [x] route / middleware / lifecycle / resource contribution 全部完成对象化
|
|
70
|
+
|
|
71
|
+
## 7. 阶段 E:CLI 与运行入口切换
|
|
72
|
+
|
|
73
|
+
### E1. `pz` 成为唯一正式 CLI
|
|
74
|
+
|
|
75
|
+
- [x] 正式命令全部收敛到 `pz`
|
|
76
|
+
|
|
77
|
+
### E2. Python API 主链切换
|
|
78
|
+
|
|
79
|
+
- [x] 正式 Python API 只认 `pz.*`
|
|
80
|
+
|
|
81
|
+
## 8. 阶段 F:全局清扫
|
|
82
|
+
|
|
83
|
+
### F1. 文档清扫
|
|
84
|
+
|
|
85
|
+
- [x] 正式文档不再混用新旧口径
|
|
86
|
+
|
|
87
|
+
补充说明:
|
|
88
|
+
|
|
89
|
+
- 旧口径仅允许留在明确历史说明或迁移说明中;不再作为当前正式规则出现。
|
|
90
|
+
|
|
91
|
+
### F2. 旧桥接清理
|
|
92
|
+
|
|
93
|
+
- [x] 长期不需要的 shim、alias、fallback 全部删除
|
|
94
|
+
|
|
95
|
+
## 9. 最终宿主验收
|
|
96
|
+
|
|
97
|
+
- [x] source repo 契约测试通过
|
|
98
|
+
- [x] `pz` CLI smoke 通过
|
|
99
|
+
- [x] 受影响共享包 import smoke 通过
|
|
100
|
+
- [x] `pz env sync --project-dir <host-project-dir>` 通过
|
|
101
|
+
- [x] 宿主重启完成
|
|
102
|
+
- [x] `http://127.0.0.1:8000/health` 返回 `200`
|
|
103
|
+
- [x] 关键 host integration contract 通过
|
|
104
|
+
|
|
105
|
+
## 10. 最终交付前复核
|
|
106
|
+
|
|
107
|
+
下面问题现在的答案都应为“否”:
|
|
108
|
+
|
|
109
|
+
- [x] 现在是否仍存在第二套正式配置读取入口
|
|
110
|
+
- [x] 现在是否仍存在第二套正式扩展声明格式
|
|
111
|
+
- [x] 现在是否仍存在第二套正式 CLI 名称
|
|
112
|
+
- [x] 现在是否仍存在第二套正式基础包名字
|
|
113
|
+
- [x] 现在是否仍存在新脚手架继续输出旧口径
|
|
114
|
+
- [x] 现在是否仍依赖 import-time 副作用完成主链装配
|
|
115
|
+
- [x] 现在是否仍有关键验证只靠宿主偶然环境成立
|
|
116
|
+
|
|
117
|
+
只有全部答案都是“否”,这轮任务才算真正收口。
|