Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Upgrade pip first #1120

Merged
merged 10 commits into from
Feb 16, 2021
Merged

fix: Upgrade pip first #1120

merged 10 commits into from
Feb 16, 2021

Conversation

rtdany10
Copy link
Contributor

pip needs to be upgraded before cryptography to avoid version compatibility error.

Closes #1119 frappe/easy_install#19

`pip` needs to be upgraded before `cryptography` to avoid version compatibility error.
gavindsouza
gavindsouza previously approved these changes Feb 16, 2021
@gavindsouza gavindsouza dismissed their stale review February 16, 2021 07:19

Broken Travis Build

@gavindsouza
Copy link
Collaborator

The Travis failure suggests we need to install setuptools_rust instead of setuptools, as previously discussed in frappe/easy_install#19. Can you install setuptools_rust too?

@rtdany10
Copy link
Contributor Author

The Travis failure suggests we need to install setuptools_rust instead of setuptools, as previously discussed in frappe/easy_install#19. Can you install setuptools_rust too?

Have added it in requirements.txt and also in upgrade command.

@gavindsouza
Copy link
Collaborator

Have added it in requirements.txt and also in upgrade command.

setuptools-rust is a dependency of cryptography which isn't a bench requirement, rather a Frappe requirement. If anywhere, it should be pinned in frappe. So adding it here is unnecessary.

@gavindsouza gavindsouza merged commit 17ef5da into frappe:develop Feb 16, 2021
@rtdany10 rtdany10 deleted the patch-1 branch February 26, 2021 14:00
github-actions bot pushed a commit that referenced this pull request Apr 27, 2021
# [5.4.0](v5.3.0...v5.4.0) (2021-04-27)

### Bug Fixes

* add declarative config support for bench ([186ba28](186ba28))
* change TEST_PYPI to PYPI ([4211f5d](4211f5d))
* create bench folder in user directory ([5c5d2b5](5c5d2b5))
* Don't break update if no sites exist on patching sites stage ([778fe6c](778fe6c))
* fail2ban help message ([fec8921](fec8921))
* Invoke pip via python ([b0ccb6e](b0ccb6e))
* nginx proxy buffer ([7f9bed4](7f9bed4))
* only fetch current branch ([895c403](895c403))
* only fetch what is necessary, simplify & improve grepability ([82173c1](82173c1))
* only get the specific branch for version check ([0ff8ddd](0ff8ddd))
* Remove set-default-site from CLI ([ed3f2d2](ed3f2d2))
* Return repo_name if app_name doesn't exist ([aa1a1b9](aa1a1b9))
* serious bug capable of deleting apps path ([a1db48b](a1db48b))
* Update documentation for user directory ([294b399](294b399))
* Upgrade pip first ([#1120](#1120)) ([17ef5da](17ef5da))
* use correct path for compiling py files ([b3a0757](b3a0757))

### Features

* Keep repos shallow if --reset is specified and shallow_clone is set ([66240e1](66240e1))
* skip redis config during supervisor setup ([5cf1363](5cf1363))

### Performance Improvements

* Remove ast from the import tree ([104efd3](104efd3))
* Remove bench.config.common_site_config from the import tree ([c5d2fb9](c5d2fb9))
* Remove bench.config.letsencrypt from the import tree ([cab2d44](cab2d44))
* Remove bench.config.nginx from the import tree ([36e48c7](36e48c7))
* Remove crontab from the import tree ([e12717d](e12717d))
* Remove crontab from the import tree ([2a4377a](2a4377a))
* Remove git from the import tree ([df773d4](df773d4))
* Remove Jinja and PackageLoader from the import tree ([ad90d94](ad90d94))
* Remove multiprocessing from the import tree ([8527b10](8527b10))
* Remove multiprocessing from the import tree ([ad37665](ad37665))
* Remove requests from the import tree ([cc92584](cc92584))
* Remove semantic_version from the import tree ([2df0bf7](2df0bf7))
* Remove shutil from the import tree ([07ecaa1](07ecaa1))
* Remove six.moves.reload_module from the import tree ([5d90346](5d90346))
* Remove six.moves.urllib from the import tree ([6706b23](6706b23))
* Remove six.moves.urllib from the import tree ([5525548](5525548))
* Remove siz.moves.configparser from the import tree ([6c0e1a3](6c0e1a3))
gpizzorno added a commit to DALME/DALME-Online-Database that referenced this pull request May 10, 2021
github-actions bot pushed a commit to Bloomstack/bench that referenced this pull request May 25, 2021
# 1.0.0 (2021-05-25)

### Bug Fixes

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

### Features

* "bench update" from non-bench directory ([c93a25d](c93a25d))
* ability to rollback failed bench init ([f0c1893](f0c1893))
* added bench find command ([963b2f9](963b2f9))
* added bench.utils.log and updated is_bench_directory api ([e322815](e322815))
* added specific  checks for git URLs ([30473d3](30473d3))
* allow raise option in get_cmd_output ([6bb30e3](6bb30e3))
* auto-stash changes in bench (tool) on update ([186c0ea](186c0ea))
* bench apps commands caching ([c0afa04](c0afa04))
* bench pip * ([f0596c5](f0596c5))
* bench start --no-prefix ([frappe#1040](https://github.com/Bloomstack/bench/issues/1040)) ([547f2ba](547f2ba))
* better flag description ([9de383a](9de383a))
* check for newer versions on PyPI ([62f666c](62f666c))
* execute bench/frappe commands from anywhere inside a bench ([2257f86](2257f86))
* Keep repos shallow if --reset is specified and shallow_clone is set ([66240e1](66240e1))
* Option to provide path to Procfile ([5bedd2c](5bedd2c))
* Option to provide path to Procfile ([frappe#833](https://github.com/Bloomstack/bench/issues/833)) ([f7bec39](f7bec39))
* patch for older setups with wrong cron format ([1e97cdf](1e97cdf))
* patch for older setups with wrong cron format ([097879e](097879e))
* pitch erpnext support to VM users ([137a78a](137a78a))
* skip redis config during supervisor setup ([5cf1363](5cf1363))
* **bench update:** allow pull-only update on specified apps ([be36a14](be36a14))
* **CircleCI:** tests shall not fail! ✔️ ([68538fd](68538fd))
* **easy_install:** add support for debian 10 ([72c70b2](72c70b2)), closes [frappe#831](https://github.com/Bloomstack/bench/issues/831)
* **easy-install:** seperate logging and cleaner UI ([b3feaa2](b3feaa2))
* **error:** Show SyntaxError found in frappe ([frappe#759](https://github.com/Bloomstack/bench/issues/759)) ([1497f9b](1497f9b))
* **LXC:** container support for Frappe ([ea73913](ea73913))
* **playbooks:** wkthmltox for Ubuntu 20 ([frappe#1019](https://github.com/Bloomstack/bench/issues/1019)) ([3336cff](3336cff))
* **procfile:** dont add redis to procfile if skipping config gen ([4c173de](4c173de))
* update flags to readme ([7e89a23](7e89a23))
* **release:** option to prevent frontport ([479ab08](479ab08))
* **ubuntu 18:** Add support for Ubuntu 18.04 ([de94469](de94469))

### Performance Improvements

* Faster bench remove-app ([ebc3ceb](ebc3ceb))
* Faster Commands execution by commands caching ([bb677d1](bb677d1))
* Remove ast from the import tree ([104efd3](104efd3))
* Remove bench.config.common_site_config from the import tree ([c5d2fb9](c5d2fb9))
* Remove bench.config.letsencrypt from the import tree ([cab2d44](cab2d44))
* Remove bench.config.nginx from the import tree ([36e48c7](36e48c7))
* Remove crontab from the import tree ([e12717d](e12717d))
* Remove crontab from the import tree ([2a4377a](2a4377a))
* Remove git from the import tree ([df773d4](df773d4))
* Remove Jinja and PackageLoader from the import tree ([ad90d94](ad90d94))
* Remove multiprocessing from the import tree ([8527b10](8527b10))
* Remove multiprocessing from the import tree ([ad37665](ad37665))
* Remove requests from the import tree ([cc92584](cc92584))
* Remove semantic_version from the import tree ([2df0bf7](2df0bf7))
* Remove shutil from the import tree ([07ecaa1](07ecaa1))
* Remove six.moves.reload_module from the import tree ([5d90346](5d90346))
* Remove six.moves.urllib from the import tree ([6706b23](6706b23))
* Remove six.moves.urllib from the import tree ([5525548](5525548))
* Remove siz.moves.configparser from the import tree ([6c0e1a3](6c0e1a3))
* Remove unwanted check ([frappe#788](https://github.com/Bloomstack/bench/issues/788)) ([431e969](431e969))

### Reverts

* Revert "debug: check if there's an exception being raised silently" ([8173b00](8173b00))
* Revert "fix: force use PYPI packaged bench" ([cdd7d34](cdd7d34))
* Revert "fix(fonts): remove unused setup_fonts method" (frappe#881) ([fb13dfb](fb13dfb)), closes [frappe#881](https://github.com/Bloomstack/bench/issues/881)
* Revert "perf: Remove unwanted check (frappe#788)" (frappe#790) ([93264c6](93264c6)), closes [frappe#788](https://github.com/Bloomstack/bench/issues/788) [frappe#790](https://github.com/Bloomstack/bench/issues/790)
* Revert "fix: Change ownership of all log and config files (frappe#787)" ([c16c8e6](c16c8e6)), closes [frappe#787](https://github.com/Bloomstack/bench/issues/787)
* Revert "Add reference feature" ([c41e313](c41e313))
github-actions bot pushed a commit to brian-pond/bench that referenced this pull request Aug 16, 2021
# 1.0.0 (2021-08-16)

### Bug Fixes

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

### Features

* "bench update" from non-bench directory ([c93a25d](c93a25d))
* ability to rollback failed bench init ([f0c1893](f0c1893))
* added bench find command ([963b2f9](963b2f9))
* added bench.utils.log and updated is_bench_directory api ([e322815](e322815))
* added specific  checks for git URLs ([30473d3](30473d3))
* allow raise option in get_cmd_output ([6bb30e3](6bb30e3))
* auto-stash changes in bench (tool) on update ([186c0ea](186c0ea))
* bench apps commands caching ([c0afa04](c0afa04))
* bench pip * ([f0596c5](f0596c5))
* bench start --no-prefix ([frappe#1040](https://github.com/PMojito/bench/issues/1040)) ([547f2ba](547f2ba))
* better flag description ([9de383a](9de383a))
* check for newer versions on PyPI ([62f666c](62f666c))
* execute bench/frappe commands from anywhere inside a bench ([2257f86](2257f86))
* Keep repos shallow if --reset is specified and shallow_clone is set ([66240e1](66240e1))
* Option to provide path to Procfile ([5bedd2c](5bedd2c))
* Option to provide path to Procfile ([frappe#833](https://github.com/PMojito/bench/issues/833)) ([f7bec39](f7bec39))
* patch for older setups with wrong cron format ([1e97cdf](1e97cdf))
* patch for older setups with wrong cron format ([097879e](097879e))
* pitch erpnext support to VM users ([137a78a](137a78a))
* Redis ACL config is added to conf templates ([46e6622](46e6622))
* skip redis config during supervisor setup ([5cf1363](5cf1363))
* **bench update:** allow pull-only update on specified apps ([be36a14](be36a14))
* **CircleCI:** tests shall not fail! ✔️ ([68538fd](68538fd))
* **easy_install:** add support for debian 10 ([72c70b2](72c70b2)), closes [frappe#831](https://github.com/PMojito/bench/issues/831)
* **easy-install:** seperate logging and cleaner UI ([b3feaa2](b3feaa2))
* **error:** Show SyntaxError found in frappe ([frappe#759](https://github.com/PMojito/bench/issues/759)) ([1497f9b](1497f9b))
* **LXC:** container support for Frappe ([ea73913](ea73913))
* **playbooks:** wkthmltox for Ubuntu 20 ([frappe#1019](https://github.com/PMojito/bench/issues/1019)) ([3336cff](3336cff))
* **procfile:** dont add redis to procfile if skipping config gen ([4c173de](4c173de))
* update flags to readme ([7e89a23](7e89a23))
* **release:** option to prevent frontport ([479ab08](479ab08))
* **ubuntu 18:** Add support for Ubuntu 18.04 ([de94469](de94469))

### Performance Improvements

* Faster bench remove-app ([ebc3ceb](ebc3ceb))
* Faster Commands execution by commands caching ([bb677d1](bb677d1))
* Remove ast from the import tree ([104efd3](104efd3))
* Remove bench.config.common_site_config from the import tree ([c5d2fb9](c5d2fb9))
* Remove bench.config.letsencrypt from the import tree ([cab2d44](cab2d44))
* Remove bench.config.nginx from the import tree ([36e48c7](36e48c7))
* Remove crontab from the import tree ([e12717d](e12717d))
* Remove crontab from the import tree ([2a4377a](2a4377a))
* Remove git from the import tree ([df773d4](df773d4))
* Remove Jinja and PackageLoader from the import tree ([ad90d94](ad90d94))
* Remove multiprocessing from the import tree ([8527b10](8527b10))
* Remove multiprocessing from the import tree ([ad37665](ad37665))
* Remove requests from the import tree ([cc92584](cc92584))
* Remove semantic_version from the import tree ([2df0bf7](2df0bf7))
* Remove shutil from the import tree ([07ecaa1](07ecaa1))
* Remove six.moves.reload_module from the import tree ([5d90346](5d90346))
* Remove six.moves.urllib from the import tree ([6706b23](6706b23))
* Remove six.moves.urllib from the import tree ([5525548](5525548))
* Remove siz.moves.configparser from the import tree ([6c0e1a3](6c0e1a3))
* Remove unwanted check ([frappe#788](https://github.com/PMojito/bench/issues/788)) ([431e969](431e969))

### Reverts

* Revert "debug: check if there's an exception being raised silently" ([8173b00](8173b00))
* Revert "fix: force use PYPI packaged bench" ([cdd7d34](cdd7d34))
* Revert "fix(fonts): remove unused setup_fonts method" (frappe#881) ([fb13dfb](fb13dfb)), closes [frappe#881](https://github.com/PMojito/bench/issues/881)
* Revert "perf: Remove unwanted check (frappe#788)" (frappe#790) ([93264c6](93264c6)), closes [frappe#788](https://github.com/PMojito/bench/issues/788) [frappe#790](https://github.com/PMojito/bench/issues/790)
* Revert "fix: Change ownership of all log and config files (frappe#787)" ([c16c8e6](c16c8e6)), closes [frappe#787](https://github.com/PMojito/bench/issues/787)
* Revert "Add reference feature" ([c41e313](c41e313))
github-actions bot pushed a commit to kimsreng/bench that referenced this pull request Oct 16, 2024
# 1.0.0 (2024-10-16)

### Bug Fixes

* "Error: no such option: --backup" ([#946](https://github.com/kimsreng/bench/issues/946)) ([76943e0](https://github.com/kimsreng/bench/commit/76943e070c1ef53e7448024ad5b78073d3d80b58))
* "faster" get_sites function ([8764813](https://github.com/kimsreng/bench/commit/8764813121152cb80fde403a21ab5f541074c525))
* (re)Install every Frappe app even if not installed to env ([ffae670](https://github.com/kimsreng/bench/commit/ffae670be79a0488b394ac03413497eebb740f89))
* Add bench.cli namespace ([2f0b508](https://github.com/kimsreng/bench/commit/2f0b508d2ef1d4935ccd4a74d374ee6be28a7bec))
* add code removed via erroneous commit ([b28cfab](https://github.com/kimsreng/bench/commit/b28cfab5502096e28dfbda332337b14635278fb2))
* add confirmation for supervisord conf update ([deb854b](https://github.com/kimsreng/bench/commit/deb854b9d92304102f3daf33a37e0367621dc359))
* add customer background workers in group ([#1439](https://github.com/kimsreng/bench/issues/1439)) ([4ec73c3](https://github.com/kimsreng/bench/commit/4ec73c3b92065c6c31976e201feb9188dd23836e))
* add declarative config support for bench ([186ba28](https://github.com/kimsreng/bench/commit/186ba280f1ed5d77e101d5a2fca83951521c901e))
* add honcho and pin dependency ([02826d7](https://github.com/kimsreng/bench/commit/02826d7dceafac561a09f0bd90651d4894917b6a))
* add jammy package for Ubuntu 22 ([#1549](https://github.com/kimsreng/bench/issues/1549)) ([5a0922d](https://github.com/kimsreng/bench/commit/5a0922d9918ecf37fb5bede93f5921d45f3334cb))
* add log filter to handler ([53919b6](https://github.com/kimsreng/bench/commit/53919b624e17e108006d66bddb0981658aeefaf0))
* add logging and set user if not passed ([fc4b90a](https://github.com/kimsreng/bench/commit/fc4b90acdb576da1516afd8a2234742e2a7f090e))
* add playbooks in the python package ([78e1f03](https://github.com/kimsreng/bench/commit/78e1f03cc4176b6318e22bf630b498db7d4ec51e))
* add provision to install downloaded packages ([f3bcc42](https://github.com/kimsreng/bench/commit/f3bcc42abe349194b6bd9bb6629f4b5453c750c5))
* add safety filter for untarring ([e8ea985](https://github.com/kimsreng/bench/commit/e8ea98552c973f9ac126e728d465de3723a9701f))
* add section in conf if doesnt exist ([3e99fbc](https://github.com/kimsreng/bench/commit/3e99fbc46b04f5493684884dae98b94c56c1d4bf))
* Add support for options on bench main group ([8a0b784](https://github.com/kimsreng/bench/commit/8a0b78451b3ef33db342c3081ee371bc29e4a82f))
* add useforsecurity with fallback for <3.9 ([319809d](https://github.com/kimsreng/bench/commit/319809d2dff6cfd3941e80717799736afa15009d))
* add x-frame-origin to prevent clickjacking ([ecdcbb9](https://github.com/kimsreng/bench/commit/ecdcbb9219bdde7d1b3b129074b1969296c44a26))
* added aliases for click commands to convert _ seperated commands to ([214a209](https://github.com/kimsreng/bench/commit/214a2093ebff10f8277bc421e2ebdc438f7c2aee))
* added code removed via erroneous commit ([5b64175](https://github.com/kimsreng/bench/commit/5b641758cf64dd82362905cf79c192bf9ce0f502))
* added code removed via erroneous commit ([7e28a3d](https://github.com/kimsreng/bench/commit/7e28a3dd9e8a5670083912f30d6ff06cc216b0f0))
* added python source code encoding ([9b6155d](https://github.com/kimsreng/bench/commit/9b6155dcf31344981339a5256b661cb448e92379))
* added verbosity ([fb5e150](https://github.com/kimsreng/bench/commit/fb5e1501057e4e0b62cd508175830d2558b8c309))
* Added warning for unshallow without --reset ([01abc56](https://github.com/kimsreng/bench/commit/01abc561e07ab19d9c66b5f6d8b915497305d36f))
* allow bench init with git tags ([c943b30](https://github.com/kimsreng/bench/commit/c943b30c6609b758ab903af3e4d964dee4828d25))
* Allow bench src as root ([9d1f7a7](https://github.com/kimsreng/bench/commit/9d1f7a7ed7ca3caaf9978c3f75292984078caf69))
* Allow git url with custom username ([#1200](https://github.com/kimsreng/bench/issues/1200)) ([6411812](https://github.com/kimsreng/bench/commit/641181260e698073c9df6a68ae8ef75c40769eaa))
* Allow skipping assets ([bdda041](https://github.com/kimsreng/bench/commit/bdda0419ea165e41a279a8858b0568f1b5622990))
* Allow skipping assets ([#822](https://github.com/kimsreng/bench/issues/822)) ([1c8115d](https://github.com/kimsreng/bench/commit/1c8115df167b7c7d2dbb2dc3cd4d5934deeb70bf))
* Allow sudo restart for supervisor (backwards compatibility) ([fc7c047](https://github.com/kimsreng/bench/commit/fc7c047c280c443fa85f33f90e572412f206dbff))
* Always set return code via cli ([552b935](https://github.com/kimsreng/bench/commit/552b935f6b7d35933907c05421171827b30a967c))
* ansible install on versioned pip ([71af732](https://github.com/kimsreng/bench/commit/71af7320f29f52c43c284ef6ce92b6c7ec17e38d))
* **ansible:** deprecated warnings for | expression ([498e777](https://github.com/kimsreng/bench/commit/498e777b5745b3e939e42c0536ccb431c3f25804))
* **ansible:** deprecated warnings install loops ([fd7d59d](https://github.com/kimsreng/bench/commit/fd7d59d2be27c49c4bda45c2595395524ecdb546))
* **ansible:** Make everything verbose ([46566cd](https://github.com/kimsreng/bench/commit/46566cd9ac0bfe0a828b9a0fd6e89f37bfdebafe))
* **ansible:** python api deprecated warnings ([3dc8b48](https://github.com/kimsreng/bench/commit/3dc8b48da76ec8ad0575dc48fd6ee8f5ba689e90))
* **ansible:** Use include_tasks instead of include ([cbd703d](https://github.com/kimsreng/bench/commit/cbd703d436ee6b4917db865f1e526e7ae50b3fd3))
* Archive app for different repo/app names ([3af6058](https://github.com/kimsreng/bench/commit/3af6058d1bb41025a65b423af028657fe88500f0))
* Archived app naming, apps.txt sync ([79980c3](https://github.com/kimsreng/bench/commit/79980c3c55229ca0a4342618d4c2c60e78810d3d))
* avoid circular imports and optimization ([9e7b8d1](https://github.com/kimsreng/bench/commit/9e7b8d1f2e570a477bbdda22e68c0dd49ef3519a))
* **backup:** make auto backup logs verbose ([f28c376](https://github.com/kimsreng/bench/commit/f28c3765d843d8118ab22e208857f98551e7ed3b))
* **backups:** setup backups for bench sites ([90f951c](https://github.com/kimsreng/bench/commit/90f951c6ec3465b780f24f08cd87c35631cfd0dd))
* bad URL in raw.githubusercontent.com ([#1363](https://github.com/kimsreng/bench/issues/1363)) ([589f7a4](https://github.com/kimsreng/bench/commit/589f7a400e5b613294a203e3c781be05ba5d73bb))
* Bench logo url ([92c1721](https://github.com/kimsreng/bench/commit/92c17216f686759c882346b1864d5c0e81845dbc))
* bench path used for config ([6881c93](https://github.com/kimsreng/bench/commit/6881c9338829c0a00ff1384f1bddfc77ea568cfd))
* bench update compatible  venv installed pkg ([cd711b0](https://github.com/kimsreng/bench/commit/cd711b04dc995cbe1a4d97df3a32c01f2630a3aa))
* bench_path during setup_env ([8c86ef5](https://github.com/kimsreng/bench/commit/8c86ef576e72d7c4f57f3375e4b425fad4265744))
* bench.utils.get_sites updated to  frappe.utils.get_sites ([a3dc9e6](https://github.com/kimsreng/bench/commit/a3dc9e69b77464dd1e855a52b4d7a3deafb262ef))
* better exception handling for checking sudoers set ([d51311b](https://github.com/kimsreng/bench/commit/d51311b7f7caedec77c3474f3232358bd2aba0f5))
* better warning and cache handling ([e39ae1e](https://github.com/kimsreng/bench/commit/e39ae1e0b5699e41dd552f48707299ccda4e86e3))
* branch argument while running easy install ([94525d0](https://github.com/kimsreng/bench/commit/94525d0721125a4108957a477edcc1d820f3b7e0))
* Build assets only for downloaded app ([#802](https://github.com/kimsreng/bench/issues/802)) ([75b0901](https://github.com/kimsreng/bench/commit/75b0901af4d26502fd8763f7947ec7f465de418c))
* build assets regardless of postprocess ([a4a9b59](https://github.com/kimsreng/bench/commit/a4a9b59f4256d5f28ecc572cf5e7e777635e176a))
* **build:** pin hatchling version 2nd try ([b74ff54](https://github.com/kimsreng/bench/commit/b74ff54dfa3a5f6dd01fd33e5955353817123b9c))
* **build:** pin hatchling version to prevent import error ([3a73059](https://github.com/kimsreng/bench/commit/3a73059531ec6567c6baaa460be28e950b42ee99))
* **build:** support pyproject version ([#1502](https://github.com/kimsreng/bench/issues/1502)) ([7c64aa3](https://github.com/kimsreng/bench/commit/7c64aa3d94723bd30afee519c133689e0bc800d4))
* bump MariaDB version ([a2ea3d9](https://github.com/kimsreng/bench/commit/a2ea3d90c55236c3dcac2264ed9f5e79c517b035))
* Bump Nodejs v12 => v14 ([cd0fccf](https://github.com/kimsreng/bench/commit/cd0fccfdb49f24a4383ca0a6e4e5849f67637fc0))
* Bump Nodejs v8 => v12 ([de5e278](https://github.com/kimsreng/bench/commit/de5e2789122e219a73c889508fa6100ad77b58c8))
* bump up GitPython to 2.1.11 ([8d1e1f3](https://github.com/kimsreng/bench/commit/8d1e1f3137981c1edfbef35a006f72b151b9483e))
* calc md5 for app cache ([16f8906](https://github.com/kimsreng/bench/commit/16f89067c6700ade47d5daa7c6f4dd1b858278bf))
* case-insensitive matching ([3f57616](https://github.com/kimsreng/bench/commit/3f576168034c605f90c23860a82df74c79df2137))
* Change ownership of all log and config files ([b7f568a](https://github.com/kimsreng/bench/commit/b7f568aec25d8c60a1062c25fd24b8a42c2b39d8))
* change TEST_PYPI to PYPI ([4211f5d](https://github.com/kimsreng/bench/commit/4211f5d750b5f6130e5479ea263154d3cd87bb84))
* check current branch ([2287f3f](https://github.com/kimsreng/bench/commit/2287f3f7ec04cbf872049029809b65da829f6efd))
* Check for unauthorized status code in response ([e9b0112](https://github.com/kimsreng/bench/commit/e9b0112a9cf69a9523e6bdf3a73301cd5c0f7e75))
* check for updates after command execution and handle ([6ea7d75](https://github.com/kimsreng/bench/commit/6ea7d75193e31561d047731ed6a8bb5022319759))
* check for valid branch in resolve ([79765e6](https://github.com/kimsreng/bench/commit/79765e6b25a09eb93e6ca67c6ff8e5ea1f565fba))
* check frappe-deps during get-app ([d93656e](https://github.com/kimsreng/bench/commit/d93656e8d9656c7a2640f3d7f1203d5540bc53ac))
* Check if app is installed in env via initialize_apps ([a192240](https://github.com/kimsreng/bench/commit/a192240cec9156c83804a35e1aeeadff885ea185))
* Check if archived_sites directory exists before running ([b11f5b0](https://github.com/kimsreng/bench/commit/b11f5b0f96b06e48fb87c820b08bef1d4fa79e14))
* check if installed FF supports use-cached ([d177d8f](https://github.com/kimsreng/bench/commit/d177d8ff633fe04a685754d7b8f52a19a8e8c2bf))
* Check if Py3.5+ before installing distro ([f032fc0](https://github.com/kimsreng/bench/commit/f032fc0b86f6891399d3dba41cca782319667ed3))
* check if virtual env (using pip refs) ([63128a2](https://github.com/kimsreng/bench/commit/63128a21bf723a2b42336b0094fe341bd757aa28))
* check md5 when fetching from cache ([efb5171](https://github.com/kimsreng/bench/commit/efb51712d92cc98331e76caad1755a22782c994b))
* Check yarn files during install ([#1533](https://github.com/kimsreng/bench/issues/1533)) ([1a42175](https://github.com/kimsreng/bench/commit/1a421758a8923aed9325089f54d205c2bececb0c))
* checking status code to determine rate limit ([dbb1904](https://github.com/kimsreng/bench/commit/dbb19046df0fe72ed82fd87220fa7aa5a37d0e56))
* checks for bench requirements to be installed without the --user ([3b06683](https://github.com/kimsreng/bench/commit/3b06683ebf41d4bcf9c48eb342ff7a125fa69a2e))
* checksum expression ([cf3c0b9](https://github.com/kimsreng/bench/commit/cf3c0b92658791fb7b25c94455dd86fb8695d393))
* chown frappe_user home directory ([4474f46](https://github.com/kimsreng/bench/commit/4474f463dcdf93321c7a188a405db0edb0d7e50f))
* cleaner and intuitive bench logs ([0be833a](https://github.com/kimsreng/bench/commit/0be833ad850e5d68fefd906bb3e0607127849d4b))
* Cleanup import hell ([e2fd9de](https://github.com/kimsreng/bench/commit/e2fd9de921b5b5f26a98dd7fd38745c1eac7b9d8))
* Cleanup import hell (contd) ([d2fba5f](https://github.com/kimsreng/bench/commit/d2fba5fe52529c2c59b01038561cab71dc8be49d))
* Clear Bench instance cache on every chdir ([ec369a1](https://github.com/kimsreng/bench/commit/ec369a16a1d876104d3e876f6b5baa3487244f02))
* clearer docstrings ([3c59446](https://github.com/kimsreng/bench/commit/3c5944623a52b6f128e782d6664e03a683d3d0b6))
* **cli:** give warn that commands are not executed in a bench folder ([ef1a624](https://github.com/kimsreng/bench/commit/ef1a62455662ee670172dd3b555ad401951d14c0))
* coerce git_url to app_name ([54b514b](https://github.com/kimsreng/bench/commit/54b514b749f64a4857d9ff30788148a325a267e8))
* Command picking & execution ([2fa25d8](https://github.com/kimsreng/bench/commit/2fa25d8791e23385eec60614abfd190f3d39a617))
* **command_cache:** Return iterable as fallback ([6fd3ad7](https://github.com/kimsreng/bench/commit/6fd3ad738b75a974763aec26ff8124c4fcf4147e))
* compatibility fixes, better cpu utilization ([3b91d98](https://github.com/kimsreng/bench/commit/3b91d98d856b57aec3bb3c38eb8b09aa11d96ccc))
* compatible configparser get ([312a92d](https://github.com/kimsreng/bench/commit/312a92d0caf0bfb76803c0071eba9cc55abd52c7))
* **config:** Fix fail2ban filter ([#1308](https://github.com/kimsreng/bench/issues/1308)) ([94a25d3](https://github.com/kimsreng/bench/commit/94a25d3da7fa9552d94f362c0b3016b316399473))
* correct patches.txt ([a28a0d0](https://github.com/kimsreng/bench/commit/a28a0d0d2389fcb7268e67ac56b6af74c93501af))
* correct python path for migrate_env ([61e0f4a](https://github.com/kimsreng/bench/commit/61e0f4acbf4b7e95da2d1d0b26516cd41bfc6eed))
* create bench folder in user directory ([5c5d2b5](https://github.com/kimsreng/bench/commit/5c5d2b57dfaf0e43b56b7140717649e356e2cad6))
* **cron:** change cron command for renewing ssl ([17b4475](https://github.com/kimsreng/bench/commit/17b447591f20cd9025519d020cc358e663131976))
* default caching of pip packages, use reload_supervisor function ([0afb89a](https://github.com/kimsreng/bench/commit/0afb89a2c178b0c8a90a1f080bb79e9f75a348e4))
* del node_modules if frappe supports app_cache ([9988b83](https://github.com/kimsreng/bench/commit/9988b8356bacf9df0d0d865baafab8a6cb8bb160))
* Delete folder if --no-backup is passed ([f7f7459](https://github.com/kimsreng/bench/commit/f7f7459c51ad9b73d79d04e14d252de42289b44a))
* dir permissions ([d5003e1](https://github.com/kimsreng/bench/commit/d5003e1944ec1fccc34c742930ad1741e7e0ab66))
* dns caching handle name not match ([9bdff52](https://github.com/kimsreng/bench/commit/9bdff524cd8fe87681548369b2fc8fde600e6bd5))
* don't allow uninstall frappe... ([1ab3763](https://github.com/kimsreng/bench/commit/1ab3763fd6238fa9a906331690890c559275782d))
* Don't break update if no sites exist on patching sites stage ([778fe6c](https://github.com/kimsreng/bench/commit/778fe6cb0bdf442bceac0ac5b98b7ab7fdcae6da))
* don't compile python files manually. ([#1469](https://github.com/kimsreng/bench/issues/1469)) ([036cb62](https://github.com/kimsreng/bench/commit/036cb6291ec2d6f837dc1db40738f688034da5b0))
* Don't fetch meta for rm app ([17edb47](https://github.com/kimsreng/bench/commit/17edb4797baf70f7397e44ccaef7dbaeac403b0e))
* Don't handle `BaseException`s ([ad000f1](https://github.com/kimsreng/bench/commit/ad000f1be7c8a74746d276e2633651513d5297ff))
* Don't recompute URLs when name passed in App ([0898e2d](https://github.com/kimsreng/bench/commit/0898e2d2a21abb656262f0e10d2c310864822df6))
* dont abort script if not overwriting scripts ([#919](https://github.com/kimsreng/bench/issues/919)) ([ec1343c](https://github.com/kimsreng/bench/commit/ec1343c0fae59388a64a22e6289005cb3e7801b2))
* dont attempt migrating to active virtualenv ([0e59159](https://github.com/kimsreng/bench/commit/0e59159e1167357f6d8411708a93ad37cc4b959e))
* dont drop permissions for setting up supervisor ([2fe5cce](https://github.com/kimsreng/bench/commit/2fe5cce6d445612c0a26b2bfbb0ea3a7dc20a66f))
* dont install bench dependencies in env ([ea106e8](https://github.com/kimsreng/bench/commit/ea106e89c9da84cc5ba118d5e1346580717f728b))
* dont run ayrn install while setting up py reqs ([dd04700](https://github.com/kimsreng/bench/commit/dd047002a1915b39867295d195c3f269f11fc57e))
* dont show warning message in developer mode ([ce0a3de](https://github.com/kimsreng/bench/commit/ce0a3de259d8f90749ff54ef1161b58ebc4f3d8f))
* dont use glob pattern for `python` exec ([dc047a5](https://github.com/kimsreng/bench/commit/dc047a5e7da4a7ae4d6ded8948d657d82caf1403))
* Drop support for Frappe v4-5-6 ;) ([616dff8](https://github.com/kimsreng/bench/commit/616dff8fbbcede4a49cf4a96064a95081961cc41))
* **DX:** make warnings go to stderr ([b6b9481](https://github.com/kimsreng/bench/commit/b6b9481b7b11f5ef6b3c5f866483cfdbcace97a3))
* easy install script ([b4dcea8](https://github.com/kimsreng/bench/commit/b4dcea8b0e91e26f4d2741641bd3eb066ff24c50))
* **easy_install:** add support for Ubuntu 19.04 ([81330fd](https://github.com/kimsreng/bench/commit/81330fd894db79ad0a6767b948a59b3ebee63dbb))
* **easy_install:** add version argument for installing different versions ([0e91bf4](https://github.com/kimsreng/bench/commit/0e91bf43fd2b337a8883cebe9f39aa0e2a0af96e))
* **easy_install:** datetime formatting ([9cc6e2e](https://github.com/kimsreng/bench/commit/9cc6e2e2a8859cff484097ae2b1122c866d3fc2b))
* **easy_install:** log files saved with timestamp ([b80cecc](https://github.com/kimsreng/bench/commit/b80cecc917ce9ad8236701e378977c96d8172956))
* **easy_install:** overwrite config files ([aebd759](https://github.com/kimsreng/bench/commit/aebd75990a02e2991a963e4906ee068b59057b4b))
* easy-install for letsencrypt tls ([#1424](https://github.com/kimsreng/bench/issues/1424)) ([eba0f7a](https://github.com/kimsreng/bench/commit/eba0f7a54f5d08dc91e331af3edad9f0fbf196a3))
* **easy-install:** compatibility for easy install on PY2 ([#937](https://github.com/kimsreng/bench/issues/937)) ([495a038](https://github.com/kimsreng/bench/commit/495a038c458834c395519ad5f1a13b684fa16d11))
* **easy-install:** set default site to site1.localhost ([fde7a82](https://github.com/kimsreng/bench/commit/fde7a8209dbdbb8b50b413fe1174ae62bb06b395))
* empty states json condition ([67df07b](https://github.com/kimsreng/bench/commit/67df07b732389e04f1847d978c47c5f21e9f028a))
* ERROR! [DEPRECATED] ([caa5fa0](https://github.com/kimsreng/bench/commit/caa5fa0eadc0c00edc96b2fc765d2720192bb224))
* **error:** Python 2 does not provide stderr on CalledProcessError ([#762](https://github.com/kimsreng/bench/issues/762)) ([d1810e1](https://github.com/kimsreng/bench/commit/d1810e1dc1849daabace392c55b39057c09e98b9))
* fail2ban help message ([fec8921](https://github.com/kimsreng/bench/commit/fec89212143d122c647292195fd4b1f8024a55bd))
* Fetch env python if exists before returning fallback ([e5fa4df](https://github.com/kimsreng/bench/commit/e5fa4df5f9f37046dbada7215072822a39b6ea3b))
* file-uri while app initialisation ([2fed369](https://github.com/kimsreng/bench/commit/2fed369066a71e3631edba8f711e421499427803))
* FileNotFound bug ([#1383](https://github.com/kimsreng/bench/issues/1383)) ([965e178](https://github.com/kimsreng/bench/commit/965e178e8329c3af3defed984f79354d5a7ffbd7))
* **find:** Handle OS' PermissionError ([ea94752](https://github.com/kimsreng/bench/commit/ea947523b36211fbc73fc51c971f44794fd38d46))
* fix permissions for python3 bench init ([fce86fa](https://github.com/kimsreng/bench/commit/fce86fa896be6ed9a085d2fc73518737cf589857))
* fixed app states and checking/updating frappe version on install ([30a4ec3](https://github.com/kimsreng/bench/commit/30a4ec3b42db8d7e953521ef311c9a80515b4948))
* fixed app states and checking/updating frappe version on install ([42f4d74](https://github.com/kimsreng/bench/commit/42f4d74beb5418de2cfb418ab103dc6e568871d1))
* fixed args to sync-states ([c667be9](https://github.com/kimsreng/bench/commit/c667be90238585cedbf36ecc61e3ba938d2076cf))
* fixed frappe branch check ([6c15327](https://github.com/kimsreng/bench/commit/6c15327348789cefe474fa183c2d39cca6d45d78))
* fixed init in get-app and frappe versions ([88c2367](https://github.com/kimsreng/bench/commit/88c23673d6dc52d580444775dceab6783377829f))
* fixed init in get-app and frappe versions ([e3bd34c](https://github.com/kimsreng/bench/commit/e3bd34c12ca6f1e86150e811c6d23f3ab1196504))
* Fixed order of install ([281d96a](https://github.com/kimsreng/bench/commit/281d96ac160c84588f394beac43ddf4594c3bad3))
* fixed org, branch for apps mounted on disk ([#1293](https://github.com/kimsreng/bench/issues/1293)) ([c8ef822](https://github.com/kimsreng/bench/commit/c8ef8224d473b6b087fce2343f87e90acbdb5a93))
* fixed states sync ([7f37488](https://github.com/kimsreng/bench/commit/7f374887f494d5982002ca69727a6cbeef62839a))
* fixed update_app_states call ([#1326](https://github.com/kimsreng/bench/issues/1326)) ([45267fc](https://github.com/kimsreng/bench/commit/45267fc8979fe9bb7819a770df97482d87732577))
* **fonts:** remove unused setup_fonts method ([#878](https://github.com/kimsreng/bench/issues/878)) ([0d4ace9](https://github.com/kimsreng/bench/commit/0d4ace95a66f1f373a151ea48367325b1520970c))
* force checkout during switch_branch and quiet fetch ([9f467d8](https://github.com/kimsreng/bench/commit/9f467d88e4685b6ce22e4364f9956bcb0b9b19eb))
* force renew on monthly bases ([7dcd5f9](https://github.com/kimsreng/bench/commit/7dcd5f9ce3c3322f0a5d96f1b9624c6215f76448))
* force use PYPI packaged bench ([15b01e9](https://github.com/kimsreng/bench/commit/15b01e9451f8155a308fd1d047958c6f67b556a3))
* frappe app can exist without public folder ([13ed9be](https://github.com/kimsreng/bench/commit/13ed9beca5e42a139e05836713ade6bb1dfc2513))
* get_cmd_output handles exit codes if no output ([a032528](https://github.com/kimsreng/bench/commit/a03252881a0b0392a149eeb4963d651921783f22))
* get-app on existing apps ([e03f597](https://github.com/kimsreng/bench/commit/e03f597ac6edec87526e00d765f0dcf17d3653f4))
* get-app sets up node requirements ([03e512f](https://github.com/kimsreng/bench/commit/03e512fdab3c6b8240a4f290a554f72c686585f5))
* **get-app:** allow ssh urls ([7402807](https://github.com/kimsreng/bench/commit/74028074df18d7794761402dced742b6346b423a))
* **get-app:** handle existing directory and other formatting changes ([d1a3017](https://github.com/kimsreng/bench/commit/d1a3017172a415919f3335c4e43edd7488ea69b2))
* git depth, fixed requirements ([#845](https://github.com/kimsreng/bench/issues/845)) ([ce6b4c8](https://github.com/kimsreng/bench/commit/ce6b4c8a1136a3988a6bf42b444046cbdd047359))
* git stash requires user details pre git v2.21 ([a7a8790](https://github.com/kimsreng/bench/commit/a7a8790de6f18bd2dd572a71ceaf4cb868d81b49))
* handle app not found under GH frappe erpnext orgs ([b3842d9](https://github.com/kimsreng/bench/commit/b3842d9b305da87d689bea379049beee3dd1cbbb))
* Handle collisions while moving apps ([3709682](https://github.com/kimsreng/bench/commit/37096822319983302df1a9daf72d41035ad43f5b))
* Handle command execution failures ([dcdb15d](https://github.com/kimsreng/bench/commit/dcdb15d471f47ebfb42908d3b19bc2dac9e6d45a))
* Handle no args passed in CLI ([31e4aee](https://github.com/kimsreng/bench/commit/31e4aeeab8bca4a8d58ad72db735128670a7480b))
* Handle supervisor escalation better ([#1438](https://github.com/kimsreng/bench/issues/1438)) ([c690e8e](https://github.com/kimsreng/bench/commit/c690e8e7f53d20c2297734a0159f7b36d93a8f38))
* Handle tag fetching failures of disk mounted App inits ([117d456](https://github.com/kimsreng/bench/commit/117d456b16289f8a715c608a1265dd9a59368247))
* help for bench install without sudo ([2d43612](https://github.com/kimsreng/bench/commit/2d436126fd4c1e187bbb9b2685f2b7575dfe19d4))
* Hide irrelevant stacks during exc raise ([8175239](https://github.com/kimsreng/bench/commit/817523943414345bdd161b50c263f634b7a8f70d))
* Hit command cache before fetching all commands ([a94ea19](https://github.com/kimsreng/bench/commit/a94ea19bf43d0359c5f59d2aa886742eb8832c65))
* ignore org check fail if using cache ([aa12aab](https://github.com/kimsreng/bench/commit/aa12aabb26607f7f88ef639391720e9f6ab91494))
* ignore supervisor restart failures where possible ([#1400](https://github.com/kimsreng/bench/issues/1400)) ([7a63f4f](https://github.com/kimsreng/bench/commit/7a63f4f461e7c62ec1973dde92620c27259f0d8c))
* image replace and site creation ([f93f065](https://github.com/kimsreng/bench/commit/f93f065ba3477c3316f21422406d0f65e813c8eb))
* Import bench.cli ([27128c7](https://github.com/kimsreng/bench/commit/27128c7c18f7df694344305460eacb358df6ef35))
* import path for util ([ee6a967](https://github.com/kimsreng/bench/commit/ee6a967a205addf57b1e233d2451c8a191b28cec))
* importing reload caused issues in python2 ([47a9aca](https://github.com/kimsreng/bench/commit/47a9aca0e705c7f493bbea0724b56333652d2982))
* incorrect import statement ([699705f](https://github.com/kimsreng/bench/commit/699705f64b8e549e0a8322a0ea429a5d5361da07))
* incorrect import statement ([459432b](https://github.com/kimsreng/bench/commit/459432b1956b0f0651dc9303fcad8f300555ffe6))
* increase tar file limit ([d8ce1b3](https://github.com/kimsreng/bench/commit/d8ce1b3cb4f743a5842d203fd82ea8ebe2ba96f8))
* Initialize bench in get-app with --init-bench ([a2ccc30](https://github.com/kimsreng/bench/commit/a2ccc30bc365fb88a320559828082706944e0072))
* Initialize bench with Python 3 ([e24ca16](https://github.com/kimsreng/bench/commit/e24ca16c9021e74138c1894987e78791c71b2bd5))
* install app instead of requirements.txt ([d99780b](https://github.com/kimsreng/bench/commit/d99780b041fe7aceecb56984042ece59dd3b96e2))
* install missing dirmngr for debian installs ([2b6260d](https://github.com/kimsreng/bench/commit/2b6260d63ec62570efba123f369587ead6b9dc8f))
* install node modules if package.json exists ([67fb0a4](https://github.com/kimsreng/bench/commit/67fb0a4042d76eb8c988fba6b41b516fb22719e9))
* install one app at a time, frappe first ([4f0193c](https://github.com/kimsreng/bench/commit/4f0193ca9349d971e1ce3087c556b9710bc5db69))
* install pip via pacman, minor fixes ([f251fea](https://github.com/kimsreng/bench/commit/f251feae8727d3608f0e570af2032d75fc3eebe5))
* install supervisor on user if doesnt exist ([395b8df](https://github.com/kimsreng/bench/commit/395b8df895f22e4ca1d225744ab8c44b5bde896a))
* Install wheel during ansible setup ([61567be](https://github.com/kimsreng/bench/commit/61567be3f69aa34b11a60fbd807aed00f9dc40a7))
* install wheel in venv ([4996afb](https://github.com/kimsreng/bench/commit/4996afb012ef1f05e56e576bb472df9217b00a6b))
* **install:** Allow override of frappe_branch and erpnext_branch ([6a207ca](https://github.com/kimsreng/bench/commit/6a207ca57ab36d3d43b169b8a7609ba87dc8611b))
* **install:** Helpful logging ([2c4659a](https://github.com/kimsreng/bench/commit/2c4659a7aab2c4c8ed7734438ffc42360c9c6023))
* **install:** Install dev packages for Arm 64-bit ([df0562d](https://github.com/kimsreng/bench/commit/df0562d59b423f1d833c929a38ea5e380bbcae4f))
* **install:** Obey --without-site ([608b28c](https://github.com/kimsreng/bench/commit/608b28c2460adf2b6ee1504b21a7e69dfdb06a1e))
* **install:** SHow Debian 10 is supported, update MariaDB defaults ([fadf44d](https://github.com/kimsreng/bench/commit/fadf44d747fee577a6e81eac19c56d6b81a0f83b))
* invalid syntax for click option ([cac66a6](https://github.com/kimsreng/bench/commit/cac66a6b8811cb55049134ade75a9c8e86f56809))
* Invoke pip via python ([b0ccb6e](https://github.com/kimsreng/bench/commit/b0ccb6efbea33acdb07b3500a07b37c8ffbeae23))
* issue when ignore_exist is set and the path already exists 🐛 ([#910](https://github.com/kimsreng/bench/issues/910)) ([40f7e09](https://github.com/kimsreng/bench/commit/40f7e09c0f25e8dc05188d272d4c01c58de7229a)), closes [/github.com/frappe/bench/commit/7fb1484b7f5dae561a098ab2a01c7f209664f626#diff-237d6b07e1835fbd8e51e251f66b2ec0](https://github.com//github.com/frappe/bench/commit/7fb1484b7f5dae561a098ab2a01c7f209664f626/issues/diff-237d6b07e1835fbd8e51e251f66b2ec0)
* **lets-encrypt:** run command non interactively if flag passed ([7ccc275](https://github.com/kimsreng/bench/commit/7ccc2757929ab1aa4a7ccf8474e4d9541f351774))
* Log in ~/bench.log if not running inside bench directory ([28302f6](https://github.com/kimsreng/bench/commit/28302f67a30e061d771a5607f67b2b03b1205a7d))
* logging when in init-bench ([a26f3ce](https://github.com/kimsreng/bench/commit/a26f3ce564035e601e154ebadaa3af2c4deab4b9))
* logging when in init-bench ([de315f2](https://github.com/kimsreng/bench/commit/de315f27ad31b88ccf557e2257d455a3bed762b9))
* maintain worker and worker.error logfile in dev mode ([cac8375](https://github.com/kimsreng/bench/commit/cac837547c67fdfd89d3c7f4d916000600732e2b))
* merge conflicts ([61a864d](https://github.com/kimsreng/bench/commit/61a864de1198329b51b9416d54ac2e9923d9c7dd))
* merge conflicts ([ca45305](https://github.com/kimsreng/bench/commit/ca4530528c7f28ab6d98cbf889687b22fca535ad))
* Message per app when installing node deps ([bdc20a5](https://github.com/kimsreng/bench/commit/bdc20a54356f429f723f0b87599f5283e134b237))
* migrate_env silent failures ([7f1c5ad](https://github.com/kimsreng/bench/commit/7f1c5ad9c673f158885b083c39000d071f6400a0))
* minor fixes ([94105c0](https://github.com/kimsreng/bench/commit/94105c0aa8e565a25d6243fe9484098629de258d))
* minor fixes ([e629ca6](https://github.com/kimsreng/bench/commit/e629ca6f8679d2144394c143602a160424660484))
* Misc fixes ([#1294](https://github.com/kimsreng/bench/issues/1294)) ([eb71573](https://github.com/kimsreng/bench/commit/eb715735bbb79e5edd39e29c1b0e5587d2d3712c))
* missing installed branch ([af3c871](https://github.com/kimsreng/bench/commit/af3c871632843ffb8c8d0e78de097e15f0b8fd1e))
* mkdir -p to ignore `OSError`s ([d38b63a](https://github.com/kimsreng/bench/commit/d38b63a483deb0186828e82e09c4c650eb672d54))
* more reliable gunicorn restart ([2ec0c0a](https://github.com/kimsreng/bench/commit/2ec0c0a95ab896ed4d060b7774490015a2b3c320))
* move bench.env to bench.config.env ([1f4994d](https://github.com/kimsreng/bench/commit/1f4994d4347a92ee7cbfb7a0b9015f4837d7f1a5))
* Move logging to lower level App.get API ([4ba5422](https://github.com/kimsreng/bench/commit/4ba5422b65a3d29b462bdec1bf8dc4126483e20a))
* move update to utils ([2713a2e](https://github.com/kimsreng/bench/commit/2713a2e9cd7c254e6856e73dcc0389f6f8760fc0))
* nginx proxy buffer ([7f9bed4](https://github.com/kimsreng/bench/commit/7f9bed4c8e18114a54432e426e958281da7428ec))
* **nginx:** add redirect rules to avoid duplicate content ([7051aa3](https://github.com/kimsreng/bench/commit/7051aa3d4eb4eceb3d245b7b22a75be5444d6190))
* **nginx:** Allow specifying log_format setting ([bbf0169](https://github.com/kimsreng/bench/commit/bbf016999450943bc0f7917191265183cf41e265))
* **nginx:** set `proxy_http_version` to `1.1` ([7da62f9](https://github.com/kimsreng/bench/commit/7da62f96f29fbd12d42c0686abbc8adcb05c4049))
* no-backup option argument ([#842](https://github.com/kimsreng/bench/issues/842)) ([6dbf6b9](https://github.com/kimsreng/bench/commit/6dbf6b984640170fa71f67ae34401c7488b67606))
* no-git support for dependency resolver ([#1368](https://github.com/kimsreng/bench/issues/1368)) ([fcbc2ea](https://github.com/kimsreng/bench/commit/fcbc2eaa470dbd083d1a1be75dc79d71916d0a80))
* nodejs redis v4 interprets localhost as ipv6 address ([697939e](https://github.com/kimsreng/bench/commit/697939e2058f7e7ad81b1aee4848c60402d6b46f))
* only fetch current branch ([895c403](https://github.com/kimsreng/bench/commit/895c40327806d93d33507731cefed2d013ba117e))
* only fetch what is necessary, simplify & improve grepability ([82173c1](https://github.com/kimsreng/bench/commit/82173c1d42eaaed563f6f3ac17cda2e96b35b195))
* only get the specific branch for version check ([0ff8ddd](https://github.com/kimsreng/bench/commit/0ff8dddef960f63e35103285961f08f835da422e))
* override X-Forwarded-For address in bench manager ([53a8fed](https://github.com/kimsreng/bench/commit/53a8fedadc266a4ea9c02edc33480547857fc53b))
* parsing error ([#1364](https://github.com/kimsreng/bench/issues/1364)) ([4bc3a08](https://github.com/kimsreng/bench/commit/4bc3a086f2f433b99afb40bffab92f9c1de63ba6))
* Pass `skip_assets` while resolving dependant apps ([8275d67](https://github.com/kimsreng/bench/commit/8275d678f4dc0ad1902123f4f1c5f6bf4bce76b8))
* Pass abs path from get_env_cmd ([10473b6](https://github.com/kimsreng/bench/commit/10473b60076dde4080ce28222031a332ee7d313a))
* Pass cwd for cmd subprocess execution ([01b7759](https://github.com/kimsreng/bench/commit/01b77598ff2ff4cde4c75dad9b3a39526858c685))
* Patch to move archived_sites to archived/sites ([877e812](https://github.com/kimsreng/bench/commit/877e812fbbee2fcb65e3759175883096f5ea55a5))
* **patch:** Rename parent dir instead of moving individual dirs ([0bd0717](https://github.com/kimsreng/bench/commit/0bd0717f24936a51c209fad30ddcfdc3c4e83390))
* **pdf:** Use libssl1.0-dev instead of libssl-dev ([31fc3a0](https://github.com/kimsreng/bench/commit/31fc3a0ebb3f0532f1e099a4c6aae3ce641a75b7))
* perm while executing create user ([f23698a](https://github.com/kimsreng/bench/commit/f23698afd70d928cffbbc182e12295b16c481d1b))
* pin dependencies of requirements ([c660593](https://github.com/kimsreng/bench/commit/c660593a9ad0a99148a376913c5bec8bd77b675a))
* pip pinned to 19.3.1 after v20 breaking ([7498c8e](https://github.com/kimsreng/bench/commit/7498c8e497fa3357b4fc8267cba774525f307946))
* **playbooks:** pre v5.1 compatibility for playbooks folder ([08bc61a](https://github.com/kimsreng/bench/commit/08bc61a53a018717bccad44a48bd6e1b2b9b0beb))
* **playbooks:** Support wkhtmltox arm64 architecture ([d6d1b91](https://github.com/kimsreng/bench/commit/d6d1b91a79b3b74a5595a2b943041659ff5928bd))
* **playbooks:** wkhtmltopdf checksum string for debian 9 ([#969](https://github.com/kimsreng/bench/issues/969)) ([a7c52b4](https://github.com/kimsreng/bench/commit/a7c52b4059e5f4d07b9dfce4ed65c52a8ed10c5d))
* populate bench.log via bench.utils.log ([2fd86c9](https://github.com/kimsreng/bench/commit/2fd86c9eb6220ea565daf7a5be5a8a1e22750c60))
* port number mismatch when having multiple benches ([#1480](https://github.com/kimsreng/bench/issues/1480)) ([3c8cbbc](https://github.com/kimsreng/bench/commit/3c8cbbc023b551b56e7063fceb2d5e87f5b39317))
* PosixPath object has no attribute 'rstrip' ([aaf4856](https://github.com/kimsreng/bench/commit/aaf48566b71b784b5ba8f3e3347e4f82cb7d4827))
* **prerelease:** allow making prerelease for bench ([0290932](https://github.com/kimsreng/bench/commit/029093282831597f42f991e49ebd32c006f3ca95))
* prevent circular dependency ([7bcea60](https://github.com/kimsreng/bench/commit/7bcea6099da1a41ad530bdd85ff337f627039b80))
* Prevent Gunicorn child workers hangup ([36f2194](https://github.com/kimsreng/bench/commit/36f2194865a2f6067639383612a648ce39feef84))
* Print failing command with CommandFailedError ([a1d2c52](https://github.com/kimsreng/bench/commit/a1d2c5226b598ed4cfbb0a67b943bb6ab1ae825c))
* print help when no args passed ([228aeaf](https://github.com/kimsreng/bench/commit/228aeaf2fdf0205294825a40c6752b2c8abf6d7a))
* print required by in output ([5bb3b52](https://github.com/kimsreng/bench/commit/5bb3b52f23bf01ca138a359eaf22e020007375f8))
* process SSH git URLs ([c8494cf](https://github.com/kimsreng/bench/commit/c8494cffa6643f0ad2d586bde905b944df5d3f8d))
* process SSH git URLs ([660287a](https://github.com/kimsreng/bench/commit/660287a1a7ac0023acd177ae88aa9d14c88c063f))
* proper semantic version bumping ([64a3a5c](https://github.com/kimsreng/bench/commit/64a3a5c40ae7762b2c68697f74bce79f5a0eee3c))
* provision to pass container flag while setting up swap ([ee8a8fb](https://github.com/kimsreng/bench/commit/ee8a8fbbfb34998b1ff3184cdfd0a8e1335f88c0))
* pull app list from sites/apps.txt ([c2165b4](https://github.com/kimsreng/bench/commit/c2165b471a83931d6d829286ba719402ba7aced2))
* PY2 compatible regex ([4ae8ae2](https://github.com/kimsreng/bench/commit/4ae8ae21f791b6a15266c1c0eb5ea870bd77895f))
* raise (by default) when exec_cmd fails ([3995b92](https://github.com/kimsreng/bench/commit/3995b9237b07ef5bef2fbd6a35000b7faa88ab2c))
* Raise and handle Exception class ([c4b8391](https://github.com/kimsreng/bench/commit/c4b839171662092dc0754586e5e14304e55be613))
* random failings from subprocesses and command formatting ([#935](https://github.com/kimsreng/bench/issues/935)) ([b064987](https://github.com/kimsreng/bench/commit/b0649870eecaf7e00e4f4e122c2111016f1b8d59))
* **readme:** add ubuntu 18.04 to easy install ([4f8114f](https://github.com/kimsreng/bench/commit/4f8114f9418861ed68e527f58f1b6f6890623d98))
* **release:** accomodate future branches ([5699204](https://github.com/kimsreng/bench/commit/5699204a587a48425b271cc65b154a411d0170c5))
* **release:** don't fast-forward while merging ([c1bba94](https://github.com/kimsreng/bench/commit/c1bba9464871b1d1efe49a01b051895e06c9fa7c))
* **release:** handle release for multiple branches ([dd78011](https://github.com/kimsreng/bench/commit/dd78011717a4aaabe12ba40af817ed80bedf9afa))
* **release:** syntax error ([933d7a1](https://github.com/kimsreng/bench/commit/933d7a15b893f7faebc1eaba203e36f2cfaf15b8))
* Remove backup command ([#1345](https://github.com/kimsreng/bench/issues/1345)) ([0cd5fca](https://github.com/kimsreng/bench/commit/0cd5fca32226c40e8689d82ea1177fb6ab3520e3))
* remove bench and supervisor from sudoers ([51b81c3](https://github.com/kimsreng/bench/commit/51b81c399760581a57184e368f4a5e2bc4743b5f))
* Remove broken import path ([2c5c28b](https://github.com/kimsreng/bench/commit/2c5c28bbe249aebb89b8a3e45c8a1f8c9aa6fd68))
* remove deprecated pre_upgrade usage ([016b7da](https://github.com/kimsreng/bench/commit/016b7da9ffcfeb342d9ca28ed2aae51329ee87c4))
* Remove except-pass ValueError ([d9c8335](https://github.com/kimsreng/bench/commit/d9c8335fbf3344c982b604ffd1507c4c0cd4ff11))
* Remove frappe cmd caching in .bench.cmd ([f773529](https://github.com/kimsreng/bench/commit/f77352966b74defd053c2d73bb3fe942c4559eed))
* remove npm to fix ubuntu 18 install conflicts ([e9205b5](https://github.com/kimsreng/bench/commit/e9205b5032ea1302ebea0f853004340df035eb85))
* Remove PY2 compatibility code ([54d48f6](https://github.com/kimsreng/bench/commit/54d48f61a339718d173c52138c0652473fde1140))
* remove rem check from app-cache --clear ([4e170a2](https://github.com/kimsreng/bench/commit/4e170a2042c114e46b978c83413e2267194d957b))
* Remove set-default-site from CLI ([ed3f2d2](https://github.com/kimsreng/bench/commit/ed3f2d28fbf729ae14a0bdad74632a7332af9eb2))
* Remove src test ([b8ed4f6](https://github.com/kimsreng/bench/commit/b8ed4f6a4bc35f7a8935793c3616fc1258ff2685))
* remove supervisord under service and systemctl in sudoers ([39f8223](https://github.com/kimsreng/bench/commit/39f8223d6d0b82c7b867789a5593f11e4d353bef))
* Remove the infamous print style ([46b78f4](https://github.com/kimsreng/bench/commit/46b78f4a53485849fffa3354983f22f890fdc900))
* remove unnecessary - commands aliases ([e435500](https://github.com/kimsreng/bench/commit/e4355001e73d543fe380394f02092600fefaf7f9))
* remove unused method and use six to reload module ([#875](https://github.com/kimsreng/bench/issues/875)) ([d2d5772](https://github.com/kimsreng/bench/commit/d2d577201ddb1aa6927cf91652688111cd11d371))
* remove unused nodemodules before caching ([0e2e8b4](https://github.com/kimsreng/bench/commit/0e2e8b4da3abb74c55643568f6c30ab86a4ec353))
* remove unwanted `patches.txt` ([85500b7](https://github.com/kimsreng/bench/commit/85500b7751756b8a17304268f5514a0385991cc8))
* Remove virtualenv dependency ([e0f6b17](https://github.com/kimsreng/bench/commit/e0f6b1735d355e03d9e7dc221231ab33b7dec4c3))
* **remove_app:** use app name instead of app path ([e4e054e](https://github.com/kimsreng/bench/commit/e4e054e84010c8c1f3fe3ead55fbb715aee89c31))
* **remove-app:** Use App.name instead of App.repo for consistent App name ([a3b859b](https://github.com/kimsreng/bench/commit/a3b859bf50eb13ef24d82db47410fb4d63988331))
* removed erroneous file push ([f2fe569](https://github.com/kimsreng/bench/commit/f2fe56962fd93953b80a7b304c00c797afb1bb57))
* removed erroneous file push ([b7e46aa](https://github.com/kimsreng/bench/commit/b7e46aab6fce2aa5d2ec22fe3138870be11a8858))
* removed force renewal as it would extend by 3 months every month, now the job runs daily ([408676c](https://github.com/kimsreng/bench/commit/408676c80e3fa37e3794584b12e73c2060cfa55f))
* removed patch ([87edc4e](https://github.com/kimsreng/bench/commit/87edc4e10932a9ce92215fef00daada5f6817b7d))
* removed unnecessary requests while removing apps ([49900ce](https://github.com/kimsreng/bench/commit/49900ce74b6dcc109b5d5a2092fc9e35fb211a30))
* rename key ([75f8462](https://github.com/kimsreng/bench/commit/75f84625ad4b19f74bffa989c878ecda07b5c68b))
* replace certbot-auto with certbot ([#1303](https://github.com/kimsreng/bench/issues/1303)) ([a889325](https://github.com/kimsreng/bench/commit/a88932592eed1682fa57c4231bd71f54d52b7e67))
* replace shutil.move with Path.rename ([a648590](https://github.com/kimsreng/bench/commit/a648590be4334843f6e0f1a0f699dd55d2daca2e))
* requests package dependancy for centos ([9fe3a91](https://github.com/kimsreng/bench/commit/9fe3a91605fe47a507151c985eefa22c7f16effd))
* resolve filesystem app dependencies ([#1450](https://github.com/kimsreng/bench/issues/1450)) ([f3b55f7](https://github.com/kimsreng/bench/commit/f3b55f7785710cf293aaa00a087b1bd7e760e7cf))
* Respect bench config during restart ([25f49c2](https://github.com/kimsreng/bench/commit/25f49c2dbba998a7b11975a6f17034bdb050c3ab))
* restart proc manager if set in config ([#1391](https://github.com/kimsreng/bench/issues/1391)) ([c59d1ed](https://github.com/kimsreng/bench/commit/c59d1edee5e2c22f55f91ac946df8e09535c8927))
* restart supervisor service after conf update ([48f70ac](https://github.com/kimsreng/bench/commit/48f70aca65b8627dce6ff124ad1509c9641f1895))
* restart supervisord process after change in conf ([ec1acec](https://github.com/kimsreng/bench/commit/ec1acec788a78f8b6a1e695734a47163541694cd))
* **restart:** Setup restarts vars with fallback ([af14baf](https://github.com/kimsreng/bench/commit/af14bafe2137da799694a0ad3dd5a2b138c311e6))
* Return fallback list in cached_frappe_commands ([a015501](https://github.com/kimsreng/bench/commit/a01550169905a20b8322931338331cc80bc57766))
* Return repo_name if app_name doesn't exist ([aa1a1b9](https://github.com/kimsreng/bench/commit/aa1a1b9a718da1dcfb164f5035fe79a2af813677))
* return returncode in bench.utils.exec_cmd ([1928eaa](https://github.com/kimsreng/bench/commit/1928eaa2c5da8b5183f6b9e4990ae866e180a4c2))
* Revert print compatibility import ([753e36d](https://github.com/kimsreng/bench/commit/753e36d433b57ae742b2e02ec75d9615b0ebb358))
* Revert usage of app_name for repo name ([f7fbee9](https://github.com/kimsreng/bench/commit/f7fbee99d61a9fdf727a3efe1419eceb4148fb35))
* reverted changes made by erroneous commit ([b8aa008](https://github.com/kimsreng/bench/commit/b8aa00898f47f9400601a5ffdbde14af0844b005))
* reverted erroneous commits ([ff98aaf](https://github.com/kimsreng/bench/commit/ff98aaf198a34eac0afbcb67ddac0fb52b5df880))
* RQ crashes on Mac ([#1529](https://github.com/kimsreng/bench/issues/1529)) ([f5ab045](https://github.com/kimsreng/bench/commit/f5ab0459ece1d845966a504ab6c8dbb4a542b1e1))
* run backups every 6 hours, rather than every minute per 6 hours ([691687e](https://github.com/kimsreng/bench/commit/691687edbef00238166cd209717e66cd9fb74944))
* Run compileall in bench after update ([54e6bcf](https://github.com/kimsreng/bench/commit/54e6bcfe9c967137e0be00cefe93a5ddaec30056))
* run fix_user_permissions only if production or sudoers is set up ([fe02844](https://github.com/kimsreng/bench/commit/fe02844c69a849b4c1a826dbd16a4f5dc28127bc))
* run install script without sudo ([982b727](https://github.com/kimsreng/bench/commit/982b727a3c56cb422b6003474ab8d92a2d20a6ef))
* run patches for current user ([78dbdcb](https://github.com/kimsreng/bench/commit/78dbdcb3f18193ba03a54722a9e4a244896907b9))
* run test builds for py2.7 and py3.7 ([3ea6634](https://github.com/kimsreng/bench/commit/3ea66343284e45b72bbe1e2558f7cc6baadc274c))
* script to install pre-requisites ([e7f45e3](https://github.com/kimsreng/bench/commit/e7f45e36d2ba4f72821d2049d0f6ff25c02536de))
* **security:** Force download html, svg and xml files ([893cb88](https://github.com/kimsreng/bench/commit/893cb884eed520b6bea1a74ec28c37ac8c0a2767))
* separate out scripts ([b6dd496](https://github.com/kimsreng/bench/commit/b6dd496e35109165d796441450b35dc58e316c03))
* seperate colors from log, change exception ([7fb1484](https://github.com/kimsreng/bench/commit/7fb1484b7f5dae561a098ab2a01c7f209664f626))
* serious bug capable of deleting apps path ([a1db48b](https://github.com/kimsreng/bench/commit/a1db48b57ef7263e1bf2775f8738469f9074533f))
* Set correct remote_server for cloning ([9802fea](https://github.com/kimsreng/bench/commit/9802feaa9cc658b7c96911f3fcdc6e6f72b9ec6e))
* Set proper branch to clone ([217f27f](https://github.com/kimsreng/bench/commit/217f27f51188d6fc4fea9e3f86d88d70410ba1a7))
* set referrer-policy header in nginx config ([a4916d7](https://github.com/kimsreng/bench/commit/a4916d7b895f8d9840a0dbff647a66de06bcf6d5))
* Set remote_server attr "better" ([e3b9c2a](https://github.com/kimsreng/bench/commit/e3b9c2a239f020c4d64c67c8c48b856a8a164283))
* set translations download limit based on cpu cores ([7e7c396](https://github.com/kimsreng/bench/commit/7e7c3969a764faffe814e72a0940103c4bb69d67))
* Set verbosity if --verbose is passed anywhere period ([2caf7e7](https://github.com/kimsreng/bench/commit/2caf7e7d154cddddcfa98cda81cdfa11ae9e24a9))
* setup all apps is empty list is supplied ([7ab469a](https://github.com/kimsreng/bench/commit/7ab469af84be283098a17a01526c0e5572a16e3a))
* Setup chdir patch earlier ([db165d1](https://github.com/kimsreng/bench/commit/db165d1f9b0b10ca39f39d407737bd4f515d7d83))
* setup cron job for renewing ssl certificate ([#918](https://github.com/kimsreng/bench/issues/918)) ([92d2fbd](https://github.com/kimsreng/bench/commit/92d2fbdc1383a524579b5337c0e5233eddf35668)), closes [/github.com/frappe/bench/pull/918#issuecomment-589961301](https://github.com//github.com/frappe/bench/pull/918/issues/issuecomment-589961301)
* Setup exception handler for CommandFailedError only ([94a1b8c](https://github.com/kimsreng/bench/commit/94a1b8c3fb8bee513c02841f48a2d05ccaab6a53))
* setup libssl dependancy by checking distribution ([7af5e67](https://github.com/kimsreng/bench/commit/7af5e6732da71c7a190a31ea2828c6724e0d5e7c))
* setup nginx fails for broken site_config ([8b02bed](https://github.com/kimsreng/bench/commit/8b02bed71cd60d64d3fad1ea40e31884afbee552))
* setup requirements --python skips assets ([d0ebf7f](https://github.com/kimsreng/bench/commit/d0ebf7f4c4b17d96f8ee798cb83c7a6122db37ef))
* Show bench init job via bench get-app (conditional) ([225fce5](https://github.com/kimsreng/bench/commit/225fce5be68bf889e3b1cb8e7d52b212a2167a32))
* Show better user messages when failed to update supervisord ([d89f19e](https://github.com/kimsreng/bench/commit/d89f19e02ea8aba027f7205a6fe8fb2c93609ad7))
* Show correct src of bench source ([fe2d927](https://github.com/kimsreng/bench/commit/fe2d927133ea56a0c2a93505236384b7d4189b44))
* show if service manager not found, also log it ([629842a](https://github.com/kimsreng/bench/commit/629842a042be936e9bc1d42cdb9247ad94a2c2ae))
* Show pip's help menu when --help is passed in pip command ([6d10d75](https://github.com/kimsreng/bench/commit/6d10d75bb169b3ed3ad91c9c297cefc93f494448))
* Show step titles while running operations ([096c2cf](https://github.com/kimsreng/bench/commit/096c2cfe6b7a25d9a20c9fc81105c56855d49965))
* Show traceback if error occurs during init, get outside bench dir ([806d543](https://github.com/kimsreng/bench/commit/806d543fac93fafb844bd19e5b44d4b6196faa42))
* Show traceback in dev mode and set exit code on errors ([e074a1d](https://github.com/kimsreng/bench/commit/e074a1d886b1cb00f792a8cc781059b7ea2c2a4a))
* Show traceback on bench init failure ([30e3e72](https://github.com/kimsreng/bench/commit/30e3e725a88b081c0fdeb41c960dd3067a45dfe7))
* Show warning while using experimental features ([b7994e2](https://github.com/kimsreng/bench/commit/b7994e21b18b5d970e46f55e8fc2db89a2a4407e))
* single process to pip install requirements, quiet flag added ([1b0008d](https://github.com/kimsreng/bench/commit/1b0008d709ad15f379bc093ddec015169ba237c6))
* specify hatch version in release ([87b4b1f](https://github.com/kimsreng/bench/commit/87b4b1fd2a6d4e04e51230f2558b2573395ed823))
* ssl nginx directive deprecation ([a514a0e](https://github.com/kimsreng/bench/commit/a514a0e97b0ffe707a9aa26746d20b535719227e))
* supervisor command does not require sudo ([c5cf916](https://github.com/kimsreng/bench/commit/c5cf9164a6bc94193b5b3cb01c0df49b642e5494))
* support for local and remote apps when looking for dependencies ([2f17da1](https://github.com/kimsreng/bench/commit/2f17da1bf08168a21b97587b52755f84e04a3e90))
* support single required app ([c8205e4](https://github.com/kimsreng/bench/commit/c8205e485decf56ab47947a950ae84581efb5749))
* switch branches "better" ([dc307b6](https://github.com/kimsreng/bench/commit/dc307b6880d61956754d665aae37b6f9c3fab4b8))
* Switched to native GIT way to lookup branch names ([#1553](https://github.com/kimsreng/bench/issues/1553)) ([1751b2d](https://github.com/kimsreng/bench/commit/1751b2db5bcedc33276026f3283a4ff1f0d5ac04))
* sync apps file in init, imports and no warn in CI ([71d178d](https://github.com/kimsreng/bench/commit/71d178dde952742a02fb19bfac812c6db8ef9d9d))
* sync socketio port for old benches ([#1481](https://github.com/kimsreng/bench/issues/1481)) ([c2af169](https://github.com/kimsreng/bench/commit/c2af169dd6470a0887bb0422445519e0446e77ad))
* syntax error ([d55d29b](https://github.com/kimsreng/bench/commit/d55d29b8fd919e434ce2520d454259d41687a188))
* syntax error ([21925fa](https://github.com/kimsreng/bench/commit/21925fa06f3ad21fe6d2cb103b9da6a3daca1b83))
* take backup before pulling the code and make site available after restarting the processes ([9242b92](https://github.com/kimsreng/bench/commit/9242b927ca3574f781475b264b5d35cd1b71191a))
* **tests:** add --yes flag to production setup ([851b4c3](https://github.com/kimsreng/bench/commit/851b4c3275bde7608d26804b9134d93944be3b7e))
* **tests:** print traceback from errors ([6dc784f](https://github.com/kimsreng/bench/commit/6dc784fe4d33188e4095b1ce6480ff4e746c8eda))
* trailing slash deleting apps folder ([52ee67f](https://github.com/kimsreng/bench/commit/52ee67f298adb9939d9cee1266250968f35e8c0b))
* Trailing slash not setting app name properly ([357fcc0](https://github.com/kimsreng/bench/commit/357fcc0bbd7e0ea6f7546d61c5223f1288b89517))
* **travis:** Make install script verbose ([f57635e](https://github.com/kimsreng/bench/commit/f57635eebf45bdda85c5d5c4fa2efc15dcfc7ee1))
* **travis:** urllib3 ([8aa7c2b](https://github.com/kimsreng/bench/commit/8aa7c2b91356a72cebfed03749eca6b32d699939))
* **travis:** Use Ubuntu 16.04 ([1c8b4c0](https://github.com/kimsreng/bench/commit/1c8b4c032549af0822e2b027c32363491c71f2f0))
* trigger release ([f374e80](https://github.com/kimsreng/bench/commit/f374e80bcc8b12c4297a3e4ee054fc641d1b256c))
* Try setting supervisord conditionally ([7a4ade9](https://github.com/kimsreng/bench/commit/7a4ade9192ca451cfce87280ea05a89caba51054))
* typo cash to crash ([6dd0118](https://github.com/kimsreng/bench/commit/6dd01184462054c47de36884cf7e4ec735d50b44))
* typo fix ([22f3bc6](https://github.com/kimsreng/bench/commit/22f3bc6c360c5db49360b6893b3abbd6aabc6fa4))
* ubuntu iso version and packer path ([064fb66](https://github.com/kimsreng/bench/commit/064fb662804fbdbdf41d1d768acaec211669eabd))
* Unpin setuptools, six and virtualenv ([03576d1](https://github.com/kimsreng/bench/commit/03576d10b45046659fc356fb8113fddf06d2bc33))
* Unshallow clone if update without --reset ([4cadf2c](https://github.com/kimsreng/bench/commit/4cadf2c719f5ecf2580c28b4b2e687d7d8a69e6b))
* update bench install methods ([a728416](https://github.com/kimsreng/bench/commit/a728416c08450e19c6e251d23d5429ee4fb36a68))
* update bench requirements for user ([489d3b2](https://github.com/kimsreng/bench/commit/489d3b250107ae56c00969dc83145f186badbf4c))
* update check condition ([3e749ba](https://github.com/kimsreng/bench/commit/3e749ba547f80f40eefce7775ab5c2c6bbb8e8a9))
* Update Click requirement ([3b0bcb7](https://github.com/kimsreng/bench/commit/3b0bcb7616f8a97e788758cde4ac46c3a1360ee0))
* Update documentation for user directory ([294b399](https://github.com/kimsreng/bench/commit/294b399942e3b143fdb235efe9176460f12ad9d7))
* update easy install location ([803fa2d](https://github.com/kimsreng/bench/commit/803fa2d6acf4b1b835825d14f5336822230591c9))
* update install_app with using_cached flag ([10bb5a4](https://github.com/kimsreng/bench/commit/10bb5a47949512c59ac04919912e2249711c926a))
* update letsencrypt renew cron frequency ([7a7b0fe](https://github.com/kimsreng/bench/commit/7a7b0fea3786c1c4009fb580e96ae16c84f69cb3))
* Update package lists and setup prereqs before setting up script ([550f55d](https://github.com/kimsreng/bench/commit/550f55d1460cc29197c7ec9dddc59b0d81684e9f))
* update packages even if pip not in path ([b9bb944](https://github.com/kimsreng/bench/commit/b9bb9440d9cb335a0aa2ec7f807add634d7ff29f))
* update pinned requirements ([025665a](https://github.com/kimsreng/bench/commit/025665a09347d6e52903f9e2c4994865d0098add))
* update pre url coercion check ([6f074a7](https://github.com/kimsreng/bench/commit/6f074a7b3e627f305650d8a5061903c600547191))
* update supervisord and sudoers for old benches ([e12208d](https://github.com/kimsreng/bench/commit/e12208dc25a3c034fc0a39dc17f52ce3e2e77d76))
* update supervisord conf and reload, log everything ([c43da5b](https://github.com/kimsreng/bench/commit/c43da5be68b770cea30385b5f2169deb69f2caef))
* update supervisord.conf while generating supervisor.conf ([1f0a5ce](https://github.com/kimsreng/bench/commit/1f0a5ce5569ae2846294c73565f82bd356ae2b1d))
* updated apps.sync to support new app_name parameter ([7980709](https://github.com/kimsreng/bench/commit/7980709a2075c606f894454ee15673cddd639203))
* Updated command help and verbosity while setting crontab ([c9abac2](https://github.com/kimsreng/bench/commit/c9abac299a3b46f08b0b4406449bb82ed90a60a2))
* updated manifest.in ([1ba8c46](https://github.com/kimsreng/bench/commit/1ba8c463ded0b3d95e7a3b87e9df1cbeb826ddbc))
* updated sequence of package updates ([c7381de](https://github.com/kimsreng/bench/commit/c7381defd3fcaf447710316db579f3aa7d16ae66))
* updated URL for MacOS guide ([#1037](https://github.com/kimsreng/bench/issues/1037)) ([d6a1222](https://github.com/kimsreng/bench/commit/d6a12221da0ceaa0c30a1a2c55fde101ed41bef0))
* Upgrade pip first ([#1120](https://github.com/kimsreng/bench/issues/1120)) ([17ef5da](https://github.com/kimsreng/bench/commit/17ef5da5ce3a7061a01c890ae8ca90dcbb6c7957))
* Use 'develop' bench if not specified! ([0ad4421](https://github.com/kimsreng/bench/commit/0ad44214cf739812ce8dc0175f5774bdd376ebf1))
* Use == for dict comparison ([e80daf8](https://github.com/kimsreng/bench/commit/e80daf8c3e78ae5a675d5c9d1b75a92d1fe57eae))
* Use == to define had pinned requirement ([beac865](https://github.com/kimsreng/bench/commit/beac8651532db2ec8a55aa9d931b0cf3bde1ef25))
* use a tuple instead of a list ([c599ee8](https://github.com/kimsreng/bench/commit/c599ee86dd73e149e21564d75f202170170b7236))
* Use App.app_name over repo attr ([4f42392](https://github.com/kimsreng/bench/commit/4f423923b4c0aa646e9c4f1d7a04bf10bc420f61))
* use correct path for compiling py files ([b3a0757](https://github.com/kimsreng/bench/commit/b3a0757e38be2acf4e6bc8c8427717096d5e8bb0))
* use easy_install of develop + path update ([172a7c2](https://github.com/kimsreng/bench/commit/172a7c266b0f67a8306e0c761e6a61ae9d7c8ce7))
* use existing function ([656358c](https://github.com/kimsreng/bench/commit/656358cd597414f0c710ecf93407644e3745a141))
* use frappe_user from site_config and use getpass as fallback ([a6f72c7](https://github.com/kimsreng/bench/commit/a6f72c770f821944aa9cf45654416044f833c44c))
* use frappe13 in py 3.7 ([5b1b84b](https://github.com/kimsreng/bench/commit/5b1b84bc5f8938f48d4bc2c25e64b55c10ac0660))
* Use hardcoded python3 env cmd for Bench.python ([c9c6bf4](https://github.com/kimsreng/bench/commit/c9c6bf4512ba0c1c58df92a2384347bd77cc558d))
* Use NullHandler for commands executed outside a bench dir ([31f2999](https://github.com/kimsreng/bench/commit/31f2999b4b971176b57c09ecef5d5edfe39dcb53))
* use os.remove instead of shutil.rmtree for symlinks ([#1372](https://github.com/kimsreng/bench/issues/1372)) ([9fd15f6](https://github.com/kimsreng/bench/commit/9fd15f6fddf337e442a517f56be6cea5750fd6f9))
* Use python* to match any pattern in env ([24b9af6](https://github.com/kimsreng/bench/commit/24b9af605b08849ee506677a6c812c1e87ea3326))
* use ref param instead of branch for get_required_deps (GitHub contents API) ([#1362](https://github.com/kimsreng/bench/issues/1362)) ([9131ba0](https://github.com/kimsreng/bench/commit/9131ba05dbc72c6a482b54219db8adad2adf9158))
* use reload only if imported ([4d02801](https://github.com/kimsreng/bench/commit/4d02801f5328e02cd0e77fc1a5bd6223800f1411))
* use remote_addr instead of user-defined header ip ([a6bb587](https://github.com/kimsreng/bench/commit/a6bb58717d3a1ae0fbe735f30d3e7baa1a2e7923))
* use six to check for string types ([#874](https://github.com/kimsreng/bench/issues/874)) ([75ffa03](https://github.com/kimsreng/bench/commit/75ffa0325e5a4d2c223c2db6148f51b6d2f0cab1))
* use specified python for venv ([df84c27](https://github.com/kimsreng/bench/commit/df84c2772d8eb7334f37ec7380bed3ac424b0cc4))
* Use subscript instead of method for regex ([e126ff2](https://github.com/kimsreng/bench/commit/e126ff2439439668e7a48aa06df9d8d0e66963fb))
* use sys version info instead of user entry ([ff48ced](https://github.com/kimsreng/bench/commit/ff48ceda915c011f91f56fac58b607fa119155b8))
* Use test frappe app - frappe_docs instead of wiki or chat ([c636c7c](https://github.com/kimsreng/bench/commit/c636c7c133f6559d0b18c0c855b88e4419c412bb))
* Use venv module instead of virtualenv ([f60c2d0](https://github.com/kimsreng/bench/commit/f60c2d0def62eb689aecd6f6174dc8dd7130b42f))
* User messages on get-app actions ([d33d987](https://github.com/kimsreng/bench/commit/d33d987b2c6286401d7cf3f9902e348d2fad356d))
* using distro instead of platform ([967d149](https://github.com/kimsreng/bench/commit/967d1498f6cb7a41bd02a324b12899f23aca93e9))
* using local clones if path is passed in get-app ([5f37135](https://github.com/kimsreng/bench/commit/5f37135ff283e7540811e8100008e03ae3907176))
* utf8mb4_general_ci ([f2e7702](https://github.com/kimsreng/bench/commit/f2e7702fdefe30ee8d0546da5dc09e9042f7f570))
* **utils:** sort imports, add parenthesis on ambigupus expr ([c64a7e9](https://github.com/kimsreng/bench/commit/c64a7e90e694737519e8a568320badb00885a48a))
* **utils:** Strip * from cmd via get_env_cmd ([6ae1997](https://github.com/kimsreng/bench/commit/6ae1997bffb3d75083fb5c720336d036b18b22ce))
* validate branch before update ([d32d905](https://github.com/kimsreng/bench/commit/d32d905567d40c99387cf7dc8cbbcaa57e631f65))
* validate branch error message + cleanup ([b856516](https://github.com/kimsreng/bench/commit/b85651653b8511fe8f683fb8f101a1be0178b27d))
* validate branch in bench update ([5762724](https://github.com/kimsreng/bench/commit/5762724cc70639aead1ef4606b42e07fcd5ecc8d))
* version check backward compatibility ([#1409](https://github.com/kimsreng/bench/issues/1409)) ([23eede5](https://github.com/kimsreng/bench/commit/23eede5fd33501f58770d32ac2f4ba1793339b82))
* version check before AbsoluteLinkError ([3502c77](https://github.com/kimsreng/bench/commit/3502c776c0c265f767d1c159e332b0e23aa9ed29))
* version check before data_filter import ([80f2e70](https://github.com/kimsreng/bench/commit/80f2e70af68a8f089b558b1a814c39ecd0b24389))
* version comparison ([6f3f8f6](https://github.com/kimsreng/bench/commit/6f3f8f6eb007ed6e07ae4c7932a41e083c5cecba))
* warning on pip reinstall ([d979751](https://github.com/kimsreng/bench/commit/d979751e0c44f8b519e77a4bb11c7e6e3f6333ee))
* wrap tarfile with error handling ([30f301e](https://github.com/kimsreng/bench/commit/30f301e3ffa8a2561160ec740d2d046355905c97))
* wrong flag description ([e9c046d](https://github.com/kimsreng/bench/commit/e9c046d56b15e39630490bc64ebaaa6727623186))
* wrong help string ([7a89ccd](https://github.com/kimsreng/bench/commit/7a89ccd53a6b5bec60bd60d636d08cd5d6981fb7))

### Features

* "bench update" from non-bench directory ([c93a25d](https://github.com/kimsreng/bench/commit/c93a25d336499a06c45251eb59160d34f234d650))
* `bench setup requirements --dev` ([#1196](https://github.com/kimsreng/bench/issues/1196)) ([b51f0ed](https://github.com/kimsreng/bench/commit/b51f0ed2b2c3c26b29e8d038bec134275dbff808))
* `bench validate-dependencies` command ([#1534](https://github.com/kimsreng/bench/issues/1534)) ([ab9b617](https://github.com/kimsreng/bench/commit/ab9b6172a4da8d230637069f06c910090d9b4505))
* ability to rollback failed bench init ([f0c1893](https://github.com/kimsreng/bench/commit/f0c189356534bd2ae6375722f390bc49dbccb40a))
* add `live_reload` to default_config ([9f74ec0](https://github.com/kimsreng/bench/commit/9f74ec0adb3616104a7004b16fec1c9d25cca834))
* add `max_requests` to gunicorn args ([b57838f](https://github.com/kimsreng/bench/commit/b57838f36615b659930a4f38cfd14375097a8ad1))
* Add alias for remove-app: rm, remove ([6890d98](https://github.com/kimsreng/bench/commit/6890d98847bd308d7e0be88369475ed4db062e34))
* add bench app-cache helper command ([42ac015](https://github.com/kimsreng/bench/commit/42ac015bff96b2318d359f24a5ded7a48c0a1a18))
* add commit hash and branch in `states.json` ([9004e1d](https://github.com/kimsreng/bench/commit/9004e1dd6a473a40bfb43fe663867e117e076f95))
* Add custom workers in Procfile ([#1201](https://github.com/kimsreng/bench/issues/1201)) ([593b80e](https://github.com/kimsreng/bench/commit/593b80eec96502901068bf5a7c734f48b71e5d31))
* add GHA tests ([e76c7dc](https://github.com/kimsreng/bench/commit/e76c7dccf57c122064dafc574b1dfa6f3d13493e))
* add no-git option to new-app command ([2a25a6d](https://github.com/kimsreng/bench/commit/2a25a6d2d9257c0a49877a6ed33905e89c8d9c23))
* Add pre-commit checks ([b1b8d70](https://github.com/kimsreng/bench/commit/b1b8d70055868ce1cf6b36789dfebc0e08936ef9))
* add required and order of install ([9ac091b](https://github.com/kimsreng/bench/commit/9ac091b4d9caac1567fe5cd4f16ba5096cbc8e22))
* Added app states ([fdab757](https://github.com/kimsreng/bench/commit/fdab757f9b4972e3a782fed75850595dbe9892d1))
* Added app states ([549e8e2](https://github.com/kimsreng/bench/commit/549e8e2a1d6fd59fb87fc30dbdfab1322f8f4a19))
* Added app_name attribute to App class ([35504f8](https://github.com/kimsreng/bench/commit/35504f81b3340b544da87316046086a0134ae5ff))
* Added bench command for resolve and install ([cdaeea1](https://github.com/kimsreng/bench/commit/cdaeea1d4a332d3c28cfb39191f46b5081a090ee))
* Added bench command for resolve and install ([7a311a2](https://github.com/kimsreng/bench/commit/7a311a242d574396df82a06cec1dc5b491a26bd8))
* added bench find command ([963b2f9](https://github.com/kimsreng/bench/commit/963b2f9ce5ba5fb1426f00f01dd790ef60212a14))
* added bench.utils.log and updated is_bench_directory api ([e322815](https://github.com/kimsreng/bench/commit/e32281557f69af748573bfd02d4ccfe44e42bd3d))
* Added exception for invalid version ([ddd498e](https://github.com/kimsreng/bench/commit/ddd498ebd03f3858705f1c6c8cbb8b4e2eac1a91))
* added option to provide custom queues ([e12f53d](https://github.com/kimsreng/bench/commit/e12f53d1a56d598d90307bdfa755db02cc37a30c))
* added specific  checks for git URLs ([30473d3](https://github.com/kimsreng/bench/commit/30473d353560b8bc0aeb7c5eb8b7c420ca2f3a21))
* Added support for backward compatibility in states ([a1a35ee](https://github.com/kimsreng/bench/commit/a1a35eed0e4729d337894474bb56f2da7a32ba49))
* added support for fetching dependencies from hooks.py ([58319a2](https://github.com/kimsreng/bench/commit/58319a21b7b40ddc76704e7505ce8ca90a2ae882))
* added support for fetching dependencies from hooks.py ([7f678a3](https://github.com/kimsreng/bench/commit/7f678a304713c33905156242f275e7521983f41c))
* Added support for mounted app in get_dependencies ([0b862c0](https://github.com/kimsreng/bench/commit/0b862c07457c9914840bd0ce87a90306fec37456))
* Aliased Commands ([b75d352](https://github.com/kimsreng/bench/commit/b75d3524548713f87fc8b8aa2791930563575507))
* allow custom image in easy install ([8ba685c](https://github.com/kimsreng/bench/commit/8ba685cc50ee333cf764181e82096c80ece4ab28))
* allow raise option in get_cmd_output ([6bb30e3](https://github.com/kimsreng/bench/commit/6bb30e314848d33ebc595b2e32745caf64b89a6e))
* Allow skipping supervisord config check in setup supervisor ([a3af905](https://github.com/kimsreng/bench/commit/a3af905d929fd1e69e35561d9601d56951650444))
* alternative request to validate branch ([8dd92c3](https://github.com/kimsreng/bench/commit/8dd92c32b1b9dc0f51e7fe1f1bfc7f9738dedbb8))
* App Meta Base Class ([ce00798](https://github.com/kimsreng/bench/commit/ce00798b5d0c6506b4164999fd8c286dcd5b7f88))
* auto-stash changes in bench (tool) on update ([186c0ea](https://github.com/kimsreng/bench/commit/186c0eafdac0adfc75905026368f8f04d6f8da05))
* bench apps commands caching ([c0afa04](https://github.com/kimsreng/bench/commit/c0afa041c83af699c87d9915ef73c5749abbdb94))
* bench drop {bench_path} ([906ad5a](https://github.com/kimsreng/bench/commit/906ad5a09936bd36af867cdf52b640f39344470f))
* bench pip * ([f0596c5](https://github.com/kimsreng/bench/commit/f0596c5928746d45984ee50dbc527d591803e9b1))
* ben…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Installation fail: Wrong pip version.
2 participants