splent-cli 1.22.0__tar.gz → 1.22.2__tar.gz
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.
- {splent_cli-1.22.0/src/splent_cli.egg-info → splent_cli-1.22.2}/PKG-INFO +1 -1
- {splent_cli-1.22.0 → splent_cli-1.22.2}/pyproject.toml +1 -1
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_upgrade.py +36 -17
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_deploy.py +36 -2
- {splent_cli-1.22.0 → splent_cli-1.22.2/src/splent_cli.egg-info}/PKG-INFO +1 -1
- {splent_cli-1.22.0 → splent_cli-1.22.2}/LICENSE +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/README.md +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/setup.cfg +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/__main__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/cli.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_clear.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_orphans.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_outdated.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_prune.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_size.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_status.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_usage.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_versions.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_contracts.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_deps.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_docker.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_env.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_features.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_github.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_infra.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_product.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_pypi.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_pyproject.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_releases.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/clear/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/clear/clear_build.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/clear/clear_log.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/clear/clear_uploads.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/command/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/command/command_create.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/coverage.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_console.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_dump.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_migrate.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_reset.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_restore.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_rollback.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_seed.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_status.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/doctor.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/env/env_list.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/env/env_set.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/env/env_show.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/export/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/export/export_puml.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_add.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_attach.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_clean.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_clone.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_compat.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_compile.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_contract.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_create.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_delete.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_detach.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_discard.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_drift.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_env.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_fork.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_git.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_hook_add.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_hook_remove.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_hooks.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_impact.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_info.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_inject_config.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_install.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_list.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_order.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_outdated.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_pin.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_pip_install.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_pull.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_refine.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_release.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_remove.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_rename.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_search.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_status.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_sync_template.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_test.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_translate.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_unlock.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_upgrade.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_versions.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_xray.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/lint.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/locust.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/login.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/logout.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/marketplace_auth_utils.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/marketplace_index.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/whoami.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_auto_require.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_build.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_clean.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_commands.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_config.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_configure.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_console.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_containers.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_create.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_derive.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_deselect.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_down.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_drift.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_env.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_list.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_logs.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_missing.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_port.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_release.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_resolve.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_restart.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_routes.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_run.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_select.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_shell.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_signals.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_sync_template.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_test.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_up.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_validate.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/release/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/release/release_core.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/release/release_resume.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/selenium.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_add_constraints.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_add_feature.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_compare.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_configurations.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_create.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_deps.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_features.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_fetch.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_info.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_list.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_migrate_catalog.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_outdated.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_pin.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_publish.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_remove_feature.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_utils.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/tokens_setup.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/uvl/uvl_utils.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/version.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/compose.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/context.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/credentials.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/index_refresh.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/marketplace.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/marketplace_api.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/marketplace_url.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/preflight.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/registry.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/release.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/release_gate.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/spl_store.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/__init__.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/archetype.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/cache_utils.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/command_loader.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/contract_freshness.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/db_utils.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/decorators.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/dynamic_imports.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/feature_installer.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/feature_utils.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/git_url.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/integrity.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/io_utils.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/lifecycle.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/manifest.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/path_utils.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/proc.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/template_drift.py +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/SOURCES.txt +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/dependency_links.txt +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/entry_points.txt +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/requires.txt +0 -0
- {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: splent_cli
|
|
3
|
-
Version: 1.22.
|
|
3
|
+
Version: 1.22.2
|
|
4
4
|
Summary: SPLENT-CLI is a CLI to be able to work on your development more easily.
|
|
5
5
|
Author-email: DiversoLab <diversolab@us.es>
|
|
6
6
|
Project-URL: Homepage, https://github.com/diverso-lab/splent_cli
|
|
@@ -168,8 +168,9 @@ def db_upgrade(feature):
|
|
|
168
168
|
logging.getLogger("alembic").setLevel(logging.WARNING)
|
|
169
169
|
logging.getLogger("alembic.runtime.migration").setLevel(logging.WARNING)
|
|
170
170
|
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
def _upgrade_one(feat: str, mdir: str) -> str | None:
|
|
172
|
+
"""Run one feature's upgrade. Returns None on success, else the
|
|
173
|
+
message that explains the failure (printed only when final)."""
|
|
173
174
|
try:
|
|
174
175
|
logging.getLogger("alembic.runtime.migration").setLevel(logging.WARNING)
|
|
175
176
|
with _collect_alembic_errors() as logged:
|
|
@@ -179,16 +180,9 @@ def db_upgrade(feature):
|
|
|
179
180
|
# flask_migrate swallows alembic's CommandError and calls
|
|
180
181
|
# sys.exit(1), so catching the exit is the only way to say
|
|
181
182
|
# anything at all instead of failing in silence.
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
_diagnose_upgrade_failure(
|
|
185
|
-
app, feat, mdir, "; ".join(logged) or None
|
|
186
|
-
),
|
|
187
|
-
fg="red",
|
|
188
|
-
)
|
|
183
|
+
return _diagnose_upgrade_failure(
|
|
184
|
+
app, feat, mdir, "; ".join(logged) or None
|
|
189
185
|
)
|
|
190
|
-
failures.append(feat)
|
|
191
|
-
continue
|
|
192
186
|
revision = MigrationManager.get_current_feature_revision(
|
|
193
187
|
feat, app.extensions["migrate"].db.engine
|
|
194
188
|
)
|
|
@@ -208,17 +202,42 @@ def db_upgrade(feature):
|
|
|
208
202
|
name=name,
|
|
209
203
|
version=version,
|
|
210
204
|
)
|
|
205
|
+
return None
|
|
211
206
|
except ImportError as e:
|
|
212
207
|
if "models" in str(e):
|
|
213
208
|
# Feature has migrations/ dir but no models module — skip silently
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
failures.append(feat)
|
|
209
|
+
return None
|
|
210
|
+
return f" ❌ {feat}: {e}"
|
|
217
211
|
except Exception as e:
|
|
218
|
-
|
|
219
|
-
|
|
212
|
+
return _diagnose_upgrade_failure(app, feat, mdir, e)
|
|
213
|
+
|
|
214
|
+
# Features migrate one Alembic branch each, and a branch may create a
|
|
215
|
+
# foreign key onto a table another feature's branch creates (slider and
|
|
216
|
+
# partners reference media_item). The declaration order in pyproject is
|
|
217
|
+
# not a dependency order, so on a fresh database the first pass can fail
|
|
218
|
+
# for the dependents and succeed for their dependencies. Whatever failed
|
|
219
|
+
# is retried while a pass still makes progress; only what fails when
|
|
220
|
+
# nothing else can move is reported.
|
|
221
|
+
pending = dict(dirs)
|
|
222
|
+
failures: dict[str, str] = {}
|
|
223
|
+
while pending:
|
|
224
|
+
failures = {}
|
|
225
|
+
for feat, mdir in pending.items():
|
|
226
|
+
message = _upgrade_one(feat, mdir)
|
|
227
|
+
if message is not None:
|
|
228
|
+
failures[feat] = message
|
|
229
|
+
if not failures or len(failures) == len(pending):
|
|
230
|
+
break
|
|
231
|
+
click.echo(
|
|
232
|
+
click.style(
|
|
233
|
+
f" retrying {', '.join(failures)} now that the rest has migrated",
|
|
234
|
+
dim=True,
|
|
220
235
|
)
|
|
221
|
-
|
|
236
|
+
)
|
|
237
|
+
pending = {feat: dirs[feat] for feat in failures}
|
|
238
|
+
|
|
239
|
+
for message in failures.values():
|
|
240
|
+
click.echo(click.style(message, fg="red"))
|
|
222
241
|
|
|
223
242
|
if failures:
|
|
224
243
|
raise click.ClickException(
|
|
@@ -14,6 +14,30 @@ from splent_cli.commands.product.product_build import (
|
|
|
14
14
|
)
|
|
15
15
|
from splent_cli.utils.proc import require_docker
|
|
16
16
|
|
|
17
|
+
|
|
18
|
+
# Suffixes that mark a value nobody has to choose: a random string is the
|
|
19
|
+
# right answer. TURNSTILE_SITE_KEY and friends end in _KEY too, but they are
|
|
20
|
+
# issued by a third party, so only the generic secret words qualify.
|
|
21
|
+
_GENERATED_SUFFIXES = ("_PASSWORD", "_SECRET", "_ROOT_PASSWORD")
|
|
22
|
+
_DATABASE_DEFAULTS = {
|
|
23
|
+
"MARIADB_DATABASE": "{product}_db",
|
|
24
|
+
"MARIADB_USER": "{product}_db_user",
|
|
25
|
+
"MARIADB_TEST_DATABASE": "{product}_db_test",
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def suggest_value(key: str, product: str) -> str | None:
|
|
30
|
+
"""A default for a ``<SET>`` variable, or None when only the operator
|
|
31
|
+
knows the answer."""
|
|
32
|
+
import secrets
|
|
33
|
+
|
|
34
|
+
if key in _DATABASE_DEFAULTS:
|
|
35
|
+
return _DATABASE_DEFAULTS[key].format(product=product)
|
|
36
|
+
if key == "SECRET_KEY" or key.endswith(_GENERATED_SUFFIXES):
|
|
37
|
+
return secrets.token_urlsafe(24)
|
|
38
|
+
return None
|
|
39
|
+
|
|
40
|
+
|
|
17
41
|
# Env vars whose value is a directory the running app writes to. Their contents
|
|
18
42
|
# only survive a redeploy if a volume in the compose file mounts that exact
|
|
19
43
|
# path, so product:deploy warns when one is set without a matching mount.
|
|
@@ -257,8 +281,18 @@ def product_deploy(down, ci):
|
|
|
257
281
|
else:
|
|
258
282
|
missing_vars.append(key)
|
|
259
283
|
else:
|
|
284
|
+
# Offer an answer wherever one can be made up, so the ordinary
|
|
285
|
+
# deploy is Enter, Enter, Enter: random strings for anything
|
|
286
|
+
# that smells like a secret, the product's conventional names
|
|
287
|
+
# for the database. What only the operator knows (a mail
|
|
288
|
+
# host, a proxy address, an API key issued elsewhere) is
|
|
289
|
+
# asked without a default.
|
|
290
|
+
suggested = suggest_value(key, product)
|
|
260
291
|
new_value = click.prompt(
|
|
261
|
-
f" Value required for {key}",
|
|
292
|
+
f" Value required for {key}",
|
|
293
|
+
default=suggested,
|
|
294
|
+
show_default=suggested is not None,
|
|
295
|
+
hide_input=False,
|
|
262
296
|
)
|
|
263
297
|
env_vars[key] = new_value
|
|
264
298
|
|
|
@@ -474,7 +508,7 @@ def product_deploy(down, ci):
|
|
|
474
508
|
" deployed but app may not be healthy. Check logs with:",
|
|
475
509
|
fg="yellow",
|
|
476
510
|
)
|
|
477
|
-
click.echo(f" docker logs {product}
|
|
511
|
+
click.echo(f" docker logs {product}_web_deploy")
|
|
478
512
|
else:
|
|
479
513
|
click.secho(" done.", fg="green")
|
|
480
514
|
except subprocess.CalledProcessError as e:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: splent_cli
|
|
3
|
-
Version: 1.22.
|
|
3
|
+
Version: 1.22.2
|
|
4
4
|
Summary: SPLENT-CLI is a CLI to be able to work on your development more easily.
|
|
5
5
|
Author-email: DiversoLab <diversolab@us.es>
|
|
6
6
|
Project-URL: Homepage, https://github.com/diverso-lab/splent_cli
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_hook_remove.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_inject_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_pip_install.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_sync_template.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_translate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/marketplace_index.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_auto_require.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_configure.py
RENAMED
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_containers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_sync_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|