2
0
mirror of https://github.com/frappe/bench.git synced 2024-11-14 17:24:04 +00:00
Commit Graph

2329 Commits

Author SHA1 Message Date
Alan
8c125c6f62
Merge branch 'develop' into get-app-cache 2024-01-23 15:07:13 +05:30
18alantom
a3d0c2cf9c chore: bump Jinja appease CI 2024-01-23 13:40:21 +05:30
18alantom
4e170a2042 fix: remove rem check from app-cache --clear 2024-01-19 19:28:57 +05:30
18alantom
c5ec4f7528 chore: rename commit-hash to cache-key 2024-01-19 19:18:13 +05:30
18alantom
42ac015bff feat: add bench app-cache helper command 2024-01-19 14:59:28 +05:30
18alantom
30f301e3ff fix: wrap tarfile with error handling
- ensure return to cwd after tarring
2024-01-18 18:06:08 +05:30
18alantom
0e2e8b4da3 fix: remove unused nodemodules before caching 2024-01-18 17:44:25 +05:30
18alantom
683a421e43 refactor: use env to trigger using-cached flag
Click supports pulling args from an envvar if it is present,
this would be quicker and cleaner than calling a dummy command
to check if the feature is supported
2024-01-18 16:23:04 +05:30
18alantom
d177d8ff63 fix: check if installed FF supports use-cached 2024-01-18 13:04:50 +05:30
Ankush Menat
8d3270e4ad perf: add Cache-Control header for assets
closes https://github.com/frappe/bench/issues/1154
2024-01-17 20:38:47 +05:30
Akhil Narang
20ccfdff8f
Merge pull request #1520 from akhilnarang/supervisor-startretries
feat: set startretries in supervisor configuration
2024-01-15 16:34:51 +05:30
18alantom
10bb5a4794 fix: update install_app with using_cached flag 2024-01-15 15:56:45 +05:30
Akhil Narang
deadc7c7c2
feat: set startretries in supervisor configuration
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-15 14:23:24 +05:30
18alantom
7bcea6099d fix: prevent circular dependency
- put check_existing_dir back in its place
2024-01-15 13:40:26 +05:30
Akhil Narang
9460a46ac3
chore: simplify output of bench setup supervisor when supervisor isn't installed
Seeing the whole stacktrace isn't too useful here

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-15 13:34:58 +05:30
Akhil Narang
7a89ccd53a
fix: wrong help string
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-15 13:33:49 +05:30
18alantom
87d4aa3b10 feat: cache get-app artifacts by commit_hash 2024-01-15 12:02:47 +05:30
Himanshu Shivhare
209f716b5b
chore: fix typo (#1517) 2024-01-11 14:13:18 +05:30
Ankush Menat
0056cdf310
Merge pull request #1507 from akhilnarang/optimize-restart
feat(supervisor): restart each group separately
2024-01-10 23:05:57 +05:30
Akhil Narang
839bd7c630
feat(supervisor): restart each group separately
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-07 16:12:10 +05:30
Ankush Menat
a834d864bb
Merge pull request #1486 from revant/fix-verbose
fix: pass verbose to yarn or npm install
2023-11-29 11:19:45 +05:30
Ankush Menat
2ec0c0a95a fix: more reliable gunicorn restart
killasgroup will ensure that all child processes die even if gunicorn
fails to do it. This isn't truly required because stopwaitsecs and
gunicorn graceful timeout work fine. In any case, if supervisor has to
send SIGKILL, it better send it to entire process group.
2023-11-03 21:38:47 +05:30
Ankush Menat
255c9301e9
Merge pull request #1494 from frappe/dev_bench
feat: flag to setup bench with developer mode enabled
2023-11-02 19:45:27 +05:30
Ankush Menat
f29e25a5d2 feat: flag to setup bench with developer mode enabled
Dev dependencies are not installed if developer_mode is not enabled.
When creating a new bench it's not possible to modify this config
upfront, so offer a flag to do it instead.

Note:
- Disabled by default.
- Very few people need this, those who write and run tests locally primarily.
- You mostly should not do this in CI, do `bench setup requirements --dev` explicitly instead.
2023-11-02 14:28:21 +05:30
Ankush Menat
52f704777b
Merge pull request #1493 from frappe/timeout
fix: Prevent Gunicorn child workers hangup
2023-11-02 12:11:09 +05:30
Ankush Menat
36f2194865 fix: Prevent Gunicorn child workers hangup
Problem:

- Prerequisite: long running reqeust is going on.
- `bench restart` is requested.
- supervisord sends sigterm to gunicorn master process.
- gunicorn passes it to all child table and waits for graceful shutdown (30 seconds)
- supervisord has no chill, and sends sigkill to master process in 10 seconds
- gunicorn master proesss is dead, so now child workers will keep running until they complete request which can take a really long time.
- This entire time the sites will be down.

Fix:
- Explicitly encode default graceful_timeout in config - 30 seconds.
- Make supervisor wait 10 more seconds for gunicorn to do its thing, then only send sigkill.
2023-11-02 11:40:07 +05:30
Ankush Menat
53a8fedadc fix: override X-Forwarded-For address in bench manager 2023-10-19 17:06:21 +05:30
Ankush Menat
96f1229648
Merge pull request #1489 from akhilnarang/mysql-to-mariadb
refactor(treewide): use `mariadb` commands and service instead of `mysql`
2023-10-10 15:09:31 +05:30
Akhil Narang
8f3f1a48a6
refactor(treewide): use mariadb commands and service instead of mysql
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-10-10 13:49:03 +05:30
Ankush Menat
57937a3811
Merge pull request #1484 from revant/custom-image-easy-install
feat: allow custom image in easy install
2023-09-24 10:07:31 +05:30
Revant Nandgaonkar
fde7a8209d fix(easy-install): set default site to site1.localhost 2023-09-22 13:27:15 +05:30
Revant Nandgaonkar
f93f065ba3 fix: image replace and site creation 2023-09-22 13:20:30 +05:30
Revant Nandgaonkar
00391bfeb9 feat: pass verbose to npm install 2023-09-14 04:35:30 +05:30
Revant Nandgaonkar
346d08d30f feat: pass verbose to yarn install 2023-09-14 04:29:58 +05:30
Ankush Menat
dcae3e35cf
Merge pull request #1485 from ankush/localhost
refactor: use 127.0.0.1 instead of localhost
2023-09-13 15:58:45 +05:30
Ankush Menat
672eca10a7 test: fix expected failing tests 2023-09-13 15:44:17 +05:30
David Arnold
697939e205 fix: nodejs redis v4 interprets localhost as ipv6 address
But the redis only binds to 127.0.0.1, not ::1.

Avoid this problem by being explicit.
2023-09-13 15:43:06 +05:30
Revant Nandgaonkar
8ba685cc50 feat: allow custom image in easy install 2023-09-12 14:27:24 +05:30
Ankush Menat
c2af169dd6
fix: sync socketio port for old benches (#1481) 2023-09-06 09:46:01 +05:30
Ankush Menat
3c8cbbc023
fix: port number mismatch when having multiple benches (#1480) 2023-08-29 14:38:29 +05:30
Ankush Menat
5a2c052b9b
feat: Multi queue consumption (#1475)
Ref: https://frappe.io/blog/engineering/reducing-memory-footprint-of-frappe-framework
2023-08-07 14:28:02 +05:30
Ankush Menat
87efb75a08
refactor!: Reuse redis_cache instace for socketio (#1382)
WARNING: Just a POC. You're free to modify your setup to test this out.

Summary:
- After this change bench wont generate config for redis_socketio
  instance.
- Instead we set the same port as redis_cache service for use in
  socketio. i.e. both will share same instance.

Code changes:

- Config will have this difference:

```diff
- "redis_socketio": "redis://localhost:12000",
- "redis_cache": "redis://localhost:13000",
+ "redis_socketio": "redis://localhost:13000",
+ "redis_cache": "redis://localhost:13000",
```

- supervisord/systemd wont start redis_socketio service
- for development setups: redis_socketio service is removed from procfile.

Why?

- Currently this redis instance is used only to ship messages from python
to nodejs server... which is largely stateless (only pub/sub channels)
- This change reduces 1 running process. Less resources for this ~= more
  resources for other running things.

TODO:
- [ ] decicisions - should we even do this? this should be optinal?
- [ ] refactor progressbar in frappe
- [ ] Tests - manual, FC, docker, automated
- [ ] "migration" plan

All dependent deployment projects will likely have to refactor their code to drop this service, shouldn't be too much work.
Example: Frappe cloud, Frappe Docker.
2023-08-07 12:55:19 +05:30
Ankush Menat
77ebdbe6f9
ci: fix test versions (#1474) 2023-08-07 12:27:02 +05:30
Ankush Menat
036cb6291e
fix: don't compile python files manually. (#1469) 2023-07-04 19:52:05 +05:30
Ritwik Puri
480e35c1c7
Merge pull request #1446 from gavindsouza/app_name-repo
fix: Handle apps with different repo & app names
2023-06-02 13:49:20 +05:30
Gavin D'souza
d9c8335fbf
fix: Remove except-pass ValueError 2023-06-02 12:41:56 +05:30
Gavin D'souza
f7fbee99d6
fix: Revert usage of app_name for repo name 2023-05-31 14:00:24 +05:30
Gavin D'souza
e80daf8c3e
fix: Use == for dict comparison 2023-05-31 14:00:24 +05:30
Gavin D'souza
4f423923b4
fix: Use App.app_name over repo attr 2023-05-31 14:00:24 +05:30
Gavin D'souza
3af6058d1b
fix: Archive app for different repo/app names 2023-05-31 14:00:24 +05:30