[Release Notes] bench v5.1.0

Our default branch, develop has had a few changes since v5.0. We’ve decided to push only bug fixes to master and all other updates will continue to be pushed to develop and branch v5.x will be maintained as Bench Version 5 [stable]

Major Updates:

  • bench removed from frappe_sudoers

now commands prefixed with sudo bench will require passwords. The current frappe_sudoers file will only contain NOPASSWD setup for Nginx related commands.

  • supervisor runs as frappe_user by default

From being run as a root user, with this update your existing benches will update your supervisord.conf and will attempt to restart it. If you face any problems, like “http://localhost:9001 refused connection”, restarting supervisord should fix the issue.

Here, frappe_user refers to the user under which the current Frappe environment is setup.

Change Log:

  • chore(tests): drop PY2 testing for frappe > v12 (#992)
  • chore: changed bench.utils.log API prefix (#964)
  • chore: drop dead code (#998)
  • chore: renamed project to match with PyPI (#961)
  • chore: set apps to None by default (#973)
  • chore: skip restart on bench setup requirements (#975)
  • docs: fix readme docker section (#990)
  • docs: fixed typo on running update (#968)
  • feat(bench update): allow pull-only update on specified apps (#921)
  • feat: check for newer versions on PyPI (#960)
  • feat: faster bench (#967)
  • fix(backups): setup backups for bench sites (#972)
  • fix(get-app): allow ssh urls (#995)
  • fix(get-app): update node requirements (#983)
  • fix(logging): cleaner bench logs (#999)
  • fix(playbooks): pre v5.1 compatibility for playbooks folder (#988)
  • fix(playbooks): wkhtmltopdf checksum string for debian 9 (#969)
  • fix: IUS release repo (#1004)
  • fix: Message per app when installing node deps (#959)
  • fix: add playbooks in the python package (#980)
  • fix: don’t run yarn install while setting up py requirements (#1001)
  • fix: exit with appropriate return code (#1006)
  • fix: install node modules only if package.json exists (#985)
  • fix: remove bench and supervisor from sudoers (#955)
  • fix: restart supervisord process after change in conf (#991)
  • fix: show warning if bench is not installed via PYPI (#934)
  • refactor: bench readme and rename license file (#958)

Release Link:


for my understanding.

  1. will the Easy Install script pull this new bench version then from now on?
  2. will v5.1.0 be any cure to the many unsuccessful installation attempts via the Easy Install script?
  3. will existing instance be getting 5.1.0 on a bench update operation?

The Easy Install Script hasn’t been updated for a while and thus still clones the ‘master’ branch by default which is v5.0 but you can change the branch you want it to clone with --bench-branch I believe. Any changes in the playbooks are ported to this branch as well.

The script seems to work well on tested distributions. Although what’s tested is only tracked in the README as major releases, which is far from ideal. The playbooks don’t work for any of the newer distributions due to various changes. We currently don’t have a maintainer for playbooks and the project would really benefit if someone so bothered by its failures takes it up :grin:. For everyone else, there’s always Frappe Docker.

bench update has stopped updating bench since v5.0.

Will appreciate instructions how to switch bench to branch v5.x so future updates are applied - also since bench update no longer updates bench - how to update bench?

I am currently on v5.0 which was installed using pip3 install frappe-bench

Just like you upgrade any other python package.

pip3 install --upgrade frappe-bench

for a specific version

pip3 install frappe-bench==v5.0.0

do you mean that bench has to be update separately (because it is not included in a bench update operation any longer)?

Can you share the steps to do this?

is it maybe …

  • pip3 install frappe-bench==[v5.x.x] or
  • pip3 install --upgrade frappe-bench

… on top of an existing bench?

the bench CLI tool is different from your bench directories. It is just as good as any other Python package installed globally and managed by pip. You’ll find @mujeerhashmi’s answer helpful:

1 Like