Changelog¶
All notable changes to Frappe Manager are documented here.
Versions prior to v0.19.0 were released without structured changelogs. See the GitHub Releases page for historical notes.
v0.19.0.dev0 - 2026-04-14¶
Bug Fixes¶
- Ensure robust subprocess output decoding (
b23bfa1) - Add timeouts to mirror selection curl calls (
459a563) - Fix inaccurate RQ queue status filtering (
bef9dfd) - Start all services on migration failure instead of workers only (
1b2f90b) - Treat empty FRAPPE_MANAGER_HOME as unset (
e8eebee) - Remove debug set -x and fix Docker layer issues (
e192c69) - Raise on export_to_toml write failure instead of returning False (
f4b08c8) - Clean up orphaned cert on HTTPS config or reload failure (
109daec) - Surface renewal failures as errors instead of warnings (
fc4d9af) - Guard ctx.obj assignments behind help_called check (
ec85d70) - Switch to root user for final COPY operations (
4000b53) - Set USER and GROUP env vars for gosu (
937baaa) - Add timestamp to venv backup directory (
f07176b) - Explicitly pass env vars in entrypoint (
151b8d6) - Correctly handle migrations for pre-release versions (
f27e326) - Use
frappe_site_namefor asset resolution instead ofhost(2b0212a) - Use stdout to get selected python version (
8a48cfd) - Pull global service images if missing (
40c2ad7) - Address Copilot review feedback on constant naming and standalone script support (
a543e88) - Strip ANSI codes in help text assertion for CI compatibility (
f725f1b) - Remove trailing slash from admin tool proxy_pass (
4ee1977) - Resolve various minor bugs and regressions (
993ca12) - shell: Improve interactive terminal support for bench commands (
d938de9) - ssl: Remove logger variable references and cleanup (
86bc781) - cli: Handle SIGPIPE and stop output before interactive shell (
bd9c011) - logger: Add thread safety to LiveAwareRichHandler with output lock (
c884722) - logger: Ensure parent directories are created for log files (
a142211) - nginx: Remove trailing slashes from admin tools proxy_pass directives (
c171982) - migrate: Parse and quote Python version in uv commands (
745e119) - migrate: Prompt for rollback in single-bench migrations (
f8e4fb9) - migrate: Remove archive option for single-bench migrations (
f840301) - examples: Only show benchname for commands that require it (
be553f0) - migrate: Replace Literal with Enum for --on-failure parameter (
89715c0) - examples: Update examples.json to match actual CLI flags (
0686479) - Correct SSL remove required_flag to match actual CLI flag (
fc2d06e) - Add required_flag to all prompts for proper non-interactive mode (
234ccf2) - Implement prompt_fuzzy() to fix --non-interactive flag and spinner context managers (
b8e4c73) - Revert Phase 2 table reuse optimization to prevent IndexError (
6f68ba2) - Handle missing database info keys in bench info display (
184972e) - Replace incorrect error() calls with display_error() (
f7851de) - Forward set_interactive_mode to delegate in LoggingOutputHandler (
b232905) - Suppress spinners and status messages in non-interactive mode (
cc136b4) - Add missing exception parameter in update error handler (
33c80e0) - Correct spinner and error handling in runtime execution (
e6470b1) - Validate HTTP 200 status for Ubuntu mirrors before selection (
b7ca15d) - Improve bench creation resilience and app installation order (
befb447) - Clean up InquirerPy prompt display (
5b90fb6) - Suppress sudo hint message in interactive shells (
db57f83) - Update oh-my-zsh location and bump versions (
0d0f16c) - Use fnm-managed node path for node-socketio (
68f783c) - Handle UV Python platform-specific versions and update default symlink (
4290e01) - Complete type safety improvements - achieve 0 errors (
2e3c1f3) - Add type safety improvements and docker type stub (
b0a1791) - Correct certificate manager method calls (
aaed8dc) - Use newline separator for alias domains in output (
2e2a68f)
Build¶
- Update dependencies and regenerate lock file (
0ff9637) - Relocate .uv and .fnm directories to frappe-bench (
3e1cda0) - Pin typer-examples dependency (
799a56c) - Move version source of truth to about.py (
8e92b71) - Install wkhtmltopdf in base Docker stage (
62fa695) - Simplify arch detection for wkhtmltopdf (
7f8a5cf) - Adjust Docker build environment paths (
336fed1) - Restrict Python version to 3.13 (
d9edf6c) - Support Python 3.13 (
baba369) - Bump required Python version to 3.14.2 (
a5bf8be) - Increase minimum Python version to 3.14 (
4ca16b6) - Upgrade Python to 3.14 and update dependencies (
37874e3) - Use script for Dockerfile mirror selection (
42f6fc5)
CI¶
- Integrate git-cliff for automated changelog generation (
3dc3430) - Use CNAME file and alias-type redirect for pages deployment (
435712e) - Streamline custom domain setup for Pages (
a7da3ce) - Disable main branch documentation deployment (
54fab97) - Enhance documentation deployment workflow (
5c6cbba) - Compile SCSS for documentation styles (
7c2c6ec) - Conditionally push CLI docs changes (
03a3990) - Switch to Mike for versioned docs deployment (
1c1655c) - Add PyPI publish workflow on v* tag push (
a229a8c) - Separate build cache by architecture (
7b2be82) - Update default wiki branch to master (
1d01765) - Always push wiki on manual trigger (
5b62c46) - Remove ref/0 from docs workflow trigger (
7371ced) - Disable PR comment for CLI doc updates (
21fff1c) - Add permissions to CLI docs workflow (
fd9c1c6) - Bump Python to 3.13 in docs workflow (
d34cae5) - Add workflow to auto-generate CLI docs (
cacfa56) - Update pytest workflow for Python 3.13 (
9f62715) - Update Python version for CI tests (
b68fde1) - Add unit test workflow and refactor E2E (
56a89f7) - Unify image baking workflow for all services (
4cfe2b2)
Chores¶
- Remove Redis Queue Dashboard (
46d8089) - Prepare for v0.19.0 development (
3a882ee) - Remove debug print statement (
adb57c5) - Simplify docs CI and update README (
8758fa9) - Update build steps in Linux binary workflow (
3509055) - Add test utilities and Python dependencies (
08ddb11) - Update .gitignore for virtual environments (
ed85ff1) - Update .gitignore to exclude .tmp directory (
7c1a4f8) - Remove poetry files and add uv.lock (
a701c09) - Update .envrc for uv-based environment setup (
202a22e) - Migrate to PEP 621 and update dependencies (
094ecf7) - Remove devbox configuration files (
f871d46) - Add dependabot configuration (
f533414)
Documentation¶
- Migrate changelog to docs/changelog.md as single source of truth (
c36825a) - Show dev version in CHANGELOG.md instead of Unreleased (
d29f71d) - Document Python update --no-recreate-python-env (
b20dd57) - Add examples for
updatecommand (46665ec) - Expand and rewrite reference documentation (
611b6bf) - Rewrite and expand environments guide (
9a4e4bc) - Overhaul and expand SSL guide (
aa43ef9) - Redesign command reference and standardize examples (
06d1b3e) - Add guides for backup, fmx, and versions (
d97ccf2) - Reorganize FAQ page with sections (
e4fb4ca) - Add documentation for fmx utility (
b428bb1) - Overhaul and standardize documentation (
18e68a1) - Overhaul documentation site and content (
4e333c9) - Move documentation to GitHub Pages (
bfe49a1) - Update scripts README for CLI doc generator (
f33f14c) - Improve CLI option help texts (
7c838cf) - Simplify README and move examples to Wiki (
6ac53af) - Update
uvxrun instructions (0da9812) - Enhance README installation and usage guide (
a7d610f) - Remove hardcoded examples from command docstrings (
81c4eae) - tests: Add comprehensive testing guide with global handler documentation (
59058a5) - Improve CLI command descriptions and examples (
8997254) - ssl: Update comment to remove certbot reference in site.py (
17da3c2)
Features¶
- Add Python and Node version to bench info (
923d2b5) - Add option to control Python environment recreation (
caf9624) - Add platform parameter to Docker run command (
763946c) - Migrate to uv and improve installer UX (
597a1ea) - Migrate to uv and improve installer UX (
d8194fc) - Add --version flag to CLI (
57e1385) - Add structured examples to CLI help output (
4cbcd16) - Add detailed CLI examples to restart command (
f5812ad) - Add worker kill timeout and poll options (
cc86ae9) - Improve migration output and optimize worker restarts (
2de9d6e) - fmx: Add RQ control command and improve status display (
e08c45d) - fmx: Add RQ worker status to status command (
207531d) - Add zero-downtime migration with custom command support (
08f5630) - Automate command reference updates (
ba7f784) - Add correct reload for global nginx proxy (
194cdeb) - Add --bench-console option to shell (
0f7276d) - Add exit method to logging output handler (
2112ddd) - cli: Improve example command substitution with dynamic parameter handling (
259938e) - logger: Integrate contextual logging across commands and managers (
00fe584) - migrate: Add granular flags for confirmation and failure handling (
fde91fc) - Add required_flag to migration and SSL prompts (
c9c7198) - Update commands with non-interactive support (
bb49b3f) - Add global --non-interactive/-n flag (
820a9d2) - Add required_flag parameter to OutputHandler implementations (
370695b) - output: Implement global output handler registry and migrate core commands (
ea14388) - Add script to find best Ubuntu mirror (
25fb077) - Add best mirror selection for package installations (
0096cfc) - Improve Python/Node version management and output (
1be4105) - Introduce interactive bench selection and improve CLI help (
feab3d7) - Add comprehensive migration command and system (
2e72152) - Enhance database backup and SSL management (
8b40ab7) - Implement migration for v0.19.0 (
77082ef) - Add domain uniqueness validation for benches (
c532e5d) - Add explicit primary/alias domain config (
7853fb5) - Add Docker restart policy management (
b24fe0f) - Add TTY detection and non-TTY fallbacks to DisplayManager (
681f4f3) - Replace Rich Prompt with InquirerPy for better UX (
0e9590a) - Implement
self composeand bench validation (0eabd48) - Generate unique database names for benches (
3da24e1) - Add nginx restart support to fm restart command (
a45bcef) - Add Python/Node version management and flexible restart options (
3264687) - Enhance shell and logs commands with flexible service targeting and docker compose run support (
3350608) - Add parallel app cloning with multi-auth fallback and monorepo support (
87cf562) - Add configurable upload size limit for bench sites (
3909735) - shell: Add command execution mode with -c flag and passthrough syntax (
f0332ae) - ssl: Add acme-sh passthrough command for advanced certificate operations (
0e5cfb1) - Add database deletion control flags and improve SSL certificate cleanup (
30d6324) - ssl: Fix certificate structure bugs and remove duplicate challenge field (
c28ce34) - ssl: Add standalone SSL management with CNAME delegation support (
a39fbd2) - ssl: Enhance SSL commands with output handler, validation, and improved UX (
fd9a68c) - logger: Add contextual logging with verbose control and comprehensive testing (
7ece5ff) - Add ComposeOrchestrator and DockerClient integrations (
1915324) - Update alias domain support in site creation (
54413fb) - Add alias_domains support in BenchConfig (
e8d6fab) - Support alias domains for SSL and site management (
aa172fa) - Add alias domain management to bench (
8cd3cd3) - Add alias domain support for SSL symlinks (
5b3068f) - Add alias domains support for SSL certificates (
e28fef4) - Add support for custom Redis URL in CLI (
af558ca) - Add CLI for RQ Worker Controller (
b500aeb) - Extend DockerClient to support new options (
bdcbc84)
Performance¶
- Add fast-exec entrypoint for one-off commands (
7b5d95b) - Use numeric gosu for instant container startup (
e4753ee) - Add lightweight entrypoint for faster commands (
3210174) - Remove slow recursive chown on /opt (
4a84a00) - Optimize container restarts for updates and domain changes (
41c93bd) - Optimize output handler Phase 2 (table reuse in live_lines) (
79376a1) - Optimize output handler Phase 1 (console singleton + deprecation caching + emoji constants) (
74a784f)
Refactoring¶
- Move VS Code configs to JSON templates (
6d55f06) - Refactor output and supervisor handling (
7755646) - Refactor supervisor configuration generation (
35167f4) - Streamline supervisor config generation (
f9ea11a) - Update Sass mix() function calls (
3b47694) - Migrate CLI examples to typer-examples (
f03dfd2) - Refine process kill message and display (
c7ba018) - Clean up command output and internal API (
ab3b9af) - Refactor service output and remove force kill (
429fd8f) - Refactor command execution and utilities (
e540a94) - Extract RQ worker management to helper module (
e595218) - Refactor RQ worker drain options (
1d2b375) - Refactor RQ worker suspension and idle handling (
f05b69b) - Refactor RQ worker suspension logic (
26dc3cd) - Refactor RQ worker suspension and cleanup CLI (
deebcf2) - Refactor bench connection configuration logic (
33bdbb2) - fmx: Improve status command RQ reporting and process state tracking (
451425b) - fmx: Simplify bench-wrapper and streamline restart/stop commands (
ea6a7bb) - fmx: Improve UI output and add verbose/debug flags (
3100031) - fmx: Comprehensive codebase audit fixes for stability (
46c131b) - Simplify corepack setup using FNM variable (
32d528a) - Use corepack to enable yarn (
a14ada4) - Remove exec-command.sh wrapper script (
0e6c940) - Generalize image tag update in migration (
fbbc2b8) - Use dynamic version in migration script (
341a8d3) - Derive image tags from package version (
4a7fb98) - Use exec-command.sh for container commands (
508d2c2) - Refactor Docker
runcommand execution (1dd75f7) - Remove redundant bench name check (
d745801) - Remove redundant bench name check (
046d160) - Refactor supervisor config generation (
c66d085) - Remove deprecated --sync-config flag (
b1dedea) - Clarify database backup message (
0a729f6) - Simplify backup skip warning message (
7479481) - Refactor and simplify shell command (
aaa8875) - docker: Replace subprocess with os.execvp for docker compose execution (
10771c6) - logger: Simplify LiveAwareRichHandler by relying on Rich Console coordination (
e8155c7) - logger: Simplify verbose flag and add configurable file logging (
46bb2d7) - docker: Add auto-streaming support to docker compose wrapper (
1d99023) - Phase 3 code quality improvements (type hints + f-string optimization) (
4b3acef) - Remove DisplayManager module completely (BREAKING) (
47bde2c) - Inline DisplayManager into RichOutputHandler (BREAKING) (
ad0e71d) - Remove final richprint usage and unused imports (
6524894) - Enhance app repository validation with detailed auth reporting (
650eaa7) - Add migration check whitelist and multi-level command path detection (
8070c91) - Implement interactive migration flow with infrastructure and bench separation (
817a3da) - Delete old sub_commands/ssl_command.py (
f06001f) - Move SSL commands to commands/ssl/ module (
b4f9d3c) - Delete old sub_commands/self_commands.py (
64e01bb) - Move self commands to commands/self/ module (
1da74b4) - Delete old services_manager/commands.py (
4e3b850) - Move services commands to commands/services/ module (
e14ff55) - Create commands module structure (
13fd4d9) - Remove unused ComposeOrchestrator layer (
1fc3eca) - Add port conflict detection to DockerException and remove unused port checking utilities (
94d0ae6) - Clean up output formatting and remove unused variables (
74752cb) - Enhance SSL renewal with force/dry-run support and improve output formatting (
3e402f9) - Use AppConfig objects consistently throughout app handling (
24d2bc7) - Parallelize app validation and improve progress visibility (
163a9aa) - Improve migration UX with clearer prompts and runtime rebuild handling (
1050f61) - Refactor commands and add progress spinners (
3e9cd91) - Refactor SSL challenge handling and CLI examples (
90f3835) - Improve BenchNotFoundError handling (
8e98914) - Refactor database deletion and command execution (
4ccab3e) - Centralize Docker command output streaming (
8044d36) - Refactor migration system and output handling (
c6bc371) - Refactor migration command output and logic (
d16d6b5) - Refactor user data input format handling (
d673c59) - Refactor migration system with rolling policy (
283930b) - Improve Nginx multi-domain and build process (
5521f3f) - Refactor error handling and bench service init (
f2497b7) - Refactor output management with context managers (
e0d504a) - Remove trailing periods from output messages (
9573b82) - Use output.prompt_ask instead of typer.confirm (
5bc3408) - Improve Python/Node installation messages (
aacf288) - Remove oh-my-zsh, switch to system-wide bash config (
5680c28) - Update SSL challenge type property name (
75da146) - Improve code readability and documentation (
e8b8492) - Reduce output verbosity during bench operations (
c0c080a) - Implement 5-phase bench initialization with docker compose run (
826d595) - Migrate Docker from pyenv/nvm to fnm/uv for Python and Node management (
e13f8a9) - Remove frappe_branch param and integrate frappe into apps_list (
94fbda8) - Remove unused certbot dependencies (
bcbaa1b) - Add generic subprocess streaming and enhance SSL certificate operations with live output (
06e3419) - ssl: Remove email requirement from Let's Encrypt certificate operations (
1f26e74) - Remove SSL and Let's Encrypt options from create/update commands (
e7d1716) - Remove redundant 'fm ssl delete' command (
0aec3fe) - ssl: Remove certbot service in favor of acme.sh (
14e862b) - Bug fixes to acme.sh and ssl manager (
c9cc29c) - Enhance logging and display coordination (
d175dcb) - Remove Typer framework dependencies from business logic (
c785b94) - Replace richprint.exit() with proper exception handling (
08901f5) - Decouple CLI from business logic with OutputHandler abstraction (
78dd3a7) - Rename site_exceptions to exceptions (
38428b3) - Restructure admin and worker module organization (
72d1c5a) - Replace BenchesManager with BenchService (
cca8269) - Extract bench operations into modular classes (
4c1660b) - Modularize and restructure Bench class (
9080270) - Simplify Docker compose interaction (
b5b9320) - Consolidate DockerWrapper and ComposeManager modules (
0106c8c) - Decouple nginx-proxy functionality from monolithic manager (
e79d33d) - Simplify alias domain handling in SSL management (
90a8621) - Update service management logic in site manager (
8aed9f5) - Update alias domain handling for SSL and config (
307e4cc) - Move rq import inside function (
0bf6fe2)
Styling¶
- Add custom SCSS stylesheet and docs build tasks (
6bd3f25) - Implement new docs theme with rtCamp branding (
74651dd) - Adjust migration start message display (
b494f66) - Apply ruff formatting across codebase (
efb4f1c) - Update type hints to use
Type | Nonesyntax (aca0d23)
Testing¶
- Standardize config formatting and improve migration test coverage (
7978800) - Update migration tests to use 'yes' parameter instead of 'force' (
a8ffc37) - Add global handler fixture and fix CLI tests (
54d2c44) - ssl: Add comprehensive tests for SSL certificate lifecycle operations (
c96cf81) - ssl: Complete certbot removal and fix all unit tests (
4eb18cb)