Soham Kulkarni
e1aa789acf
Merge pull request #32971 from sokumon/newsletter-removal
...
refactor: seperate newsletter into app
2025-06-27 11:59:02 +05:30
Sagar Vora
2e5c8bea03
feat: frappe.utils.orjson_dumps
2025-06-26 17:37:51 +05:30
Sagar Vora
cda7699187
perf: use orjson in utils
2025-06-26 17:37:51 +05:30
Sagar Vora
b857a4099a
perf: use orjson for faster request processing
2025-06-26 17:37:51 +05:30
sokumon
2b8d21d483
fix: add utm utils back
2025-06-24 18:43:28 +05:30
Sagar Vora
ae78eb5458
chore: remove old unused cache
2025-06-24 16:52:46 +05:30
Faris Ansari
d584b8691d
Merge pull request #32381 from netchampfaris/api-v2-fixes
...
feat!: Apply permissions in frappe.qb.get_query
Enhancements:
- Supports applying permissions
- Strict input parsing
BREAKING CHANGE:
```py
# Before
frappe.qb.get_query("Task", fields=["sum(is_completed) as count"])
# After
frappe.qb.get_query("Task", fields=[{"SUM": "is_completed", "as": "count"}])
```
2025-06-23 15:50:25 +05:30
Ankush Menat
18ecd6603b
perf: ~2x faster scheduling ( #33027 )
...
* perf: Use cached settings
* perf: Cache parsed crons, ~2x faster scheduling
2025-06-20 12:43:22 +00:00
Ankush Menat
b57eb60486
perf: chain db transactions ( #33004 )
...
* perf: chain transactions
Frequently used rollback/commits can be modified to chain previous
transaction.
This reduces one query to DB in most requests.
* perf: chain transactions in requests
2025-06-19 12:37:39 +05:30
sokumon
6be013804d
fix: remove tests utils and workspace card
2025-06-18 16:23:36 +05:30
Faris Ansari
56c3a55665
fix: print traceback instead of errprint
2025-06-18 15:56:11 +05:30
Faris Ansari
fc86f9737b
fix: print error traceback in api/v2
2025-06-18 15:51:13 +05:30
Akhil Narang
865e086bd4
build: bump dependencies ( #32975 )
...
* build(deps): bump babel
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump filelock
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump GitPython
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump Jinja2
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump Pillow
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump PyJWT
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump pypdf
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump pydyf
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump werkzeug
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump bs4
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump bleach
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump chardet
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump croniter
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump cryptography
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump pyopenssl
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump cssutils
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump markdown2
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump markupsafe
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump num2words
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump openpyxl
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump phonenumbers
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump psutil
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump pydantic
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump pyotp
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump dateutil
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump ipython
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump pytz
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump hiredis
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump requests-oauthlib
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump requests
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump rsa
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump sql_metadata
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump tenacity
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump traceback-with-variables
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump tomli
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump uuid-utils
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump xlrd
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump zxcvbn
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump markdownify
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump google libraries
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump posthog
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* build(deps): bump vobject
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
* fix(zxcvbn): set max password length as 128
We allow checking till 128 characters, v4.5.0 has a default max of 72
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
---------
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-06-18 12:33:36 +05:30
Ankush Menat
6091040e97
fix: Skip redis cache signal if redis is down ( #32967 )
...
https://github.com/frappe/frappe/pull/32888#issuecomment-2975345660
2025-06-17 13:59:31 +00:00
Sagar Vora
b3e1eda4c8
feat: global frappe.in_test flag ( #32960 )
...
* feat: global `frappe.in_test` flag
* feat: helper utility to toggle `frappe.in_test`
* fix: use `toggle_test_mode` util
* fix: use `frappe.in_test`
* chore: add comment explaining global `in_test`
* chore: ignore commit replacing flag usage
* test: temporarily disable `frappe.in_test`
this worked earlier because flag was set in werkzeug.local which was separate for API test client
* test: add comment explaining change
2025-06-17 19:19:31 +05:30
Sagar Vora
cb0d06455b
chore: use frappe._dev_server instead of local.dev_server
2025-06-17 12:03:08 +05:30
Ejaaz Khan
9720dd8141
Merge branch 'develop' into timeline_format
2025-06-11 17:11:49 +05:30
Ankush Menat
3167e03133
fix: invalidate persistent caches
2025-06-11 00:28:38 +05:30
Ankush Menat
12ab20f705
fix: Change local variable name
...
Shouldn't be same as function name
2025-06-10 23:52:27 +05:30
Ankush Menat
e4bc7f361b
Revert: DocRef ( #32866 )
...
- Hardly used anywhere
- Too many hardcoded `__value__` calls without which it's not usable.
- Another type to worry about
2025-06-10 05:20:56 +00:00
Vengadesh27
b2059545f4
Merge branch 'develop' into timeline_format
2025-06-06 20:55:11 +05:30
Ankush Menat
a278ff2356
chore: remove invalid return type
2025-06-05 21:38:14 +05:30
Ankush Menat
47a47a9b5d
refactor!: Change internal datastructure of db.value_cache
...
It's now a defaultdictionary of `[doctype][name/filters][fieldname]`
This allows us to implement granular clearing and improve usage of this cache.
2025-06-05 14:46:03 +05:30
Ankush Menat
051aba3049
fix(DX): Fix type annotations for custom cached_property ( #32785 )
...
+ Avoid custom implementation on newer python versions entirely.
2025-06-04 16:37:35 +00:00
rohitwaghchaure
5c6b2b5bec
refactor: track completed app setup wizards and re-run the setup wizard upon new app installation. ( #32640 )
2025-06-03 12:36:22 +05:30
Ankush Menat
fd29e9c464
fix: Smaller batch size for global search ( #32720 )
...
10K is quite large for a single batch.
2025-05-29 17:13:01 +00:00
Ankush Menat
03713cfd80
perf: faster time parsing ( #32701 )
...
Same as previous date and datetime improvement, this uses C parser
instead of python `parser`.
2025-05-28 15:56:34 +05:30
Vengadesh
4659ee2a00
chore: rename field 'show_absolute_datetime_format' to 'show_absolute_datetime_in_timeline'
2025-05-27 22:19:02 +05:30
Vengadesh
77361c1fe8
fix: field spelling updated
2025-05-20 21:00:21 +05:30
Vengadesh
80173e9077
feat: Configurable Timeline Date Format using settings
2025-05-20 20:49:19 +05:30
Ankush Menat
516836c4e5
chore: update misleading docstring for scheduler ( #32601 )
2025-05-20 10:01:27 +00:00
Ankush Menat
85f8ccadf7
Revert "feat: support reraising with error cause" ( #32523 )
...
This reverts commit 153d7cb7a3 .
2025-05-15 17:35:18 +05:30
Akhil Narang
8d42b4d3d6
Merge pull request #32268 from akhilnarang/drop-example-email-address-creation
...
fix: don't create example email domains and email accounts
2025-04-29 12:50:29 +05:30
Soham Kulkarni
6305e848b4
fix(safe_exec): add get_content_hash ( #32265 )
...
* fix(safe_exec): add get_content_hash
* fix: replace exposed function with sha256
* fix: rename function to sha256_hash and make it consistent
2025-04-27 13:37:25 +05:30
Ankush Menat
856513423f
fix: recorder auto-disable ( #32296 )
...
This broke with client cache implementation... oopsie.
2025-04-25 11:32:55 +00:00
Akhil Narang
39523916d4
fix: don't create example email domains and email accounts
...
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-23 14:53:56 +05:30
Ankush Menat
70e56b2e14
perf: Selectively switch to LIFO ordering when queue is starved ( #32226 )
...
When queue is overloaded every job gets delayed by size of the queue,
this means even interactive jobs like prepared reports face significant
wait times.
This flag allows developer to selectively enable LIFO on such jobs where
ordering doesn't matter. Any time we observe queue to be too large,
we'll insert the job at front so it gets highest priority.
This is a common strategy to deal with queue starvation, we are only
applying it explicitly because job execution order matters for
correctness in some cases.
2025-04-23 11:54:21 +05:30
Sagar Vora
e08efc8a64
perf: use cached user and compile regex
2025-04-18 17:41:42 +05:30
gavin
792f1c237f
Merge pull request #32167 from gavindsouza/bp-pr-32074
...
perf(events): get_events performance & Google Calendar Integration fixes
2025-04-16 13:33:33 +02:00
Ejaaz Khan
bdfcf92093
Merge pull request #32140 from rehanrehman389/illegal-character-fix
...
fix: illegal characters in Excel export
2025-04-16 16:46:13 +05:30
rehansari26
8dc96658cf
chore: format code using pre-commit
2025-04-16 15:22:43 +05:30
rehansari26
a0991b62a3
fix: illegal characters in excel export
2025-04-16 15:17:35 +05:30
Soham Kulkarni
e038da5129
Merge pull request #32160 from sokumon/boilerplate-ci
...
fix(boilerplate): update mariadb in ci
2025-04-16 14:11:32 +05:30
sokumon
3ae2baeaf1
fix(boilerplate): update mariadb in ci
2025-04-16 13:58:24 +05:30
Ankush Menat
31e672f985
perf: 10000s of times faster global search ( #32147 )
...
In a new installment of *"how did it ever work"* - global search wasn't
filtering by the matched filter, just ranking. I have no idea why this
is being done here but it's far from a good idea from performance POV.
Not adding `MATCH` in where clause makes the fulltext index worthless.
2025-04-16 09:06:00 +05:30
Gavin D'souza
551be4f6ab
fix: Clear site test records log before running test
...
Not sure if this was intentional - there is no documentation as far as i
can tell
2025-04-15 18:28:21 +02:00
Akhil Narang
8106e72981
refactor: use a database file directly, instead of an SQL file
...
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-15 13:59:16 +05:30
Akhil Narang
6c51381e9d
fix(check_database): add sqlite support
...
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-15 13:59:16 +05:30
Akhil Narang
26fb2f0db0
fix(password): add sqlite compat
...
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-15 13:59:16 +05:30
Akhil Narang
ad32216040
fix: support sqlite
...
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-15 13:59:16 +05:30