2
0
mirror of https://github.com/frappe/bench.git synced 2025-01-10 17:24:41 +00:00
Commit Graph

259 Commits

Author SHA1 Message Date
Aradhya
e629ca6f86 fix: minor fixes 2022-02-17 21:48:40 +05:30
Aradhya
bba4019579 feat: printing resolved dependencies when using resolve-deps flag wih get-app 2022-02-17 21:38:01 +05:30
Aradhya
7e28a3dd9e fix: added code removed via erroneous commit 2022-02-07 12:24:50 +05:30
Aradhya
c8dfe39c05 refactor: using hooks.py instead of toml files to read dependencies 2022-02-07 10:21:50 +05:30
Aradhya
42f4d74beb fix: fixed app states and checking/updating frappe version on install
fix: fixed valid branch check in init
2022-02-07 10:16:50 +05:30
Aradhya
e3bd34c12c fix: fixed init in get-app and frappe versions 2022-02-07 10:00:38 +05:30
Aradhya
2363fe38d5 refactor: moved resolve and install to get-app 2022-02-07 09:53:55 +05:30
Aradhya
549e8e2a1d feat: Added app states 2022-02-07 09:34:35 +05:30
saxenabhishek
d41e05e24f feat: introduced simple resolver 2022-02-07 09:29:14 +05:30
Gavin D'souza
23b37a3606 style: Re-order import statement 2022-01-04 17:08:17 +05:30
Gavin D'souza
e3b9c2a239 fix: Set remote_server attr "better"
So better here is relative. The point was to not have the parsing break
everything. So, idk whats org and repo now right off the bat...and since
we're not using this info, we dont need to care about it rn
2022-01-04 17:04:45 +05:30
Gavin D'souza
0898e2d2a2 fix: Don't recompute URLs when name passed in App 2022-01-04 16:23:16 +05:30
Gavin D'souza
9802feaa9c fix: Set correct remote_server for cloning
Fixes https://github.com/frappe/bench/issues/1228
2021-12-28 12:35:59 +05:30
Gavin D'souza
217f27f511 fix: Set proper branch to clone
Fixes https://github.com/frappe/bench/issues/1242
2021-12-28 12:35:06 +05:30
gavin
b0ad6426a8
Merge pull request #1222 from gavindsouza/reload-bench
refactor: bench restart
2021-12-21 15:29:58 +05:30
Rohan Bansal
660287a1a7 fix: process SSH git URLs 2021-12-07 15:16:49 +05:30
Gavin D'souza
814bcc6320 refactor: Bench restart
* Commonify reloading processes' logic
* Add functionality to restart web workers in development
* Use Bench.reload instead
2021-12-02 14:21:52 +05:30
phot0n
2a25a6d2d9 feat: add no-git option to new-app command 2021-12-01 00:00:18 +05:30
Gavin D'souza
357fcc0bbd fix: Trailing slash not setting app name properly
Re-do of https://github.com/frappe/bench/pull/1021, somewhat
2021-11-30 11:33:02 +05:30
Gavin D'souza
a17af670df style: Black-ish make & app 2021-11-29 18:57:40 +05:30
Gavin D'souza
8275d678f4 fix: Pass skip_assets while resolving dependant apps 2021-11-29 18:55:47 +05:30
Gavin D'souza
a2ccc30bc3 fix: Initialize bench in get-app with --init-bench 2021-11-29 18:34:58 +05:30
Gavin D'souza
1b2bb87ab7 refactor: Bench verbosity
It's off by default. If you want it enabled, pass --verbose or -v
following `bench`. The verbosity only changes how pip installs work.
Other stuff is immaterial at this point.

Eg: bench -v setup requirements
2021-11-26 16:24:56 +05:30
Gavin D'souza
6081690d7b refactor(minor): python packages setup 2021-11-26 12:47:29 +05:30
Gavin D'souza
d63a9883e0 feat(minor): Bench.python property that points to env python 2021-11-26 11:54:32 +05:30
Gavin D'souza
225fce5be6 fix: Show bench init job via bench get-app (conditional)
This happens when dynamic-feed is enabled
2021-11-18 18:13:14 +05:30
Gavin D'souza
f117959801 feat: Dynamic Output rendering
Each operation can be broken down to multiple jobs. For instance, the
update operation can be broken down into: setting up bench dirs, env,
backups, requirements, etc.

Each step has a lot of output since Frappe requires a lot of complex
stuff to be done as a pre-requisite. Bench tries to simplify a lot in a
single command. Once, a step is completed, it's output is not really
required. So, we can ignore it to reduce the noise.

Here's where the `bench.cli.fancy` variable kicks in. Along with the
refactored log and new step wrapper, it makes the above thing possible.

At this point, there's no way to set this var from the end user...given
I'm still developing this. In the later commits, the idea is to pass a
flag similar to pip's --use-feature flag.
2021-11-18 01:00:04 +05:30
Gavin D'souza
cd1f526d09 perf: Cache Bench and App instantiation 2021-11-18 00:39:48 +05:30
Gavin D'souza
cd252d3476 refactor: setup dev requirements
* Remove unwanted log message 🤢. It was inconsistent...this had to be
  done...rip
* Fix missing import - install_python_dev_dependencies
* Don't setup node + python requirements when --dev flag is passed
2021-11-17 23:56:55 +05:30
Gavin D'souza
30e3e725a8 fix: Show traceback on bench init failure
Other changes:
* Invoke internal init function instead of invoking click
command. This was done to avoid handling random Exceptions that are done
in the command definition
* os.chdir after initializing new bench in get_app
2021-11-17 23:55:15 +05:30
Gavin D'souza
b6fc562b48 refactor: get_app flow
* Changes in get_app fix path/cwd issues and order of resolving deps: py
  -> dev py -> yarn
* Pass verbosity in setup_app_dependencies via get_app
* Say hi to new utils: get_available_folder_name, get_traceback
2021-11-17 23:45:30 +05:30
Gavin D'souza
4ba5422b65 fix: Move logging to lower level App.get API 2021-11-15 12:40:20 +05:30
Gavin D'souza
13ed9beca5 fix: frappe app can exist without public folder
other change:
* sync apps.txt manually after dep apps are also setup; right before
  build step
2021-11-15 12:39:33 +05:30
Gavin D'souza
5170048d6d style: Black-ish app.py for readability 2021-11-15 12:37:43 +05:30
Gavin D'souza
68c0549c18 refactor(get_app): Workflow for clones/install 2021-11-15 12:37:03 +05:30
Gavin D'souza
79980c3c55 fix: Archived app naming, apps.txt sync
* apps.txt wasn't being synced in time so the build was failing, this
  changes that
* Apps archived on the same day weren't being numbered properly...it
  went from _1 to _1_2 and so forth. This is fixed to show _1, _2 and so
  on
2021-11-13 14:54:08 +05:30
Gavin D'souza
3709682231 fix: Handle collisions while moving apps 2021-11-13 14:23:49 +05:30
Gavin D'souza
17edb4797b fix: Don't fetch meta for rm app 2021-11-13 14:23:08 +05:30
Gavin D'souza
1330e66d07 style: Flake8 + Black-ish
Tried styling and following standards over teh following modules:
* bench.app
* bench.bench
* bench.exceptions
* bench.utils
2021-11-13 03:01:55 +05:30
Gavin D'souza
e08a12477d chore: Get rid of import * utils 2021-11-13 00:19:12 +05:30
Gavin D'souza
71d178dde9 fix: sync apps file in init, imports and no warn in CI 2021-11-12 20:31:25 +05:30
Gavin D'souza
ee6a967a20 fix: import path for util 2021-11-12 18:56:24 +05:30
Gavin D'souza
53e811fe0a feat: New methods in Bench class
New methods added in Bench class:
* excluded_apps property
* shallow_clone property
* apps property - check if frappe app & sort
* sync: Sync the apps.txt file from the installed set of Frappe apps
* build: Build bench assets
* reload: Reload the Frappe processes - supervisor restart

New methods added in BenchApps class:
* add/append: Adding an App object to this, installs the app on the
  Bench
* remove: Removing an App from here, uninstalls and archives the app
2021-11-12 18:09:35 +05:30
Gavin D'souza
54f9741385 feat: New methods in the App Class
Methods available in the App class:
* get: Clone remote/local repos into set bench
* remove: Uninstall from env & move app into `archived/apps` folder.
  Changed location from `archived_apps`
* install: Install app's Frappe, Python & Node dependencies on set bench
* uninstall: Uninstall Python package of the Frappe App. Does nothing
  else...just a `pip uninstall`
2021-11-12 17:58:24 +05:30
Gavin D'souza
1f11cf4847 chore: Use newer import paths
* Although the utils refactor was done in such a way that there was no
need of changing import paths, a cleanup was due.
* Got rid of duplicated utils
* Remove unused imports
2021-11-12 17:57:03 +05:30
Gavin D'souza
984959beb8 refactor: Adoption of new style Bench notations
* Updated multiple functions
* Updated flow & re-ordered steps of `bench init` - tested with multiple
  args
* Updated exceptions
2021-10-30 02:32:04 +05:30
Gavin D'souza
153546afd7 refactor: Simplify Bench with OOP
Goals:
- Commonify bench operations in a way that intuitive
- Get rid of the multiple duplicate functions because it's so hard to
  understand flow in the codebase ;)
- Eliminate the need to guess, re-guess and pass bench info in each
  function that needs to do literally anything
- Increase my happiness index because I just realised that I'm the top
  contributor of this project and I'd like to make it my own.
- Adopt the principles of Least Surprise & The Principle of The Bigger Smile (of DHH) [inspired by ruby & ror]

Changes:
- The bench module has Bench and the action classes that can be accessed
  through the bench object
- Used the Bench class to access properties like sites, apps & run (to execute commands in context) to reduce effort and clutter
- Style improvements & minor changes included
2021-10-30 02:25:38 +05:30
Gavin D'souza
b59379c5a9 refactor(minor): AppMeta class
* Fix tuple addition
* Rename App to AppMeta - it's more apt given how Bench classes are
  being structured now
2021-10-30 02:06:10 +05:30
Gavin D'souza
c5a38b3647 refactor: Exceptions, Setup & Styles 2021-10-21 16:37:49 +05:30
Gavin D'souza
c060ce7b54 refactor(minor): bench install-app
Getting rid of the dependency on the manual coloring of all prints using
color
2021-10-20 19:43:10 +05:30