Releases
v1.0.0
1.0.0 (2021-08-16)
Bug Fixes
"Error: no such option: --backup" (#946 ) (76943e0 )
Add bench.cli namespace (2f0b508 )
Added warning for unshallow without --reset (01abc56 )
Allow bench src as root (9d1f7a7 )
Bump Nodejs v8 => v12 (de5e278 )
change TEST_PYPI to PYPI (4211f5d )
Check if Py3.5+ before installing distro (f032fc0 )
compatible configparser get (312a92d )
create bench folder in user directory (5c5d2b5 )
dns caching handle name not match (9bdff52 )
Don't break update if no sites exist on patching sites stage (778fe6c )
fail2ban help message (fec8921 )
force renew on monthly bases (7dcd5f9 )
Handle command execution failures (dcdb15d )
Handle no args passed in CLI (31e4aee )
Install wheel during ansible setup (61567be )
Invoke pip via python (b0ccb6e )
Log in ~/bench.log if not running inside bench directory (28302f6 )
nginx proxy buffer (7f9bed4 )
only fetch current branch (895c403 )
only fetch what is necessary, simplify & improve grepability (82173c1 )
only get the specific branch for version check (0ff8ddd )
Remove PY2 compatibility code (54d48f6 )
Remove set-default-site from CLI (ed3f2d2 )
Remove src test (b8ed4f6 )
removed force renewal as it would extend by 3 months every month, now the job runs daily (408676c )
removed patch (87edc4e )
Return repo_name if app_name doesn't exist (aa1a1b9 )
Revert print compatibility import (753e36d )
Run compileall in bench after update (54e6bcf )
run test builds for py2.7 and py3.7 (3ea6634 )
serious bug capable of deleting apps path (a1db48b )
Show correct src of bench source (fe2d927 )
Show step titles while running operations (096c2cf )
ssl nginx directive deprecation (a514a0e )
supervisor command does not require sudo (c5cf916 )
Unpin setuptools, six and virtualenv (03576d1 )
Unshallow clone if update without --reset (4cadf2c )
Update documentation for user directory (294b399 )
update letsencrypt renew cron frequency (7a7b0fe )
Update package lists and setup prereqs before setting up script (550f55d )
Updated command help and verbosity while setting crontab (c9abac2 )
updated URL for MacOS guide (#1037 ) (d6a1222 )
Upgrade pip first (#1120 ) (17ef5da )
use correct path for compiling py files (b3a0757 )
wrong flag description (e9c046d )
install: Allow override of frappe_branch and erpnext_branch (6a207ca )
install: Helpful logging (2c4659a )
install: Install dev packages for Arm 64-bit (df0562d )
playbooks: Support wkhtmltox arm64 architecture (d6d1b91 )
Use 'develop' bench if not specified! (0ad4421 )
Use NullHandler for commands executed outside a bench dir (31f2999 )
use sys version info instead of user entry (ff48ced )
using distro instead of platform (967d149 )
utf8mb4_general_ci (f2e7702 )
install: Obey --without-site (608b28c )
warning on pip reinstall (d979751 )
install: SHow Debian 10 is supported, update MariaDB defaults (fadf44d )
tests: add --yes flag to production setup (851b4c3 )
"faster" get_sites function (8764813 )
add confirmation for supervisord conf update (deb854b )
add declarative config support for bench (186ba28 )
add honcho and pin dependency (02826d7 )
add log filter to handler (53919b6 )
add logging and set user if not passed (fc4b90a )
add playbooks in the python package (78e1f03 )
add provision to install downloaded packages (f3bcc42 )
add section in conf if doesnt exist (3e99fbc )
add x-frame-origin to prevent clickjacking (ecdcbb9 )
added aliases for click commands to convert _ seperated commands to (214a209 )
added python source code encoding (9b6155d )
added verbosity (fb5e150 )
Allow skipping assets (bdda041 )
Allow skipping assets (#822 ) (1c8115d )
ansible install on versioned pip (71af732 )
avoid circular imports and optimization (9e7b8d1 )
Bench logo url (92c1721 )
bench path used for config (6881c93 )
bench update compatible venv installed pkg (cd711b0 )
bench_path during setup_env (8c86ef5 )
bench.utils.get_sites updated to frappe.utils.get_sites (a3dc9e6 )
better exception handling for checking sudoers set (d51311b )
better warning and cache handling (e39ae1e )
branch argument while running easy install (94525d0 )
Build assets only for downloaded app (#802 ) (75b0901 )
build assets regardless of postprocess (a4a9b59 )
bump MariaDB version (a2ea3d9 )
bump up GitPython to 2.1.11 (8d1e1f3 )
Change ownership of all log and config files (b7f568a )
check for updates after command execution and handle (6ea7d75 )
check if virtual env (using pip refs) (63128a2 )
checks for bench requirements to be installed without the --user (3b06683 )
checksum expression (cf3c0b9 )
chown frappe_user home directory (4474f46 )
cleaner and intuitive bench logs (0be833a )
compatibility fixes, better cpu utilization (3b91d98 )
default caching of pip packages, use reload_supervisor function (0afb89a )
dir permissions (d5003e1 )
dont abort script if not overwriting scripts (#919 ) (ec1343c )
dont drop permissions for setting up supervisor (2fe5cce )
dont install bench dependencies in env (ea106e8 )
dont run ayrn install while setting up py reqs (dd04700 )
dont show warning message in developer mode (ce0a3de )
easy install script (b4dcea8 )
fix permissions for python3 bench init (fce86fa )
force checkout during switch_branch and quiet fetch (9f467d8 )
force use PYPI packaged bench (15b01e9 )
get_cmd_output handles exit codes if no output (a032528 )
get-app sets up node requirements (03e512f )
git depth, fixed requirements (#845 ) (ce6b4c8 )
git stash requires user details pre git v2.21 (a7a8790 )
handle app not found under GH frappe erpnext orgs (b3842d9 )
help for bench install without sudo (2d43612 )
importing reload caused issues in python2 (47a9aca )
incorrect import statement (699705f )
incorrect import statement (459432b )
Initialize bench with Python 3 (e24ca16 )
install app instead of requirements.txt (d99780b )
install missing dirmngr for debian installs (2b6260d )
install node modules if package.json exists (67fb0a4 )
install pip via pacman, minor fixes (f251fea )
install supervisor on user if doesnt exist (395b8df )
invalid syntax for click option (cac66a6 )
issue when ignore_exist is set and the path already exists 🐛 (#910 ) (40f7e09 ), closes /github.com/frappe/bench/commit/7fb1484b7f5dae561a098ab2a01c7f209664f626#diff-237d6b07e1835fbd8e51e251f66b2ec0
maintain worker and worker.error logfile in dev mode (cac8375 )
Message per app when installing node deps (bdc20a5 )
move bench.env to bench.config.env (1f4994d )
move update to utils (2713a2e )
no-backup option argument (#842 ) (6dbf6b9 )
perm while executing create user (f23698a )
pin dependencies of requirements (c660593 )
pip pinned to 19.3.1 after v20 breaking (7498c8e )
populate bench.log via bench.utils.log (2fd86c9 )
proper semantic version bumping (64a3a5c )
provision to pass container flag while setting up swap (ee8a8fb )
pull app list from sites/apps.txt (c2165b4 )
PY2 compatible regex (4ae8ae2 )
random failings from subprocesses and command formatting (#935 ) (b064987 )
remove bench and supervisor from sudoers (51b81c3 )
remove deprecated pre_upgrade usage (016b7da )
remove supervisord under service and systemctl in sudoers (39f8223 )
Remove the infamous print style (46b78f4 )
remove unnecessary - commands aliases (e435500 )
requests package dependancy for centos (9fe3a91 )
run install script without sudo (982b727 )
script to install pre-requisites (e7f45e3 )
separate out scripts (b6dd496 )
seperate colors from log, change exception (7fb1484 )
setup cron job for renewing ssl certificate (#918 ) (92d2fbd ), closes /github.com/frappe/bench/pull/918#issuecomment-589961301
setup libssl dependancy by checking distribution (7af5e67 )
setup requirements --python skips assets (d0ebf7f )
single process to pip install requirements, quiet flag added (1b0008d )
switch branches "better" (dc307b6 )
easy_install: log files saved with timestamp (b80cecc )
easy_install: overwrite config files (aebd759 )
easy-install: compatibility for easy install on PY2 (#937 ) (495a038 )
lets-encrypt: run command non interactively if flag passed (7ccc275 )
remove npm to fix ubuntu 18 install conflicts (e9205b5 )
remove unused method and use six to reload module (#875 ) (d2d5772 )
restart supervisor service after conf update (48f70ac )
restart supervisord process after change in conf (ec1acec )
return returncode in bench.utils.exec_cmd (1928eaa )
run backups every 6 hours, rather than every minute per 6 hours (691687e )
run fix_user_permissions only if production or sudoers is set up (fe02844 )
run patches for current user (78dbdcb )
set translations download limit based on cpu cores (7e7c396 )
show if service manager not found, also log it (629842a )
take backup before pulling the code and make site available after restarting the processes (9242b92 )
trailing slash deleting apps folder (52ee67f )
typo cash to crash (6dd0118 )
typo fix (22f3bc6 )
update bench install methods (a728416 )
update bench requirements for user (489d3b2 )
update easy install location (803fa2d )
update packages even if pip not in path (b9bb944 )
update pinned requirements (025665a )
update supervisord conf and reload, log everything (c43da5b )
updated manifest.in (1ba8c46 )
updated sequence of package updates (c7381de )
use easy_install of develop + path update (172a7c2 )
use remote_addr instead of user-defined header ip (a6bb587 )
use six to check for string types (#874 ) (75ffa03 )
validate branch error message + cleanup (b856516 )
validate branch in bench update (5762724 )
ansible: deprecated warnings for | expression (498e777 )
ansible: deprecated warnings install loops (fd7d59d )
ansible: python api deprecated warnings (3dc8b48 )
cli: give warn that commands are not executed in a bench folder (ef1a624 )
cron: change cron command for renewing ssl (17b4475 )
easy_install: datetime formatting (9cc6e2e )
fonts: remove unused setup_fonts method (#878 ) (0d4ace9 )
get-app: handle existing directory and other formatting changes (d1a3017 )
nginx: add redirect rules to avoid duplicate content (7051aa3 )
utils: sort imports, add parenthesis on ambigupus expr (c64a7e9 )
version comparison (6f3f8f6 )
ansible: Make everything verbose (46566cd )
backup: make auto backup logs verbose (f28c376 )
backups: setup backups for bench sites (90f951c )
easy_install: add support for Ubuntu 19.04 (81330fd )
easy_install: add version argument for installing different versions (0e91bf4 )
error: Python 2 does not provide stderr on CalledProcessError (#762 ) (d1810e1 )
get-app: allow ssh urls (7402807 )
pdf: Use libssl1.0-dev instead of libssl-dev (31fc3a0 )
playbooks: pre v5.1 compatibility for playbooks folder (08bc61a )
playbooks: wkhtmltopdf checksum string for debian 9 (#969 ) (a7c52b4 )
prerelease: allow making prerelease for bench (0290932 )
readme: add ubuntu 18.04 to easy install (4f8114f )
release: accomodate future branches (5699204 )
release: don't fast-forward while merging (c1bba94 )
release: handle release for multiple branches (dd78011 )
release: syntax error (933d7a1 )
security: Force download html, svg and xml files (893cb88 )
tests: print traceback from errors (6dc784f )
travis: Make install script verbose (f57635e )
travis: Use Ubuntu 16.04 (1c8b4c0 )
setup nginx fails for broken site_config (8b02bed )
syntax error (d55d29b )
syntax error (21925fa )
ubuntu iso version and packer path (064fb66 )
update supervisord and sudoers for old benches (e12208d )
update supervisord.conf while generating supervisor.conf (1f0a5ce )
use existing function (656358c )
use frappe_user from site_config and use getpass as fallback (a6f72c7 )
use reload only if imported (4d02801 )
validate branch before update (d32d905 )
remove_app: use app name instead of app path (e4e054e )
travis: urllib3 (8aa7c2b )
Features
"bench update" from non-bench directory (c93a25d )
ability to rollback failed bench init (f0c1893 )
added bench find command (963b2f9 )
added bench.utils.log and updated is_bench_directory api (e322815 )
added specific checks for git URLs (30473d3 )
allow raise option in get_cmd_output (6bb30e3 )
auto-stash changes in bench (tool) on update (186c0ea )
bench apps commands caching (c0afa04 )
bench pip * (f0596c5 )
bench start --no-prefix (#1040 ) (547f2ba )
better flag description (9de383a )
check for newer versions on PyPI (62f666c )
execute bench/frappe commands from anywhere inside a bench (2257f86 )
Keep repos shallow if --reset is specified and shallow_clone is set (66240e1 )
Option to provide path to Procfile (5bedd2c )
Option to provide path to Procfile (#833 ) (f7bec39 )
patch for older setups with wrong cron format (1e97cdf )
patch for older setups with wrong cron format (097879e )
pitch erpnext support to VM users (137a78a )
Redis ACL config is added to conf templates (46e6622 )
skip redis config during supervisor setup (5cf1363 )
bench update: allow pull-only update on specified apps (be36a14 )
CircleCI: tests shall not fail! ✔️ (68538fd )
easy_install: add support for debian 10 (72c70b2 ), closes #831
easy-install: seperate logging and cleaner UI (b3feaa2 )
error: Show SyntaxError found in frappe (#759 ) (1497f9b )
LXC: container support for Frappe (ea73913 )
playbooks: wkthmltox for Ubuntu 20 (#1019 ) (3336cff )
procfile: dont add redis to procfile if skipping config gen (4c173de )
update flags to readme (7e89a23 )
release: option to prevent frontport (479ab08 )
ubuntu 18: Add support for Ubuntu 18.04 (de94469 )
Performance Improvements
Faster bench remove-app (ebc3ceb )
Faster Commands execution by commands caching (bb677d1 )
Remove ast from the import tree (104efd3 )
Remove bench.config.common_site_config from the import tree (c5d2fb9 )
Remove bench.config.letsencrypt from the import tree (cab2d44 )
Remove bench.config.nginx from the import tree (36e48c7 )
Remove crontab from the import tree (e12717d )
Remove crontab from the import tree (2a4377a )
Remove git from the import tree (df773d4 )
Remove Jinja and PackageLoader from the import tree (ad90d94 )
Remove multiprocessing from the import tree (8527b10 )
Remove multiprocessing from the import tree (ad37665 )
Remove requests from the import tree (cc92584 )
Remove semantic_version from the import tree (2df0bf7 )
Remove shutil from the import tree (07ecaa1 )
Remove six.moves.reload_module from the import tree (5d90346 )
Remove six.moves.urllib from the import tree (6706b23 )
Remove six.moves.urllib from the import tree (5525548 )
Remove siz.moves.configparser from the import tree (6c0e1a3 )
Remove unwanted check (#788 ) (431e969 )
Reverts
You can’t perform that action at this time.