Compare commits

...

462 Commits

Author SHA1 Message Date
smilerz
762b83934a Remove unsupported platform from Docker build 2025-12-12 09:26:52 -06:00
smilerz
ae820877d5 Merge pull request #4308 from smilerz/upstream-pr-20251212-043308
Sync 7 commits from fork: chore(deps): bump boto3 from 1.42.4 to 1.42.5 in the pip-patches group
2025-12-12 08:33:21 -06:00
GitHub Action
0d1b37997a Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-12-12 04:33:08 +00:00
dependabot[bot]
8990f4bbcb chore(deps): bump boto3 from 1.42.4 to 1.42.5 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.42.4 to 1.42.5
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.42.4...1.42.5)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 04:26:07 +00:00
dependabot[bot]
c265b9a729 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.10.0...15.11.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-version: 15.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 04:33:49 +00:00
dependabot[bot]
6625943701 chore(deps): bump pytubefix in the pip-patches group
Bumps the pip-patches group with 1 update: [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `pytubefix` from 10.3.5 to 10.3.6
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.3.5...v10.3.6)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 10.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 04:28:08 +00:00
dependabot[bot]
788c2088f8 chore(deps): bump pytest from 9.0.0 to 9.0.2 in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 9.0.0 to 9.0.2
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.0...9.0.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-10 04:30:34 +00:00
dependabot[bot]
629e9dc881 chore(deps): bump django-treebeard in the pip-minors group
Bumps the pip-minors group with 1 update: [django-treebeard](https://github.com/django-treebeard/django-treebeard).


Updates `django-treebeard` from 4.7.1 to 4.8.0
- [Changelog](https://github.com/django-treebeard/django-treebeard/blob/master/CHANGES.md)
- [Commits](https://github.com/django-treebeard/django-treebeard/compare/4.7.1...4.8.0)

---
updated-dependencies:
- dependency-name: django-treebeard
  dependency-version: 4.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-10 04:25:58 +00:00
dependabot[bot]
ec2ee2bfad chore(deps): bump boto3 from 1.42.0 to 1.42.4 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.42.0 to 1.42.4
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.42.0...1.42.4)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 04:31:50 +00:00
dependabot[bot]
b24f1da8b5 chore(deps): bump pytest from 8.4.2 to 9.0.0
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.4.2 to 9.0.0.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 04:26:28 +00:00
smilerz
88a1099f06 Merge pull request #4293 from smilerz/upstream-pr-20251208-043911
Sync 4 commits from fork: chore(deps): bump boto3 from 1.41.5 to 1.42.0 in the pip-minors group
2025-12-08 08:06:42 -06:00
GitHub Action
bf574c16f4 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-12-08 04:39:11 +00:00
dependabot[bot]
6cac9a71ed chore(deps): bump boto3 from 1.41.5 to 1.42.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.41.5 to 1.42.0
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.41.5...1.42.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 04:32:24 +00:00
dependabot[bot]
6858a60fb1 chore(deps): bump django from 4.2.26 to 4.2.27 in the pip-patches group
Bumps the pip-patches group with 1 update: [django](https://github.com/django/django).


Updates `django` from 4.2.26 to 4.2.27
- [Commits](https://github.com/django/django/compare/4.2.26...4.2.27)

---
updated-dependencies:
- dependency-name: django
  dependency-version: 4.2.27
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 04:27:00 +00:00
dependabot[bot]
01f1c8c5c8 chore(deps): bump beautifulsoup4 in the pip-patches group
Bumps the pip-patches group with 1 update: [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/).


Updates `beautifulsoup4` from 4.14.2 to 4.14.3

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-version: 4.14.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-04 04:23:22 +00:00
smilerz
e45d25beb4 Merge pull request #4278 from smilerz/upstream-pr-20251202-002017
Sync 20 commits from fork: regenerate yarn.lock
2025-12-01 18:27:14 -06:00
smilerz
bec1580991 Merge pull request #324 from smilerz/dependabot/npm_and_yarn/vue/codemirror/autocomplete-6.20.0
chore(deps): bump @codemirror/autocomplete from 6.19.1 to 6.20.0 in /vue
2025-12-01 18:22:41 -06:00
GitHub Action
f453995aa3 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-12-02 00:20:17 +00:00
dependabot[bot]
cfe163d5a6 chore(deps): bump @codemirror/autocomplete from 6.19.1 to 6.20.0 in /vue
Bumps [@codemirror/autocomplete](https://github.com/codemirror/autocomplete) from 6.19.1 to 6.20.0.
- [Changelog](https://github.com/codemirror/autocomplete/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/autocomplete/compare/6.19.1...6.20.0)

---
updated-dependencies:
- dependency-name: "@codemirror/autocomplete"
  dependency-version: 6.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 00:19:32 +00:00
smilerz
51c3ce4c56 regenerate yarn.lock 2025-12-01 18:13:43 -06:00
smilerz
77fd354a22 update yarn.lock 2025-12-01 18:13:00 -06:00
dependabot[bot]
c2a42c572c chore(deps-dev): bump workbox-webpack-plugin from 7.3.0 to 7.4.0 in /vue
Bumps [workbox-webpack-plugin](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-webpack-plugin
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 18:13:00 -06:00
smilerz
0bd53daed7 Merge pull request #328 from smilerz/dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0
chore(deps-dev): bump workbox-navigation-preload from 7.3.0 to 7.4.0 in /vue
2025-12-01 16:50:04 -06:00
smilerz
6358ac8b18 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0 2025-12-01 16:46:58 -06:00
smilerz
02eca7a50c updated lock file 2025-12-01 16:37:17 -06:00
smilerz
f45e847ad2 Merge pull request #320 from smilerz/dependabot/npm_and_yarn/vue/workbox-window-7.4.0
chore(deps): bump workbox-window from 7.3.0 to 7.4.0 in /vue
2025-12-01 15:24:27 -06:00
smilerz
5555c48bcb Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-window-7.4.0 2025-12-01 15:21:03 -06:00
smilerz
295e0a12e7 Merge pull request #329 from smilerz/dependabot/npm_and_yarn/vue/workbox-background-sync-7.4.0
chore(deps-dev): bump workbox-background-sync from 7.3.0 to 7.4.0 in /vue
2025-12-01 15:19:43 -06:00
smilerz
b2402acccf Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0 2025-12-01 15:17:53 -06:00
smilerz
167cf1b693 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-background-sync-7.4.0 2025-12-01 15:16:28 -06:00
smilerz
606ba1fa45 Merge pull request #339 from smilerz/dependabot/npm_and_yarn/vue/node-forge-1.3.2
chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /vue
2025-12-01 15:16:08 -06:00
dependabot[bot]
c4ec9c9b0f chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /vue
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.1 to 1.3.2.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 20:45:10 +00:00
smilerz
c2ec3b94a9 Merge pull request #327 from smilerz/dependabot/npm_and_yarn/vue/workbox-precaching-7.4.0
chore(deps-dev): bump workbox-precaching from 7.3.0 to 7.4.0 in /vue
2025-12-01 14:13:46 -06:00
smilerz
163deaff28 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-window-7.4.0 2025-12-01 14:11:04 -06:00
smilerz
cf14bf2f68 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-precaching-7.4.0 2025-12-01 14:10:22 -06:00
smilerz
12facb53e4 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0 2025-12-01 14:09:59 -06:00
smilerz
89b8598cd7 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-background-sync-7.4.0 2025-12-01 14:09:16 -06:00
smilerz
33db1e49a1 Merge pull request #319 from smilerz/dependabot/npm_and_yarn/vue/prettier-3.7.1
chore(deps-dev): bump prettier from 3.6.2 to 3.7.1 in /vue
2025-12-01 13:18:37 -06:00
dependabot[bot]
96c89f7def chore(deps-dev): bump prettier from 3.6.2 to 3.7.1 in /vue
Bumps [prettier](https://github.com/prettier/prettier) from 3.6.2 to 3.7.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.6.2...3.7.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.7.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 19:15:13 +00:00
smilerz
a536f58daa Merge pull request #318 from smilerz/dependabot/npm_and_yarn/vue/npm-patches-34df835779
chore(deps): bump the npm-patches group in /vue with 4 updates
2025-12-01 13:11:59 -06:00
dependabot[bot]
cb0372343f chore(deps): bump the npm-patches group in /vue with 4 updates
Bumps the npm-patches group in /vue with 4 updates: [@codemirror/view](https://github.com/codemirror/view), [axios](https://github.com/axios/axios), [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc) and [webpack-bundle-tracker](https://github.com/django-webpack/webpack-bundle-tracker).


Updates `@codemirror/view` from 6.38.6 to 6.38.8
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.38.6...6.38.8)

Updates `axios` from 1.13.1 to 1.13.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.1...v1.13.2)

Updates `@vue/compiler-sfc` from 3.5.22 to 3.5.25
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.5.25/packages/compiler-sfc)

Updates `webpack-bundle-tracker` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/django-webpack/webpack-bundle-tracker/releases)
- [Commits](https://github.com/django-webpack/webpack-bundle-tracker/compare/v3.2.1...v3.2.2)

---
updated-dependencies:
- dependency-name: "@codemirror/view"
  dependency-version: 6.38.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: axios
  dependency-version: 1.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/compiler-sfc"
  dependency-version: 3.5.25
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: webpack-bundle-tracker
  dependency-version: 3.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 19:08:39 +00:00
smilerz
748377b11c Merge pull request #321 from smilerz/dependabot/npm_and_yarn/vue/workbox-expiration-7.4.0
chore(deps-dev): bump workbox-expiration from 7.3.0 to 7.4.0 in /vue
2025-12-01 12:47:08 -06:00
smilerz
714d4f799b Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-expiration-7.4.0 2025-12-01 12:43:59 -06:00
smilerz
218d591f35 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-window-7.4.0 2025-12-01 12:43:54 -06:00
smilerz
1bb92428a7 Merge pull request #322 from smilerz/dependabot/npm_and_yarn/vue/core-js-3.47.0
chore(deps): bump core-js from 3.46.0 to 3.47.0 in /vue
2025-12-01 12:33:22 -06:00
smilerz
ccf29db1d3 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-background-sync-7.4.0 2025-12-01 12:30:25 -06:00
smilerz
de19818429 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0 2025-12-01 12:30:21 -06:00
smilerz
01e736bccc Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-precaching-7.4.0 2025-12-01 12:30:18 -06:00
smilerz
5f717d4e70 Merge branch 'working' into dependabot/npm_and_yarn/vue/core-js-3.47.0 2025-12-01 12:30:07 -06:00
smilerz
f79fb4dbc1 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-expiration-7.4.0 2025-12-01 12:30:03 -06:00
smilerz
bd1926c57b Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-window-7.4.0 2025-12-01 12:30:01 -06:00
dependabot[bot]
6bebb04015 chore(deps): bump django-tables2 in the pip-minors group
Bumps the pip-minors group with 1 update: [django-tables2](https://github.com/jieter/django-tables2).


Updates `django-tables2` from 2.7.5 to 2.8.0
- [Changelog](https://github.com/jieter/django-tables2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jieter/django-tables2/compare/v2.7.5...v2.8.0)

---
updated-dependencies:
- dependency-name: django-tables2
  dependency-version: 2.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 05:19:57 +00:00
dependabot[bot]
a72bc2ddd6 chore(deps): bump boto3 from 1.41.3 to 1.41.5 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.41.3 to 1.41.5
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.41.3...1.41.5)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.41.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 05:09:31 +00:00
dependabot[bot]
44951bf648 chore(deps-dev): bump workbox-background-sync in /vue
Bumps [workbox-background-sync](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-background-sync
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:59:40 +00:00
dependabot[bot]
b1fc780f44 chore(deps-dev): bump workbox-navigation-preload in /vue
Bumps [workbox-navigation-preload](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-navigation-preload
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:59:31 +00:00
dependabot[bot]
cfb20edb9f chore(deps-dev): bump workbox-precaching from 7.3.0 to 7.4.0 in /vue
Bumps [workbox-precaching](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-precaching
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:59:24 +00:00
dependabot[bot]
0753be9d12 chore(deps): bump core-js from 3.46.0 to 3.47.0 in /vue
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.46.0 to 3.47.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.47.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:58:26 +00:00
dependabot[bot]
db05479cbe chore(deps-dev): bump workbox-expiration from 7.3.0 to 7.4.0 in /vue
Bumps [workbox-expiration](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-expiration
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:58:06 +00:00
dependabot[bot]
c850737d24 chore(deps): bump workbox-window from 7.3.0 to 7.4.0 in /vue
Bumps [workbox-window](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-window
  dependency-version: 7.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:57:59 +00:00
dependabot[bot]
333ba1b3f0 chore(deps): bump boto3 from 1.41.0 to 1.41.3 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.41.0 to 1.41.3
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.41.0...1.41.3)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.41.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-28 04:25:10 +00:00
dependabot[bot]
cf31d3aea4 chore(deps): bump the pip-minors group with 2 updates
Bumps the pip-minors group with 2 updates: [boto3](https://github.com/boto/boto3) and [redis](https://github.com/redis/redis-py).


Updates `boto3` from 1.40.76 to 1.41.0
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.76...1.41.0)

Updates `redis` from 7.0.1 to 7.1.0
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v7.0.1...v7.1.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
- dependency-name: redis
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-27 04:27:04 +00:00
dependabot[bot]
27ad2b5a85 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [pytubefix](https://github.com/juanbindez/pytubefix) and [redis](https://github.com/redis/redis-py).


Updates `pytubefix` from 10.3.4 to 10.3.5
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.3.4...v10.3.5)

Updates `redis` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 10.3.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: redis
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 04:28:25 +00:00
dependabot[bot]
c76dfeefe4 chore(deps): bump redis from 6.4.0 to 7.0.0
Bumps [redis](https://github.com/redis/redis-py) from 6.4.0 to 7.0.0.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v6.4.0...v7.0.0)

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 04:48:43 +00:00
dependabot[bot]
9caf1d4029 chore(deps): bump the pip-patches group with 3 updates
Bumps the pip-patches group with 3 updates: [boto3](https://github.com/boto/boto3), [django-allauth](https://github.com/sponsors/pennersr) and [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `boto3` from 1.40.75 to 1.40.76
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.75...1.40.76)

Updates `django-allauth` from 65.13.0 to 65.13.1
- [Commits](https://github.com/sponsors/pennersr/commits)

Updates `pytubefix` from 10.3.3 to 10.3.4
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.3.3...v10.3.4)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.76
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-allauth
  dependency-version: 65.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: pytubefix
  dependency-version: 10.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 04:34:19 +00:00
smilerz
e432f6a625 Merge pull request #4244 from smilerz/upstream-pr-20251121-044244
Upstream pr 20251121 044244
2025-11-21 08:21:44 -06:00
smilerz
ade2c8c63a Merge branch 'tandoor-1' into upstream-pr-20251121-044244 2025-11-21 08:21:36 -06:00
GitHub Action
9c13a20cda Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-21 04:42:44 +00:00
dependabot[bot]
f9f0aed2d8 chore(deps): bump pytubefix in the pip-minors group
Bumps the pip-minors group with 1 update: [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `pytubefix` from 10.2.1 to 10.3.3
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.2.1...v10.3.3)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 10.3.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 04:36:11 +00:00
dependabot[bot]
1b4b2f401d chore(deps): bump boto3 from 1.40.74 to 1.40.75 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.74 to 1.40.75
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.74...1.40.75)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.75
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 04:30:15 +00:00
dependabot[bot]
a7bf8e452a chore(deps): bump pytest-asyncio in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.2.0 to 1.3.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.2.0...v1.3.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-18 04:33:07 +00:00
dependabot[bot]
c00fe4ac68 chore(deps): bump boto3 from 1.40.73 to 1.40.74 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.73 to 1.40.74
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.73...1.40.74)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.74
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-18 04:28:18 +00:00
dependabot[bot]
14c439b8e7 chore(deps): bump pillow from 11.3.0 to 12.0.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.3.0 to 12.0.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/11.3.0...12.0.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-version: 12.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 04:34:42 +00:00
dependabot[bot]
2c03451597 chore(deps): bump boto3 from 1.40.70 to 1.40.73 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.70 to 1.40.73
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.70...1.40.73)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.73
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 04:28:37 +00:00
dependabot[bot]
e85ebc0cab chore(deps): bump django-crispy-forms in the pip-minors group
Bumps the pip-minors group with 1 update: [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms).


Updates `django-crispy-forms` from 2.4 to 2.5
- [Release notes](https://github.com/django-crispy-forms/django-crispy-forms/releases)
- [Changelog](https://github.com/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md)
- [Commits](https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5)

---
updated-dependencies:
- dependency-name: django-crispy-forms
  dependency-version: '2.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 04:30:25 +00:00
dependabot[bot]
ea10333b23 chore(deps): bump boto3 from 1.40.69 to 1.40.70 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.69 to 1.40.70
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.69...1.40.70)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.70
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 04:25:02 +00:00
smilerz
e773cffa76 Merge pull request #4230 from smilerz/upstream-pr-20251113-043248
Sync 3 commits from fork: chore(deps): bump recipe-scrapers in the pip-minors group
2025-11-13 07:56:39 -06:00
GitHub Action
b795d72e39 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-13 04:32:48 +00:00
dependabot[bot]
be6c548ac1 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.9.0 to 15.10.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.9.0...15.10.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-version: 15.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-13 04:26:12 +00:00
dependabot[bot]
23396821db chore(deps): bump markdown from 3.9 to 3.10 in the pip-minors group
Bumps the pip-minors group with 1 update: [markdown](https://github.com/Python-Markdown/markdown).


Updates `markdown` from 3.9 to 3.10
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0)

---
updated-dependencies:
- dependency-name: markdown
  dependency-version: '3.10'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-11 04:32:59 +00:00
dependabot[bot]
78c04e4b2d chore(deps): bump boto3 from 1.40.68 to 1.40.69 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.68 to 1.40.69
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.68...1.40.69)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.69
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-11 04:27:28 +00:00
smilerz
61a1d72d7e Merge pull request #4221 from smilerz/upstream-pr-20251110-045354
Sync 2 commits from fork: chore(deps): bump the pip-patches group with 4 updates
2025-11-10 12:55:46 -06:00
GitHub Action
ede6c52d63 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-10 04:53:54 +00:00
dependabot[bot]
372c904a96 chore(deps): bump the pip-patches group with 4 updates
Bumps the pip-patches group with 4 updates: [boto3](https://github.com/boto/boto3), [django](https://github.com/django/django), [django-webpack-loader](https://github.com/django-webpack/django-webpack-loader) and [icalendar](https://github.com/collective/icalendar).


Updates `boto3` from 1.40.65 to 1.40.68
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.65...1.40.68)

Updates `django` from 4.2.25 to 4.2.26
- [Commits](https://github.com/django/django/compare/4.2.25...4.2.26)

Updates `django-webpack-loader` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/django-webpack/django-webpack-loader/releases)
- [Changelog](https://github.com/django-webpack/django-webpack-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/django-webpack/django-webpack-loader/compare/3.2.1...3.2.2)

Updates `icalendar` from 6.3.1 to 6.3.2
- [Release notes](https://github.com/collective/icalendar/releases)
- [Changelog](https://github.com/collective/icalendar/blob/main/CHANGES.rst)
- [Commits](https://github.com/collective/icalendar/compare/v6.3.1...v6.3.2)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.68
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django
  dependency-version: 4.2.26
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-webpack-loader
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: icalendar
  dependency-version: 6.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 04:47:06 +00:00
dependabot[bot]
b500c97440 chore(deps): bump the pip-minors group with 2 updates
Bumps the pip-minors group with 2 updates: [django-allauth](https://github.com/sponsors/pennersr) and [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `django-allauth` from 65.12.1 to 65.13.0
- [Commits](https://github.com/sponsors/pennersr/commits)

Updates `pytubefix` from 10.0.0 to 10.2.1
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.0.0...v10.2.1)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-version: 65.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
- dependency-name: pytubefix
  dependency-version: 10.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 04:38:32 +00:00
smilerz
daaf55c50f Merge pull request #4214 from smilerz/upstream-pr-20251107-043533
Sync 6 commits from fork: chore(deps): bump pytubefix from 9.5.1 to 10.0.0
2025-11-07 07:32:07 -06:00
GitHub Action
79358f0e58 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-07 04:35:33 +00:00
dependabot[bot]
e3fa6c656e chore(deps): bump pytubefix from 9.5.1 to 10.0.0
Bumps [pytubefix](https://github.com/juanbindez/pytubefix) from 9.5.1 to 10.0.0.
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.5.1...v10.0.0)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 04:29:05 +00:00
dependabot[bot]
1521810537 chore(deps): bump boto3 from 1.40.64 to 1.40.65 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.64 to 1.40.65
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.64...1.40.65)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.65
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 04:24:37 +00:00
dependabot[bot]
67e8a2a835 chore(deps): bump bleach from 6.2.0 to 6.3.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [bleach](https://github.com/mozilla/bleach).


Updates `bleach` from 6.2.0 to 6.3.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0)

---
updated-dependencies:
- dependency-name: bleach
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 04:54:40 +00:00
dependabot[bot]
f770048c99 chore(deps): bump boto3 from 1.40.63 to 1.40.64 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.63 to 1.40.64
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.63...1.40.64)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.64
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 04:49:17 +00:00
dependabot[bot]
4d2db238cb chore(deps): bump python-dotenv in the pip-minors group
Bumps the pip-minors group with 1 update: [python-dotenv](https://github.com/theskumar/python-dotenv).


Updates `python-dotenv` from 1.1.1 to 1.2.1
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-version: 1.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 04:46:14 +00:00
dependabot[bot]
4e21d46120 chore(deps): bump the pip-patches group with 2 updates
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.40.63
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 04:36:59 +00:00
smilerz
1c5c69ba5c Merge pull request #4208 from smilerz/upstream-pr-20251102-203440
Sync 8 commits from fork: chore(deps): bump axios from 1.12.2 to 1.13.1 in /vue
2025-11-02 15:09:20 -06:00
GitHub Action
ebc7e3c6ac Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-02 20:34:40 +00:00
smilerz
f260f3ffcb Merge pull request #268 from smilerz/dependabot/npm_and_yarn/vue/core-js-3.46.0
chore(deps): bump core-js from 3.45.1 to 3.46.0 in /vue
2025-11-02 14:28:54 -06:00
smilerz
ef12579ee8 Merge branch 'working' into dependabot/npm_and_yarn/vue/core-js-3.46.0 2025-11-02 14:25:48 -06:00
dependabot[bot]
82e70c39d3 chore(deps): bump axios from 1.12.2 to 1.13.1 in /vue
Bumps [axios](https://github.com/axios/axios) from 1.12.2 to 1.13.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.2...v1.13.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 20:05:35 +00:00
smilerz
7174a611ac Merge branch 'working' into dependabot/npm_and_yarn/vue/core-js-3.46.0 2025-11-02 14:03:44 -06:00
dependabot[bot]
75607c7835 chore(deps): bump @codemirror/commands from 6.8.1 to 6.10.0 in /vue
Bumps [@codemirror/commands](https://github.com/codemirror/commands) from 6.8.1 to 6.10.0.
- [Changelog](https://github.com/codemirror/commands/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/commands/compare/6.8.1...6.10.0)

---
updated-dependencies:
- dependency-name: "@codemirror/commands"
  dependency-version: 6.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 20:00:24 +00:00
smilerz
dc58f00106 Merge branch 'working' into dependabot/npm_and_yarn/vue/core-js-3.46.0 2025-11-02 13:55:28 -06:00
smilerz
74774b917a Merge pull request #267 from smilerz/dependabot/npm_and_yarn/vue/codemirror/lang-markdown-6.5.0
chore(deps): bump @codemirror/lang-markdown from 6.3.4 to 6.5.0 in /vue
2025-11-02 13:55:18 -06:00
dependabot[bot]
e9a0b5216d chore(deps): bump core-js from 3.45.1 to 3.46.0 in /vue
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.45.1 to 3.46.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.46.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.46.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 19:46:44 +00:00
dependabot[bot]
79997c5dd0 chore(deps): bump @codemirror/lang-markdown from 6.3.4 to 6.5.0 in /vue
Bumps [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) from 6.3.4 to 6.5.0.
- [Changelog](https://github.com/codemirror/lang-markdown/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/lang-markdown/compare/6.3.4...6.5.0)

---
updated-dependencies:
- dependency-name: "@codemirror/lang-markdown"
  dependency-version: 6.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 19:46:41 +00:00
smilerz
d866e1e7e1 Merge pull request #266 from smilerz/dependabot/npm_and_yarn/vue/npm-patches-56ed010613
chore(deps): bump the npm-patches group in /vue with 4 updates
2025-11-02 13:44:36 -06:00
smilerz
46fdee0acb Merge branch 'working' into dependabot/npm_and_yarn/vue/npm-patches-56ed010613 2025-11-02 13:33:39 -06:00
smilerz
4829b9fe62 Merge pull request #244 from smilerz/dependabot/docker/python-3.12.12-alpine3.21
chore(deps): bump python from 3.12-alpine3.21 to 3.12.12-alpine3.21
2025-11-02 13:30:51 -06:00
smilerz
7b437a0383 Merge branch 'working' into dependabot/docker/python-3.12.12-alpine3.21 2025-11-02 13:27:20 -06:00
dependabot[bot]
d7def5a37a chore(deps): bump the npm-patches group in /vue with 4 updates
Bumps the npm-patches group in /vue with 4 updates: [@codemirror/autocomplete](https://github.com/codemirror/autocomplete), [@codemirror/view](https://github.com/codemirror/view), [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) and [typescript](https://github.com/microsoft/TypeScript).


Updates `@codemirror/autocomplete` from 6.19.0 to 6.19.1
- [Changelog](https://github.com/codemirror/autocomplete/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/autocomplete/compare/6.19.0...6.19.1)

Updates `@codemirror/view` from 6.38.4 to 6.38.6
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.38.4...6.38.6)

Updates `@babel/eslint-parser` from 7.28.4 to 7.28.5
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/eslint/babel-eslint-parser)

Updates `typescript` from 5.9.2 to 5.9.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.2...v5.9.3)

---
updated-dependencies:
- dependency-name: "@codemirror/autocomplete"
  dependency-version: 6.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@codemirror/view"
  dependency-version: 6.38.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@babel/eslint-parser"
  dependency-version: 7.28.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 19:20:01 +00:00
smilerz
13bb916c85 fixes syntax error in service worker file 2025-11-02 13:15:07 -06:00
smilerz
169522f401 updated sw.js to handle script_name correctly 2025-11-02 13:01:21 -06:00
smilerz
8774e7c2f0 Merge branch 'working' into dependabot/docker/python-3.12.12-alpine3.21 2025-11-02 12:59:14 -06:00
smilerz
7440a433ba Merge pull request #4207 from smilerz/upstream-pr-20251031-043335
Sync 7 commits from fork: chore(deps): bump boto3 from 1.40.59 to 1.40.60 in the pip-patches group
2025-11-02 12:58:07 -06:00
GitHub Action
72b9728540 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-10-31 04:33:35 +00:00
dependabot[bot]
d6224ac2e4 chore(deps): bump boto3 from 1.40.59 to 1.40.60 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.59 to 1.40.60
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.59...1.40.60)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.60
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-31 04:26:19 +00:00
smilerz
f8ddf6af72 Merge branch 'working' into dependabot/docker/python-3.12.12-alpine3.21 2025-10-28 07:56:10 -05:00
dependabot[bot]
665e208932 chore(deps): bump boto3 from 1.40.58 to 1.40.59 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.58 to 1.40.59
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.58...1.40.59)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.59
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-28 04:29:03 +00:00
dependabot[bot]
48616ebbcf chore(deps): bump boto3 from 1.40.55 to 1.40.58 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.55 to 1.40.58
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.55...1.40.58)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.58
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 04:47:47 +00:00
dependabot[bot]
4b0734c988 chore(deps): bump the pip-patches group with 2 updates
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.40.55
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-21 04:34:23 +00:00
dependabot[bot]
28e7103dae chore(deps): bump the pip-patches group with 3 updates
Bumps the pip-patches group with 3 updates: [boto3](https://github.com/boto/boto3), [cryptography](https://github.com/pyca/cryptography) and [django-allauth](https://github.com/sponsors/pennersr).


Updates `boto3` from 1.40.51 to 1.40.54
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.51...1.40.54)

Updates `cryptography` from 46.0.1 to 46.0.3
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.1...46.0.3)

Updates `django-allauth` from 65.12.0 to 65.12.1
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.54
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: cryptography
  dependency-version: 46.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-allauth
  dependency-version: 65.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 04:52:15 +00:00
dependabot[bot]
990e86f717 chore(deps): bump cryptography from 45.0.7 to 46.0.1
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.7 to 46.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.7...46.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 04:42:38 +00:00
dependabot[bot]
85e93169b5 chore(deps): bump boto3 from 1.40.50 to 1.40.51 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.50 to 1.40.51
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.50...1.40.51)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 04:38:04 +00:00
smilerz
0e3a5611c6 Merge pull request #4164 from smilerz/upstream-pr-20251014-045347
Sync 4 commits from fork: chore(deps): bump aiohttp from 3.12.15 to 3.13.0 in the pip-minors group
2025-10-14 16:00:13 -05:00
GitHub Action
31b9fe1605 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-10-14 04:53:47 +00:00
dependabot[bot]
7963342574 chore(deps): bump aiohttp from 3.12.15 to 3.13.0 in the pip-minors group
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 04:47:10 +00:00
dependabot[bot]
80264c2822 chore(deps): bump the pip-patches group with 3 updates
Bumps the pip-patches group with 3 updates: [boto3](https://github.com/boto/boto3), [psycopg2-binary](https://github.com/psycopg/psycopg2) and [python-ldap](https://github.com/python-ldap/python-ldap).


Updates `boto3` from 1.40.49 to 1.40.50
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.49...1.40.50)

Updates `psycopg2-binary` from 2.9.10 to 2.9.11
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS)
- [Commits](https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11)

Updates `python-ldap` from 3.4.4 to 3.4.5
- [Release notes](https://github.com/python-ldap/python-ldap/releases)
- [Changelog](https://github.com/python-ldap/python-ldap/blob/python-ldap-3.4.5/CHANGES)
- [Commits](https://github.com/python-ldap/python-ldap/compare/python-ldap-3.4.4...python-ldap-3.4.5)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: psycopg2-binary
  dependency-version: 2.9.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: python-ldap
  dependency-version: 3.4.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 04:41:35 +00:00
dependabot[bot]
9be9c5874f chore(deps): bump the pip-minors group with 2 updates
Bumps the pip-minors group with 2 updates: [django-allauth](https://github.com/sponsors/pennersr) and [django-oauth-toolkit](https://github.com/django-oauth/django-oauth-toolkit).


Updates `django-allauth` from 65.11.2 to 65.12.0
- [Commits](https://github.com/sponsors/pennersr/commits)

Updates `django-oauth-toolkit` from 3.0.1 to 3.1.0
- [Release notes](https://github.com/django-oauth/django-oauth-toolkit/releases)
- [Changelog](https://github.com/django-oauth/django-oauth-toolkit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/django-oauth/django-oauth-toolkit/compare/3.0.1...3.1.0)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-version: 65.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
- dependency-name: django-oauth-toolkit
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 04:52:04 +00:00
dependabot[bot]
8115ed383b chore(deps): bump boto3 from 1.40.46 to 1.40.49 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.46 to 1.40.49
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.46...1.40.49)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.49
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 04:46:25 +00:00
dependabot[bot]
81152f626e chore(deps): bump python from 3.12-alpine3.21 to 3.12.12-alpine3.21
Bumps python from 3.12-alpine3.21 to 3.12.12-alpine3.21.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.12.12-alpine3.21
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 04:34:19 +00:00
smilerz
4f7c480a8a Merge pull request #4144 from smilerz/upstream-pr-20251010-045056
Sync 7 commits from fork: chore(deps): bump pytest-cov from 6.3.0 to 7.0.0
2025-10-10 07:40:54 -05:00
GitHub Action
9d30664c14 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-10-10 04:50:56 +00:00
dependabot[bot]
cca86956cd chore(deps): bump pytest-cov from 6.3.0 to 7.0.0
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 6.3.0 to 7.0.0.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.3.0...v7.0.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-10 04:43:46 +00:00
dependabot[bot]
bd0e06bdd6 chore(deps): bump boto3 from 1.40.45 to 1.40.46 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.45 to 1.40.46
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.45...1.40.46)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.46
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-10 04:39:24 +00:00
dependabot[bot]
e2581a3276 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) and [boto3](https://github.com/boto/boto3).


Updates `beautifulsoup4` from 4.14.0 to 4.14.2

Updates `boto3` from 1.40.44 to 1.40.45
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.44...1.40.45)

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-version: 4.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.40.45
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 04:32:26 +00:00
dependabot[bot]
eef8d8d1be chore(deps): bump beautifulsoup4 in the pip-minors group
Bumps the pip-minors group with 1 update: [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/).


Updates `beautifulsoup4` from 4.13.5 to 4.14.0

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-version: 4.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:50:48 +00:00
dependabot[bot]
5fce383bb3 chore(deps): bump boto3 from 1.40.41 to 1.40.44 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.41 to 1.40.44
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.41...1.40.44)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.44
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:45:24 +00:00
dependabot[bot]
317c67d01c chore(deps): bump boto3 from 1.40.40 to 1.40.41 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.40 to 1.40.41
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.40...1.40.41)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.41
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-03 04:40:05 +00:00
smilerz
03e4904506 Merge pull request #4107 from smilerz/upstream-pr-20251002-002024
Sync 4 commits from fork: chore(deps): bump django in the pip group across 1 directory
2025-10-01 19:25:04 -05:00
smilerz
0461155b5d Merge pull request #225 from smilerz/dependabot/npm_and_yarn/vue/npm-patches-47266e4737
chore(deps): bump the npm-patches group in /vue with 4 updates
2025-10-01 19:21:39 -05:00
GitHub Action
cd3d3d3389 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-10-02 00:20:24 +00:00
dependabot[bot]
fde96522e8 chore(deps): bump the npm-patches group in /vue with 4 updates
Bumps the npm-patches group in /vue with 4 updates: [@codemirror/view](https://github.com/codemirror/view), [axios](https://github.com/axios/axios), [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) and [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc).


Updates `@codemirror/view` from 6.38.1 to 6.38.3
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.38.1...6.38.3)

Updates `axios` from 1.12.0 to 1.12.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.0...v1.12.2)

Updates `@babel/eslint-parser` from 7.28.0 to 7.28.4
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.4/eslint/babel-eslint-parser)

Updates `@vue/compiler-sfc` from 3.5.20 to 3.5.22
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.5.22/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@codemirror/view"
  dependency-version: 6.38.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: axios
  dependency-version: 1.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@babel/eslint-parser"
  dependency-version: 7.28.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/compiler-sfc"
  dependency-version: 3.5.22
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-02 00:18:25 +00:00
smilerz
9ccfa6732a Merge pull request #226 from smilerz/dependabot/npm_and_yarn/vue/codemirror/autocomplete-6.19.0
chore(deps): bump @codemirror/autocomplete from 6.18.6 to 6.19.0 in /vue
2025-10-01 19:14:47 -05:00
smilerz
244f63c07c Merge branch 'working' into dependabot/npm_and_yarn/vue/codemirror/autocomplete-6.19.0 2025-10-01 19:11:32 -05:00
dependabot[bot]
f3df30a727 chore(deps): bump django in the pip group across 1 directory
Bumps the pip group with 1 update in the / directory: [django](https://github.com/django/django).


Updates `django` from 4.2.24 to 4.2.25
- [Commits](https://github.com/django/django/compare/4.2.24...4.2.25)

---
updated-dependencies:
- dependency-name: django
  dependency-version: 4.2.25
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 23:04:42 +00:00
dependabot[bot]
de377e30b0 chore(deps): bump @codemirror/autocomplete from 6.18.6 to 6.19.0 in /vue
Bumps [@codemirror/autocomplete](https://github.com/codemirror/autocomplete) from 6.18.6 to 6.19.0.
- [Changelog](https://github.com/codemirror/autocomplete/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/autocomplete/compare/6.18.6...6.19.0)

---
updated-dependencies:
- dependency-name: "@codemirror/autocomplete"
  dependency-version: 6.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 04:26:02 +00:00
dependabot[bot]
ded9fd4223 chore(deps): bump boto3 from 1.40.39 to 1.40.40 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.39 to 1.40.40
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.39...1.40.40)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.40
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-30 04:33:27 +00:00
dependabot[bot]
b8e77668aa chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [pyyaml](https://github.com/yaml/pyyaml).


Updates `boto3` from 1.40.36 to 1.40.39
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.36...1.40.39)

Updates `pyyaml` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/yaml/pyyaml/releases)
- [Changelog](https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES)
- [Commits](https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.39
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: pyyaml
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 05:29:41 +00:00
smilerz
1f0eea5789 Merge pull request #4075 from smilerz/upstream-pr-20250926-045524
Sync 6 commits from fork: chore(deps): bump whitenoise from 6.10.0 to 6.11.0
2025-09-26 07:35:20 -05:00
GitHub Action
49e50c2834 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-26 04:55:24 +00:00
dependabot[bot]
176172c262 chore(deps): bump whitenoise from 6.10.0 to 6.11.0
Bumps [whitenoise](https://github.com/evansd/whitenoise) from 6.10.0 to 6.11.0.
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.10.0...6.11.0)

---
updated-dependencies:
- dependency-name: whitenoise
  dependency-version: 6.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 04:48:32 +00:00
dependabot[bot]
ec1a32f126 chore(deps): bump django-cors-headers from 4.8.0 to 4.9.0
Bumps [django-cors-headers](https://github.com/adamchainz/django-cors-headers) from 4.8.0 to 4.9.0.
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/4.8.0...4.9.0)

---
updated-dependencies:
- dependency-name: django-cors-headers
  dependency-version: 4.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 04:44:11 +00:00
dependabot[bot]
8c5c19fa81 chore(deps): bump boto3 from 1.40.35 to 1.40.36 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.35 to 1.40.36
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.35...1.40.36)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.36
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 04:39:35 +00:00
dependabot[bot]
d6ccec99b0 chore(deps): bump lxml from 6.0.1 to 6.0.2 in the pip-patches group
Bumps the pip-patches group with 1 update: [lxml](https://github.com/lxml/lxml).


Updates `lxml` from 6.0.1 to 6.0.2
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.1...lxml-6.0.2)

---
updated-dependencies:
- dependency-name: lxml
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-25 04:35:22 +00:00
dependabot[bot]
102a0976e5 chore(deps): bump boto3 from 1.40.34 to 1.40.35 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.34 to 1.40.35
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.34...1.40.35)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.35
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-23 04:34:40 +00:00
smilerz
1082f65e75 Merge pull request #4061 from smilerz/upstream-pr-20250922-044204
Sync 2 commits from fork: chore(deps): bump pytest-asyncio in the pip-pytest group
2025-09-22 07:24:30 -05:00
dependabot[bot]
a187331b6d chore(deps): bump boto3 from 1.40.31 to 1.40.34 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.31 to 1.40.34
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.31...1.40.34)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 12:22:45 +00:00
GitHub Action
9a5fb5cb80 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-22 04:42:04 +00:00
dependabot[bot]
42e4fe24b9 chore(deps): bump pytest-asyncio in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.1.1 to 1.2.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.1.1...v1.2.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 04:36:00 +00:00
dependabot[bot]
fa33819414 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `boto3` from 1.40.30 to 1.40.31
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.30...1.40.31)

Updates `pytubefix` from 9.5.0 to 9.5.1
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.5.0...v9.5.1)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.31
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: pytubefix
  dependency-version: 9.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-19 04:35:53 +00:00
smilerz
06351b0c16 Merge pull request #4049 from smilerz/upstream-pr-20250917-044956
Sync 1 commit from fork: chore(deps): bump whitenoise in the pip-minors group
2025-09-17 06:58:53 -05:00
GitHub Action
5285e6424f Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-17 04:49:56 +00:00
dependabot[bot]
3202a290dc chore(deps): bump whitenoise in the pip-minors group
Bumps the pip-minors group with 1 update: [whitenoise](https://github.com/evansd/whitenoise).


Updates `whitenoise` from 6.9.0 to 6.10.0
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.9.0...6.10.0)

---
updated-dependencies:
- dependency-name: whitenoise
  dependency-version: 6.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 04:43:01 +00:00
smilerz
b70617eada Merge pull request #4045 from smilerz/upstream-pr-20250916-135127
Sync 4 commits from fork: chore(deps): bump pytest-asyncio in the pip-pytest group
2025-09-16 08:55:11 -05:00
GitHub Action
9ce924ce1f Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-16 13:51:27 +00:00
dependabot[bot]
60c85832d6 chore(deps): bump pytest-asyncio in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.1.0...v1.1.1)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16 13:50:35 +00:00
dependabot[bot]
0d96c6a380 chore(deps): bump django-cors-headers in the pip-minors group
Bumps the pip-minors group with 1 update: [django-cors-headers](https://github.com/adamchainz/django-cors-headers).


Updates `django-cors-headers` from 4.7.0 to 4.8.0
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/4.7.0...4.8.0)

---
updated-dependencies:
- dependency-name: django-cors-headers
  dependency-version: 4.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16 13:44:29 +00:00
dependabot[bot]
7225cbdd61 chore(deps): bump boto3 from 1.40.29 to 1.40.30 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.29 to 1.40.30
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.29...1.40.30)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.30
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16 04:39:52 +00:00
smilerz
098d29deeb Merge pull request #196 from smilerz/dependabot/npm_and_yarn/vue/npm_and_yarn-16c0b19af7
chore(deps): bump axios from 1.11.0 to 1.12.0 in /vue in the npm_and_yarn group across 1 directory
2025-09-15 08:34:35 -05:00
dependabot[bot]
4ce8e0c6a1 chore(deps): bump axios
Bumps the npm_and_yarn group with 1 update in the /vue directory: [axios](https://github.com/axios/axios).


Updates `axios` from 1.11.0 to 1.12.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 13:31:18 +00:00
smilerz
8d770217a2 Merge pull request #4037 from smilerz/upstream-pr-20250915-045713
Sync 2 commits from fork: chore(deps): bump pytest-cov from 6.2.1 to 6.3.0 in the pip-pytest group
2025-09-15 08:26:00 -05:00
GitHub Action
462f2aa10a Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-15 04:57:13 +00:00
dependabot[bot]
1d5af4e48a chore(deps): bump pytest-cov from 6.2.1 to 6.3.0 in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-cov](https://github.com/pytest-dev/pytest-cov).


Updates `pytest-cov` from 6.2.1 to 6.3.0
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v6.3.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 04:51:09 +00:00
dependabot[bot]
e62d392eee chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [django-allauth](https://github.com/sponsors/pennersr).


Updates `boto3` from 1.40.26 to 1.40.29
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.26...1.40.29)

Updates `django-allauth` from 65.11.1 to 65.11.2
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-allauth
  dependency-version: 65.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 04:46:13 +00:00
smilerz
e0473b748d Merge pull request #4028 from smilerz/upstream-pr-20250912-132527
Sync 2 commits from fork: chore(deps): bump markdown from 3.8.2 to 3.9 in the pip-minors group
2025-09-12 08:46:53 -05:00
GitHub Action
1da214a53f Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-12 13:25:27 +00:00
smilerz
86f46297c6 fixed wildcard in dependabot config 2025-09-12 08:20:01 -05:00
smilerz
136bd9d848 add vue and vue* to ignore rule in dependabot 2025-09-12 08:20:00 -05:00
dependabot[bot]
4b7ddc263c chore(deps): bump markdown from 3.8.2 to 3.9 in the pip-minors group
Bumps the pip-minors group with 1 update: [markdown](https://github.com/Python-Markdown/markdown).


Updates `markdown` from 3.8.2 to 3.9
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.8.2...3.9.0)

---
updated-dependencies:
- dependency-name: markdown
  dependency-version: '3.9'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-12 04:37:47 +00:00
dependabot[bot]
f1f4e5f1a6 chore(deps): bump boto3 from 1.40.25 to 1.40.26 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.25 to 1.40.26
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.25...1.40.26)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.26
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-12 04:32:14 +00:00
smilerz
2a8c57ba10 Merge pull request #4020 from smilerz/upstream-pr-20250909-044442
Sync 1 commit from fork: chore(deps): bump boto3 from 1.40.24 to 1.40.25 in the pip-patches group
2025-09-09 08:15:34 -05:00
GitHub Action
280f8776c5 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-09 04:44:43 +00:00
dependabot[bot]
82d3f45090 chore(deps): bump boto3 from 1.40.24 to 1.40.25 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.24 to 1.40.25
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.24...1.40.25)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 04:37:08 +00:00
smilerz
edeb9b062a Merge pull request #4015 from smilerz/upstream-pr-20250908-150858
Sync 3 commits from fork: chore(deps): bump pytest from 8.4.1 to 8.4.2 in the pip-pytest group
2025-09-08 10:38:51 -05:00
GitHub Action
3b717664b8 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-08 15:08:58 +00:00
dependabot[bot]
bf3d5a8835 chore(deps): bump pytest from 8.4.1 to 8.4.2 in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 8.4.1 to 8.4.2
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 8.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:02:10 +00:00
dependabot[bot]
5cf061af30 chore(deps): bump django from 4.2.23 to 4.2.24
Bumps [django](https://github.com/django/django) from 4.2.23 to 4.2.24.
- [Commits](https://github.com/django/django/compare/4.2.23...4.2.24)

---
updated-dependencies:
- dependency-name: django
  dependency-version: 4.2.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 14:57:25 +00:00
dependabot[bot]
f3c72dc102 chore(deps): bump boto3 from 1.40.21 to 1.40.24 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.21 to 1.40.24
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.21...1.40.24)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 14:52:49 +00:00
smilerz
0b771f49fd Merge pull request #175 from smilerz/smilerz-patch-1
Remove comments from CodeQL analysis configuration
2025-09-08 09:49:27 -05:00
smilerz
b072aa4f9a Merge branch 'working' into smilerz-patch-1 2025-09-08 09:44:40 -05:00
smilerz
3a782d8114 Refactor CodeQL analysis configuration
Removed paths-ignore configuration and updated query options for CodeQL analysis.
2025-09-08 09:35:47 -05:00
smilerz
81eccea140 Update codeql-analysis.yml 2025-09-08 09:30:05 -05:00
smilerz
0f33ee5052 Re-add security-extended queries for CodeQL analysis 2025-09-08 09:21:03 -05:00
smilerz
825efd4eb9 Add security-extended queries to CodeQL workflow 2025-09-08 09:15:43 -05:00
smilerz
3d2758c6ad Update CodeQL queries format in workflow 2025-09-08 09:11:18 -05:00
smilerz
2f52413a7c Update queries format in CodeQL workflow 2025-09-08 09:09:54 -05:00
smilerz
b1d3159bd8 Simplify queries configuration in CodeQL workflow 2025-09-08 09:07:00 -05:00
smilerz
fcdf564d2b Remove comments from CodeQL analysis configuration 2025-09-08 08:41:32 -05:00
smilerz
823efe5050 Fix syntax for using security-extended query 2025-09-08 08:36:06 -05:00
smilerz
b88e012759 Update syntax in codeql-analysis.yml 2025-09-08 08:23:51 -05:00
smilerz
82a00bd388 Merge pull request #4008 from smilerz/upstream-pr-20250905-044308
Sync 1 commit from fork: chore(deps): bump cryptography in the pip-patches group
2025-09-05 07:57:08 -05:00
smilerz
a187fa2c8c Merge branch 'tandoor-1' into upstream-pr-20250905-044308 2025-09-05 07:56:54 -05:00
GitHub Action
d8b786a25a Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-05 04:43:08 +00:00
dependabot[bot]
55485e105e chore(deps): bump cryptography in the pip-patches group
Bumps the pip-patches group with 1 update: [cryptography](https://github.com/pyca/cryptography).


Updates `cryptography` from 45.0.6 to 45.0.7
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.6...45.0.7)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 45.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-05 04:36:25 +00:00
smilerz
293d8d6680 Merge pull request #4001 from smilerz/upstream-pr-20250904-141319
Sync 4 commits from fork: chore(deps): bump boto3 from 1.40.20 to 1.40.21 in the pip-patches group
2025-09-04 09:17:21 -05:00
GitHub Action
2eacacb021 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-04 14:13:19 +00:00
smilerz
459586ff77 Merge pull request #163 from smilerz/dependabot/npm_and_yarn/vue/npm-patches-287502959c
chore(deps): bump the npm-patches group in /vue with 8 updates
2025-09-04 09:10:23 -05:00
smilerz
3ed8d8ae98 Merge branch 'working' into dependabot/npm_and_yarn/vue/npm-patches-287502959c 2025-09-04 09:06:59 -05:00
dependabot[bot]
d77d62e806 chore(deps): bump boto3 from 1.40.20 to 1.40.21 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.20 to 1.40.21
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.20...1.40.21)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 14:05:52 +00:00
dependabot[bot]
eab8db2734 chore(deps): bump pytubefix from 9.4.1 to 9.5.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `pytubefix` from 9.4.1 to 9.5.0
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.4.1...v9.5.0)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 9.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-03 01:07:01 +00:00
dependabot[bot]
623ce16801 chore(deps): bump the npm-patches group in /vue with 8 updates
Bumps the npm-patches group in /vue with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.3.3` | `6.3.4` |
| [@vue/cli](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli) | `5.0.8` | `5.0.9` |
| [@vue/cli-plugin-babel](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-babel) | `5.0.8` | `5.0.9` |
| [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) | `5.0.8` | `5.0.9` |
| [@vue/cli-plugin-pwa](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-pwa) | `5.0.8` | `5.0.9` |
| [@vue/cli-plugin-typescript](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-typescript) | `5.0.8` | `5.0.9` |
| [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) | `5.0.8` | `5.0.9` |
| [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc) | `3.5.18` | `3.5.20` |


Updates `@codemirror/lang-markdown` from 6.3.3 to 6.3.4
- [Changelog](https://github.com/codemirror/lang-markdown/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/lang-markdown/compare/6.3.3...6.3.4)

Updates `@vue/cli` from 5.0.8 to 5.0.9
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.9/packages/@vue/cli)

Updates `@vue/cli-plugin-babel` from 5.0.8 to 5.0.9
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.9/packages/@vue/cli-plugin-babel)

Updates `@vue/cli-plugin-eslint` from 5.0.8 to 5.0.9
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.9/packages/@vue/cli-plugin-eslint)

Updates `@vue/cli-plugin-pwa` from 5.0.8 to 5.0.9
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.9/packages/@vue/cli-plugin-pwa)

Updates `@vue/cli-plugin-typescript` from 5.0.8 to 5.0.9
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.9/packages/@vue/cli-plugin-typescript)

Updates `@vue/cli-service` from 5.0.8 to 5.0.9
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.9/packages/@vue/cli-service)

Updates `@vue/compiler-sfc` from 3.5.18 to 3.5.20
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.5.20/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@codemirror/lang-markdown"
  dependency-version: 6.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-plugin-babel"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-plugin-eslint"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-plugin-pwa"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-plugin-typescript"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-service"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/compiler-sfc"
  dependency-version: 3.5.20
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 11:21:23 +00:00
dependabot[bot]
dfac02cc53 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [django-allauth](https://github.com/sponsors/pennersr).


Updates `boto3` from 1.40.17 to 1.40.20
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.17...1.40.20)

Updates `django-allauth` from 65.11.0 to 65.11.1
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-allauth
  dependency-version: 65.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 08:33:26 +00:00
smilerz
b99e461e10 Merge pull request #3979 from smilerz/upstream-pr-20250829-045007
Sync 2 commits from fork: chore(deps): bump django-allauth in the pip-minors group
2025-08-29 08:18:15 -05:00
GitHub Action
9f66ca34d9 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-29 04:50:07 +00:00
dependabot[bot]
53e075953d chore(deps): bump django-allauth in the pip-minors group
Bumps the pip-minors group with 1 update: [django-allauth](https://github.com/sponsors/pennersr).


Updates `django-allauth` from 65.10.0 to 65.11.0
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-version: 65.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 04:43:29 +00:00
dependabot[bot]
d060629477 chore(deps): bump boto3 from 1.40.16 to 1.40.17 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.16 to 1.40.17
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.16...1.40.17)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 04:38:01 +00:00
smilerz
b7b34c775c Merge pull request #3976 from smilerz/upstream-pr-20250828-163118
Sync 7 commits from fork: chore(deps): bump the npm-minors group in /vue with 2 updates
2025-08-28 11:48:32 -05:00
GitHub Action
2f2b07cb4c Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-28 16:31:18 +00:00
smilerz
900e6abc6d Merge pull request #147 from smilerz/dependabot/npm_and_yarn/vue/npm-minors-010af39555
chore(deps): bump the npm-minors group in /vue with 2 updates
2025-08-28 11:26:02 -05:00
dependabot[bot]
63458261a8 chore(deps): bump the npm-minors group in /vue with 2 updates
Bumps the npm-minors group in /vue with 2 updates: [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) and [typescript](https://github.com/microsoft/TypeScript).


Updates `core-js` from 3.44.0 to 3.45.1
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.45.1/packages/core-js)

Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.45.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minors
- dependency-name: typescript
  dependency-version: 5.9.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 16:18:50 +00:00
smilerz
65776080a6 updated brace-expansion 2025-08-28 11:05:32 -05:00
dependabot[bot]
1016a9b9dc chore(deps): bump the pip-patches group across 1 directory with 3 updates
Bumps the pip-patches group with 3 updates in the / directory: [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [boto3](https://github.com/boto/boto3) and [lxml](https://github.com/lxml/lxml).


Updates `beautifulsoup4` from 4.13.4 to 4.13.5

Updates `boto3` from 1.40.15 to 1.40.16
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.15...1.40.16)

Updates `lxml` from 6.0.0 to 6.0.1
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.0...lxml-6.0.1)

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-version: 4.13.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.40.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: lxml
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 15:25:30 +00:00
smilerz
c518bcde8f use freezegun to freeze time so that date based searches work consistently 2025-08-28 10:19:14 -05:00
smilerz
17f49c3827 Merge pull request #152 from smilerz/smilerz-patch-1
Disable warnings in Django testing step
2025-08-28 08:35:26 -05:00
smilerz
48e0cb6588 Disable warnings in Django testing step 2025-08-28 08:31:18 -05:00
smilerz
bb09928d73 supress warnings during CI 2025-08-28 08:27:41 -05:00
smilerz
2b8f10a2a7 Refactor test_search_date to use fixed UTC reference date
Because:
- Timezone-dependent tests caused inconsistent results
- CI and local runs could differ near day boundaries
- Workflow concurrency settings needed cleanup

Refactors test_search_date and found_recipe to use a fixed UTC reference date for all recipe creation and queries, eliminating timezone issues. Removes concurrency blocks from workflows for clarity and reliability. Affects .github/workflows/dependabot-automerge.yml, docker-publish.yml, push-orchestrator.yml, and test_recipe_full_text_search.py. No breaking changes, but test results now deterministic across environments.
2025-08-28 07:28:20 -05:00
smilerz
db0ddf2a60 added concurrency to workflows 2025-08-27 22:04:57 -05:00
smilerz
51849937bb added debug message to test 2025-08-27 21:50:58 -05:00
smilerz
e640ccb603 Merge pull request #3973 from smilerz/upstream-pr-20250828-023533
Sync 1 commit from fork: Refactor connector hooks to use DTOs, update manager and tests
2025-08-27 21:44:22 -05:00
GitHub Action
1e812a8ef5 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-28 02:35:33 +00:00
smilerz
2c186ab72e Refactor connector hooks to use DTOs, update manager and tests
Because:
- Connector hooks needed safe, serializable DTOs
- Manager and tests required updates for new DTO interface
- Code style and clarity improvements were needed
- Redundant date test logic removed

Refactors connector interface and manager to use UserDTO and ShoppingListEntryDTO.
Updates connector manager logic and tests to match new DTO signatures.
Improves code style in test_recipe_full_text_search.py and removes unnecessary date test block.
Breaking change: downstream connectors must update hook signatures.
2025-08-27 20:58:47 -05:00
smilerz
a6aa162527 Merge pull request #3969 from smilerz/upstream-pr-20250825-124428
Sync 3 commits from fork: chore(deps): bump django-allauth in the pip-minors group
2025-08-25 07:47:17 -05:00
GitHub Action
fd2be921d0 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-25 12:44:29 +00:00
dependabot[bot]
5710dcc85f chore(deps): bump django-allauth in the pip-minors group
Bumps the pip-minors group with 1 update: [django-allauth](https://github.com/sponsors/pennersr).


Updates `django-allauth` from 65.10.0 to 65.11.0
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-version: 65.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 12:38:03 +00:00
dependabot[bot]
64bfd89225 chore(deps): bump django-debug-toolbar from 5.2.0 to 6.0.0
Bumps [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) from 5.2.0 to 6.0.0.
- [Release notes](https://github.com/django-commons/django-debug-toolbar/releases)
- [Changelog](https://github.com/django-commons/django-debug-toolbar/blob/main/docs/changes.rst)
- [Commits](https://github.com/django-commons/django-debug-toolbar/compare/5.2.0...6.0.0)

---
updated-dependencies:
- dependency-name: django-debug-toolbar
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 12:30:55 +00:00
dependabot[bot]
41fd7334dc chore(deps): bump boto3 from 1.40.12 to 1.40.15 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.12 to 1.40.15
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.12...1.40.15)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 09:03:03 +00:00
smilerz
1afae2b77c Merge pull request #3958 from smilerz/upstream-pr-20250822-053647
Sync 2 commits from fork: chore(deps): bump the pip-patches group with 2 updates
2025-08-22 06:46:07 -05:00
GitHub Action
9b1ff9fd6e Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-22 05:36:47 +00:00
dependabot[bot]
64b4f8c1d1 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [requests](https://github.com/psf/requests).


Updates `boto3` from 1.40.11 to 1.40.12
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.11...1.40.12)

Updates `requests` from 2.32.4 to 2.32.5
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.4...v2.32.5)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: requests
  dependency-version: 2.32.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-22 05:30:22 +00:00
dependabot[bot]
d03e991cdc chore(deps): bump boto3 from 1.40.10 to 1.40.11 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.10 to 1.40.11
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.10...1.40.11)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 17:16:01 +00:00
smilerz
dfe73d2f95 Merge pull request #3945 from smilerz/upstream-pr-20250818-081648
Sync 1 commit from fork: chore(deps): bump boto3 from 1.40.7 to 1.40.10 in the pip-patches group
2025-08-18 08:26:32 -05:00
GitHub Action
dfb0aa9609 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-18 08:16:48 +00:00
dependabot[bot]
79805cea66 chore(deps): bump boto3 from 1.40.7 to 1.40.10 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.7 to 1.40.10
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.7...1.40.10)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 08:10:11 +00:00
smilerz
89130998a4 Merge pull request #3939 from smilerz/upstream-pr-20250815-052458
Sync 2 commits from fork: chore(deps): bump redis from 6.3.0 to 6.4.0 in the pip-minors group
2025-08-15 08:14:15 -05:00
GitHub Action
ec11a81d1e Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-15 05:24:58 +00:00
dependabot[bot]
92d7993137 chore(deps): bump redis from 6.3.0 to 6.4.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [redis](https://github.com/redis/redis-py).


Updates `redis` from 6.3.0 to 6.4.0
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v6.3.0...v6.4.0)

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-15 05:18:12 +00:00
dependabot[bot]
2ea8792568 chore(deps): bump boto3 from 1.40.6 to 1.40.7 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.6 to 1.40.7
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.6...1.40.7)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-15 05:12:39 +00:00
smilerz
4148fe6d28 Merge pull request #3936 from smilerz/upstream-pr-20250813-135943
Sync 3 commits from fork: chore(deps): bump the npm-patches group in /vue with 2 updates (#104)
2025-08-13 09:27:04 -05:00
GitHub Action
7aea9e2927 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-13 13:59:43 +00:00
dependabot[bot]
37df1ddccd chore(deps): bump the npm-patches group in /vue with 2 updates (#104)
Bumps the npm-patches group in /vue with 2 updates: [@codemirror/view](https://github.com/codemirror/view) and [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc).


Updates `@codemirror/view` from 6.38.0 to 6.38.1
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.38.0...6.38.1)

Updates `@vue/compiler-sfc` from 3.5.17 to 3.5.18
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.5.18/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@codemirror/view"
  dependency-version: 6.38.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/compiler-sfc"
  dependency-version: 3.5.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smilerz <smilerz@gmail.com>
2025-08-13 08:54:07 -05:00
dependabot[bot]
df64277c7f chore(deps): bump the npm-minors group in /vue with 2 updates (#105)
Bumps the npm-minors group in /vue with 2 updates: [axios](https://github.com/axios/axios) and [typescript](https://github.com/microsoft/TypeScript).


Updates `axios` from 1.10.0 to 1.11.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.11.0)

Updates `typescript` from 5.1.6 to 5.8.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.1.6...v5.8.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minors
- dependency-name: typescript
  dependency-version: 5.8.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smilerz <smilerz@gmail.com>
2025-08-13 13:05:10 +00:00
dependabot[bot]
0505da4f83 chore(deps): bump redis from 6.2.0 to 6.3.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [redis](https://github.com/redis/redis-py).


Updates `redis` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v6.2.0...v6.3.0)

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 05:15:34 +00:00
smilerz
b268ccedd8 Merge pull request #3934 from smilerz/upstream-pr-20250812-125815
Sync 1 commit from fork: chore(deps): bump boto3 from 1.40.5 to 1.40.6 in the pip-patches group
2025-08-12 07:59:11 -05:00
GitHub Action
80a60a5b13 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-12 12:58:15 +00:00
dependabot[bot]
46ace24f53 chore(deps): bump boto3 from 1.40.5 to 1.40.6 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.5 to 1.40.6
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.5...1.40.6)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 12:52:00 +00:00
smilerz
d0542d02da Merge pull request #3931 from smilerz/upstream-pr-20250811-130526
Sync 1 commit from fork: chore(deps): bump recipe-scrapers in the pip-minors group
2025-08-11 08:07:36 -05:00
GitHub Action
b050ca7714 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-11 13:05:26 +00:00
dependabot[bot]
b0684d679c chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.8.0 to 15.9.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.8.0...15.9.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-version: 15.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 12:58:42 +00:00
smilerz
76c642239f Merge pull request #3930 from smilerz/upstream-pr-20250811-072606
Sync 1 commit from fork: chore(deps): bump the pip-patches group with 3 updates
2025-08-11 07:50:18 -05:00
GitHub Action
2542a0c6f8 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-11 07:26:07 +00:00
dependabot[bot]
dbacb315da chore(deps): bump the pip-patches group with 3 updates
Bumps the pip-patches group with 3 updates: [boto3](https://github.com/boto/boto3), [cryptography](https://github.com/pyca/cryptography) and [djangorestframework](https://github.com/encode/django-rest-framework).


Updates `boto3` from 1.40.0 to 1.40.5
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.0...1.40.5)

Updates `cryptography` from 45.0.5 to 45.0.6
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.5...45.0.6)

Updates `djangorestframework` from 3.16.0 to 3.16.1
- [Release notes](https://github.com/encode/django-rest-framework/releases)
- [Commits](https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: cryptography
  dependency-version: 45.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: djangorestframework
  dependency-version: 3.16.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 07:19:44 +00:00
smilerz
66ec659354 Merge pull request #3918 from smilerz/upstream-pr-20250808-051522
Sync 1 commit from fork: chore(deps): bump boto3 from 1.39.17 to 1.40.0 in the pip-minors group
2025-08-08 07:18:36 -05:00
GitHub Action
25f9188fc1 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-08 05:15:22 +00:00
dependabot[bot]
aaf297e63f chore(deps): bump boto3 from 1.39.17 to 1.40.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.17 to 1.40.0
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.17...1.40.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-08 05:08:51 +00:00
smilerz
03a74ec5ec Merge pull request #3900 from smilerz/upstream-pr-20250804-065404
Sync 2 commits from fork: chore(deps): bump the pip-patches group with 2 updates
2025-08-04 07:49:34 -05:00
GitHub Action
83f3c4f657 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-04 06:54:04 +00:00
dependabot[bot]
3725f4ea0e chore(deps): bump the pip-patches group with 2 updates
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.12.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.39.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 06:47:38 +00:00
dependabot[bot]
debc8aef69 chore(deps): bump boto3 from 1.39.14 to 1.39.15 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.14 to 1.39.15
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.14...1.39.15)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-01 04:50:08 +00:00
smilerz
b3e0235a9e Merge pull request #3857 from smilerz/upstream-pr-20250730-052740
Sync 4 commits from fork: chore(deps): bump pytubefix from 9.3.0 to 9.4.1 in the pip-minors group
2025-07-31 11:27:21 -05:00
GitHub Action
c0972dd390 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-07-30 05:27:40 +00:00
dependabot[bot]
d90cadcb9c chore(deps): bump pytubefix from 9.3.0 to 9.4.1 in the pip-minors group
Bumps the pip-minors group with 1 update: [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `pytubefix` from 9.3.0 to 9.4.1
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.3.0...v9.4.1)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 9.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 05:21:26 +00:00
dependabot[bot]
e40d61c7ef chore(deps): bump lxml from 5.4.0 to 6.0.0
Bumps [lxml](https://github.com/lxml/lxml) from 5.4.0 to 6.0.0.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-5.4.0...lxml-6.0.0)

---
updated-dependencies:
- dependency-name: lxml
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-29 06:36:04 +00:00
dependabot[bot]
6aaac55017 chore(deps): bump boto3 from 1.39.13 to 1.39.14 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.13 to 1.39.14
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.13...1.39.14)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-29 06:31:46 +00:00
dependabot[bot]
d28a4ef3a0 chore(deps): bump boto3 from 1.39.10 to 1.39.13 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.10 to 1.39.13
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.10...1.39.13)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 06:22:21 +00:00
smilerz
09c8271289 include body in PR link 2025-07-25 17:02:52 -05:00
smilerz
57fea5698e Merge pull request #3850 from smilerz/upstream-pr-20250725-215052
Sync 1 commit from fork: Refactor requirements.txt and workflow automation
2025-07-25 16:56:20 -05:00
GitHub Action
30930734d8 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-07-25 21:50:52 +00:00
smilerz
50db2e31cf fixed link for PR 2025-07-25 16:45:26 -05:00
smilerz
ec5b8e93a9 Rename workflow to Stage Branch for PR and update file name
Because:
- Workflow now stages a branch and opens an issue for manual PR
- Name and file should reflect current function

Renames workflow to 'Stage Branch for PR' and file to stage-branch-for-pr.yml. No breaking changes. Affects: .github/workflows/stage-branch-for-pr.yml
2025-07-25 16:34:19 -05:00
smilerz
8f0ff70813 Refactor requirements.txt and workflow automation
Because:
- requirements.txt was unsorted, making review and maintenance harder
- Workflow PR instructions were manual and unclear

Alphabetized requirements.txt main and dev sections, preserving all version pins and comments. Updated .github/workflows/create-upstream-pr.yml to open a GitHub issue for manual PR tracking, replacing console instructions. No breaking changes. requirements.txt, .github/workflows/create-upstream-pr.yml.
2025-07-25 16:18:15 -05:00
smilerz
99c5b22745 Fix: filter infra files and skip PR if no code changes or commits
Because:
- Infra-only changes should not trigger PRs
- PRs should only be created for real code changes

Filters infra files from file count and summary. Skips PR creation if no code files or commits. Affects create-upstream-pr.yml. No breaking changes.
2025-07-25 11:01:35 -05:00
smilerz
6678b3ccfe Fix multi-line output for changes_summary in workflow
Because:
- GitHub Actions requires heredoc for multi-line outputs
- Previous output format caused file command errors

Uses heredoc for changes_summary in summarize_changes step. Affects create-upstream-pr.yml. No breaking changes.
2025-07-25 10:40:52 -05:00
smilerz
41d95bc0f5 Update PR summary to list changed files
Because:
- PR summary did not enumerate changed files
- Improved clarity for reviewers

Adds formatted file list to changes summary in create-upstream-pr.yml. Removes redundant separator in PR body. No breaking changes. Affects only workflow file.
2025-07-25 10:20:35 -05:00
smilerz
d58a2a2823 Merge pull request #3849 from smilerz/upstream-pr-20250725-130828
Sync 26 commits from fork: chore(deps): bump boto3 from 1.39.9 to 1.39.10 in the pip-patches group
2025-07-25 08:24:34 -05:00
GitHub Action
47569858fb Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-07-25 13:08:28 +00:00
smilerz
33c161c836 Update upstream PR workflow to filter infra-only commits
Because:
- Commits touching only infra files (all .github, cookbook/version_info.py, .gitattributes) should not be included in PR content
- Only commits with non-infra file changes still different from upstream should be included

Affects .github/workflows/create-upstream-pr.yml. No breaking changes. No test code affected.
2025-07-25 08:02:28 -05:00
dependabot[bot]
8f568c0425 chore(deps): bump boto3 from 1.39.9 to 1.39.10 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.9 to 1.39.10
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.9...1.39.10)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-25 04:36:50 +00:00
smilerz
2e36378f2d use github app token everywhere 2025-07-24 16:32:54 -05:00
smilerz
143bfa97b6 fix syntax error in create-upstream-pr.yml 2025-07-24 16:08:18 -05:00
smilerz
70285d8b14 Update streamline upstream PR workflow and remove file filter
Because:
- Infra file restore must occur before merge to avoid conflicts
- Redundant code file filtering step was unnecessary after infra reset

Moves infra file restore before merge in .github/workflows/create-upstream-pr.yml.
Removes filter step and updates downstream logic to use all changed files.
Improves comments and step clarity. No breaking changes.
2025-07-24 15:57:57 -05:00
smilerz
7fb6379d71 Update create-upstream-pr workflow for correct branch and infra sync
Because:
- Previous workflow had duplicate and out-of-order steps
- Needed to ensure correct branch creation, upstream merge, and infra file reset

Refactors workflow to:
- Create branch and push to fork
- Merge upstream/tandoor-1 into new branch
- Restore infra files from upstream and push again
- Removes duplicate and redundant steps

Affects: .github/workflows/create-upstream-pr.yml
No breaking changes. No test code affected.
2025-07-24 13:51:51 -05:00
smilerz
a4aff4551f dewubgging output added 2025-07-24 11:36:41 -05:00
dependabot[bot]
000395fbd2 chore(deps): bump form-data in /vue in the npm_and_yarn group (#89)
Bumps the npm_and_yarn group in /vue with 1 update: [form-data](https://github.com/form-data/form-data).


Updates `form-data` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](https://github.com/form-data/form-data/compare/v4.0.3...v4.0.4)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smilerz <smilerz@gmail.com>
2025-07-24 16:25:12 +00:00
smilerz
339032de14 disable fine grained permissions for troubleshooting 2025-07-24 11:04:45 -05:00
smilerz
30f5071e37 force actions to run 2025-07-24 10:50:15 -05:00
smilerz
701a74b68c Update PR workflow to use GitHub App token for branch push
Because:
- GitHub Actions cannot push workflow file changes with default GITHUB_TOKEN
- GitHub App token is required for workflow file updates

Adds a step to generate a GitHub App token and uses it for pushing the branch. Follows the pattern from dependabot-automerge.yml. Affects create-upstream-pr.yml. No breaking changes. All PRs will now be able to push workflow file changes if needed.
2025-07-24 10:23:05 -05:00
smilerz
6a6ef9b13e update actions permissions to write 2025-07-24 10:03:09 -05:00
smilerz
8c333063be add workflow write permissions to create-upstream-pr.yml 2025-07-24 08:27:02 -05:00
smilerz
1ea59a76c2 Refactor PR workflow to exclude infra files
Because:
- PRs must never add, modify, or delete infrastructure files
- Infra file logic, counting, and removal is not needed
- Reset infra files to upstream state before push

Removes all logic for infra file tracking, counting, and removal. Now only code files are included in PRs. Infra files are always reset to upstream/tandoor-1 before push. Affects create-upstream-pr.yml. No breaking changes. All PRs will now be infra-clean by construction.
2025-07-24 07:31:42 -05:00
dependabot[bot]
dcfbb71d89 chore(deps): bump pytest-asyncio in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.0.0 to 1.1.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.0.0...v1.1.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 05:10:38 +00:00
dependabot[bot]
74a0650f11 chore(deps): bump boto3 from 1.39.8 to 1.39.9 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.8 to 1.39.9
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.8...1.39.9)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-22 06:07:42 +00:00
dependabot[bot]
a870cafd2c chore(deps): bump boto3 from 1.39.4 to 1.39.8 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.4 to 1.39.8
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.4...1.39.8)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 05:56:50 +00:00
smilerz
7b856e4556 fixed syntax error 2025-07-20 11:22:46 -05:00
smilerz
d28918df94 Fix PR title/body output propagation in workflow
Because:
- PR title and body were not set as outputs in github-script step
- Downstream steps require outputs for correct PR instructions
- Each line under 72 chars

Adds core.setOutput for prTitle and prBody in build_pr_content. Affects .github/workflows/create-upstream-pr.yml. No breaking changes.
2025-07-20 11:06:12 -05:00
smilerz
5d3a93e4c4 Refactor PR title and body generation in workflow
Because:
- Old logic tried to find a PR for the triggering commit, which never exists
- Upstream maintainers need a summary of all commits in the branch
- Each line under 72 chars

Removes get_trigger_pr step and builds PR title/body from commit list. Affects .github/workflows/create-upstream-pr.yml. No breaking changes.
2025-07-20 10:36:18 -05:00
smilerz
9703d9db35 Update workflow to guide manual PR creation after branch push
Because:
- Automated PR creation from forks is blocked by GitHub permissions
- Users need clear, actionable instructions to open PRs manually

Removes automated PR creation and related steps. Adds a step to print a direct PR link and suggested title/body after branch push. Only .github/workflows/create-upstream-pr.yml affected. No breaking changes.
2025-07-18 14:43:00 -05:00
smilerz
c6ff2e3c58 Fix jq array output in file filter step
Because:
- Downstream steps require valid JSON arrays for code/infrastructure files
- Previous jq usage could produce malformed output

Updates .github/workflows/create-upstream-pr.yml to use 'jq -sc' for correct array output in code/infrastructure file filtering. No breaking changes. No follow-up required.
2025-07-18 14:01:58 -05:00
smilerz
813aa85554 Fix: Output code_files and infra_files as JSON arrays
Because:
- GitHub Actions scripts require valid JSON for file lists
- Prevents JSON.parse errors in github-script steps

Now uses jq to emit code_files and infra_files as JSON arrays in filter_files step. Affects .github/workflows/create-upstream-pr.yml. No breaking changes.
2025-07-18 12:56:57 -05:00
smilerz
61b18c9442 Update workflow to remove infrastructure files before fork push
Because:
- GitHub Actions cannot push workflow files from forks due to permission restrictions
- Prevents workflow errors and keeps upstream infrastructure intact

Adds a step to remove .github, cookbook/version_info.py, and .gitattributes before pushing to fork. Only code changes are pushed for upstream PR. Affects .github/workflows/create-upstream-pr.yml. No breaking changes.
2025-07-18 12:31:15 -05:00
smilerz
d4d968f399 Remove legacy upstream-pr workflow
Because:
- Only create-upstream-pr.yml should be used for upstream PR automation
- upstream-pr.yml enforced divergence checks and manual sync, causing confusion

Deletes .github/workflows/upstream-pr.yml. Ensures only the updated workflow logic is used. No breaking changes. No impact on code or tests.
2025-07-18 11:32:03 -05:00
smilerz
d22669272a Fix workflow to only block on merge conflicts
Because:
- Diverged branches are not a blocker if merge is clean
- Previous logic blocked on divergence, not actual conflicts

Updates .github/workflows/create-upstream-pr.yml to only fail if a merge conflict occurs during upstream merge. No longer blocks or warns on branch divergence alone. No breaking changes. Workflow now matches real merge safety requirements.
2025-07-18 11:16:35 -05:00
smilerz
871074ef45 Fix workflow: restore infra files before merge
Because:
- Merge conflicts in infrastructure files caused manual intervention
- Upstream infra files must always be preferred to avoid drift

Moves 'Restore upstream infrastructure files' step before 'Merge upstream branch' in create-upstream-pr.yml. Ensures .github/workflows/ and cookbook/version_info.py are always restored from upstream before merging. No breaking changes. Affects .github/workflows/create-upstream-pr.yml only.
2025-07-18 11:00:08 -05:00
smilerz
2954334e1f refactored: update create-upstream-pr workflow 2025-07-18 07:45:07 -05:00
dependabot[bot]
1879cb20bc chore(deps): bump django-allauth in the pip-minors group
Bumps the pip-minors group with 1 update: [django-allauth](https://github.com/sponsors/pennersr).


Updates `django-allauth` from 65.9.0 to 65.10.0
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-version: 65.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-18 05:51:13 +00:00
smilerz
42b36e4bee add ingredient context setting to UserPreferenceStore 2025-07-14 19:15:53 -05:00
smilerz
4370232031 reverted updated pluralization on DRF Autoschema 2025-07-14 18:40:34 -05:00
smilerz
4bbf408a68 Fix infra-only divergence detection in workflow
Because:
- Previous logic did not strictly list files ahead in upstream
- Needed accurate detection for infra-only divergence

Updates .github/workflows/create-upstream-pr.yml to use git log --name-only refs/remotes/upstream/tandoor-1 ^working for correct file listing. No breaking changes. Infra-only divergence now correctly detected.
2025-07-14 14:32:37 -05:00
smilerz
cb06de7f89 Update infra divergence logic and sync dependencies
Because:
- Divergence in infra files should not block PRs
- Dependency tree needed deduplication and updates
- Each line under 72 chars

.github/workflows/create-upstream-pr.yml: Adds logic to skip divergence errors if only infrastructure files differ. vue/package.json, vue/yarn.lock: Adds/updates several dependencies and synchronizes lockfile. No breaking changes. No test code affected.
2025-07-14 14:07:54 -05:00
smilerz
763f53f579 update accidentally changed files during rebase 2025-07-14 12:33:13 -05:00
smilerz
69fb501b37 rebase fixes 2025-07-14 12:03:46 -05:00
smilerz
ee027863ed Update upgrade for body-parser, brace-expansion, lodash.template
Because:
- Security advisories for these packages
- Vue 2 compatibility limits further upgrades

Upgrades body-parser to 1.20.3, brace-expansion to 1.1.12, lodash.template to 4.5.0
in vue/package.json and vue/yarn.lock. No breaking changes. Remaining advisories
require major upgrades incompatible with Vue 2.
2025-07-14 11:58:17 -05:00
smilerz
7e9abcc3ee update create-upstream-pr.yml workflow 2025-07-14 11:58:17 -05:00
smilerz
f5fe770991 Update Node.js to 20 in CI and Docker workflows
Because:
- Node.js 18 is deprecated and no longer supported
- Ensures CI and Docker builds use the latest LTS version

Updates .github/workflows/ci.yml and docker-publish.yml to use only Node.js 20. Removes Node.js 18 from matrix and build steps. No breaking changes expected. All CI and container builds now standardized on Node.js 20.
2025-07-14 11:58:16 -05:00
smilerz
91921d2179 refine upstream PR workflow 2025-07-14 11:58:16 -05:00
dependabot[bot]
cba0ad2862 chore(deps): bump the pip-patches group with 2 updates
---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: aiohttp
  dependency-version: 3.12.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:16 -05:00
dependabot[bot]
d613e8c5d2 chore(deps): bump pytubefix from 9.2.2 to 9.3.0 in the pip-minors group
---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 9.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:15 -05:00
smilerz
92b06c47d5 Merge upstream changes while preserving custom workflows and version info
- Updated all upstream changes from tandoor-1
- Preserved custom GitHub workflows and version_info.py
- Comprehensive sync excluding only protected files
2025-07-14 11:58:15 -05:00
smilerz
d547607feb Update .gitattributes with custom merge driver for complete file protection 2025-07-14 11:58:14 -05:00
smilerz
400f025169 Add .gitattributes for selective merge control 2025-07-14 11:58:14 -05:00
smilerz
7372f7513c WIP: build workflow to create upstream PR on docker publish 2025-07-14 11:58:13 -05:00
smilerz
de509aca9f Update auto-merge workflow to use official actions/create-github-app-token
Because:
- Primary GitHub action is preferred over 3rd party for token generation
- actions/create-github-app-token is not deprecated and is the recommended approach

Replaces tibdex/github-app-token with actions/create-github-app-token in dependabot-automerge.yml. Updates input keys to match official action. No breaking changes. Only .github/workflows/dependabot-automerge.yml affected.
2025-07-14 11:58:12 -05:00
smilerz
46abee647f remove devcontainer updates in dependabot.yml 2025-07-14 11:58:12 -05:00
smilerz
378e503ea4 update offical github actions to pinned versions 2025-07-14 11:58:11 -05:00
smilerz
a7c54c4b96 remvoe labels from npm-patches 2025-07-14 11:58:10 -05:00
smilerz
71b64f61d0 update github workflow permissions 2025-07-14 11:58:10 -05:00
smilerz
6ae3245a79 Update GitHub Actions security with SHA pinning and minimal permissions
Because:
- Actions used version tags vulnerable to supply chain attacks
- Workflows lacked minimal permission scoping for security
- Required immutable references per security best practices

Pins all GitHub Actions to latest SHA commits with version comments across 5 workflow files. Adds minimal permissions at workflow and job levels following principle of least privilege. Updates ci.yml, codeql-analysis.yml, dependabot-automerge.yml, docker-publish.yml, push-orchestrator.yml. Enhances dependabot.yml with automerge labels for npm patches. No breaking changes.
2025-07-14 11:58:08 -05:00
smilerz
e2c058db1c update dependabot configuration 2025-07-14 11:58:06 -05:00
dependabot[bot]
7aa476f822 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.7.0 to 15.8.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.7.0...15.8.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-version: 15.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:06 -05:00
smilerz
77e60643f9 update dependabot 2025-07-14 11:58:05 -05:00
smilerz
85e5613254 fixed tibdex/github-app-token@v2.1.0 2025-07-14 11:58:05 -05:00
smilerz
04f5fe02d5 Refactor GitHub Actions workflow architecture
Because:
- Push events triggered CI on every push causing redundant runs
- Docker builds ran unnecessarily when CI failed
- Dependabot automerge lacked proper validation and security
- Workflow files had inconsistent naming and structure

Restructures CI/CD pipeline with push orchestrator controlling workflow execution.
Adds conditional CI execution based on PR merge detection. Updates dependabot
automerge with enhanced validation, bot token usage, and security restrictions.
Renames docker-publish-fork.yml to docker-publish.yml for clarity. Removes
duplicate validate-pr-labels.yml logic now handled in dependabot workflow.
Downgrades recipe-scrapers to 15.7.0 for compatibility. Affects all GitHub
Actions workflows and requirements.txt.
2025-07-14 11:58:02 -05:00
dependabot[bot]
b0b773fe44 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.7.0 to 15.8.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.7.0...15.8.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-version: 15.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:01 -05:00
smilerz
75f884161e Update requirements.txt 2025-07-14 11:58:01 -05:00
smilerz
658f9e0c7b downgrade to python 3.12 2025-07-14 11:58:00 -05:00
dependabot[bot]
2e15a91c08 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.7.0 to 15.8.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.7.0...15.8.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-version: 15.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:00 -05:00
smilerz
29b463fa4a testing 2025-07-14 11:58:00 -05:00
dependabot[bot]
eea53c71ab chore(deps): bump the pip-minors group with 2 updates
Bumps the pip-minors group with 2 updates: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) and [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `recipe-scrapers` from 15.7.0 to 15.8.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.7.0...15.8.0)

Updates `pytubefix` from 9.1.1 to 9.2.2
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.1.1...v9.2.2)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-version: 15.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
- dependency-name: pytubefix
  dependency-version: 9.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:59 -05:00
smilerz
a6ca6075ad troubleshooting tasks 2025-07-14 11:57:59 -05:00
smilerz
811c5e51ba test behavior of push trigger with file filter 2025-07-14 11:57:58 -05:00
dependabot[bot]
e4e2da8790 chore(deps)(deps): bump python from 3.12-alpine3.21 to 3.13-alpine3.21
Bumps python from 3.12-alpine3.21 to 3.13-alpine3.21.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.13-alpine3.21
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:58 -05:00
smilerz
a3c3740805 Update dependabot.yml 2025-07-14 11:57:57 -05:00
smilerz
abf203db7e Add push trigger for Dependabot Docker builds
Because:
- Dependabot dependency updates need immediate Docker builds
- Workflow_run trigger has delays and complexity
- Direct push events are more reliable for automation

Adds push trigger on working branch for dependency files and workflows. Updates conditional logic to handle push events from dependabot[bot]. Removes comment header from dependabot.yml and adds dependencies label.
2025-07-14 11:57:57 -05:00
dependabot[bot]
b824b1112c chore(deps): bump peter-evans/create-or-update-comment
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](23ff15729e...71345be026)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:56 -05:00
smilerz
d75e568ad6 Fix Dependabot workflow trigger events
Because:
- Workflow only ran on labeled/opened events
- PR updates (synchronize) weren't triggering auto-merge
- Reopened PRs needed workflow re-execution

Adds synchronize and reopened events to pull_request_target trigger in dependabot-automerge.yml. Ensures workflow runs when Dependabot updates PRs with new commits or when PRs are reopened.
2025-07-14 11:57:56 -05:00
smilerz
555e3aa095 Update Dependabot automerge workflow and config
Because:
- Auto-approve action needed integrated review message
- Previous automerge action was suboptimal
- Dependabot label naming inconsistency

Replaces alexwilson/enable-github-automerge-action with daneden/enable-automerge-action for better author validation. Adds review message to hmarr/auto-approve-action. Updates dependabot.yml label from github-actions to github_actions for consistency.
2025-07-14 11:57:55 -05:00
smilerz
cc2dc072a0 Optimize Docker workflow to prevent skipped jobs
Because:
- Workflow triggered on all branches creating many skipped jobs
- Branch filtering at trigger level is more efficient
- Redundant head_branch check was unnecessary

Adds branches filter to workflow_run trigger and simplifies conditional logic in docker-publish-fork.yml. Prevents workflow from starting on non-working branches, eliminating skipped job clutter.
2025-07-14 11:57:55 -05:00
smilerz
f47142acbe Update Dependabot merge method from SQUASH to REBASE
Because:
- SQUASH blocks sequential PRs when branches become out-of-date
- REBASE provides linear history without blocking issues
- GitHub auto-merge handles branch updates automatically with REBASE

Changes merge-method in dependabot-automerge.yml workflow. Eliminates need for manual branch update logic and prevents sequential PR conflicts.
2025-07-14 11:57:54 -05:00
smilerz
b3deccc8ea Fix Dependabot merge method parameter
Because:
- API expects uppercase merge method value
- squash was invalid, causing workflow failures
- GitHub GraphQL requires SQUASH not squash

Changes merge-method from squash to SQUASH in dependabot-automerge.yml workflow. Fixes PullRequestMergeMethod validation error.
2025-07-14 11:57:54 -05:00
smilerz
4609d25c32 Update Dependabot to run daily for pip packages
Because:
- Weekly updates were too slow for critical dependencies
- Recipe-scrapers needed faster patch deployment
- Custom workflow was security risk with manual approval

Changes Dependabot pip schedule from weekly to daily in dependabot.yml. Reduces patch cooldown to 1 day. Removes custom auto-update-recipe-scrapers.yml workflow to consolidate all updates through secure Dependabot flow. Adds artifact retention to CI workflow.
2025-07-14 11:57:53 -05:00
smilerz
90f018479a Fix Dependabot workflow permissions error
Because:
- pull_request events have read-only token permissions
- Dependabot auto-merge was failing with access errors
- Workflow needs write permissions for PR approval

Changes pull_request to pull_request_target in dependabot-automerge.yml workflow. This provides necessary write permissions for auto-approval and merge actions triggered by Dependabot PRs.
2025-07-14 11:57:52 -05:00
smilerz
c5f78aebdc pin peter-evans/create-or-update-comment version to v4.0.0 2025-07-14 11:57:52 -05:00
smilerz
9572211cac Update GitHub workflows and dependency management
Because:
- Dependabot automerge needed dedicated workflow
- Recipe scrapers automation was complex and error-prone
- CodeQL analysis had unnecessary matrix complexity
- Development dependencies needed proper separation

Adds dependabot-automerge.yml and validate-pr-labels.yml workflows.
Refactors auto-update-recipe-scrapers.yml to simplify update logic.
Removes matrix strategy from codeql-analysis.yml for clarity.
Updates dependabot.yml to exclude pytest from grouped updates.
Moves django-debug-toolbar to development section in requirements.txt.
Adds Python 3.13 to CI test matrix.
2025-07-14 11:57:50 -05:00
dependabot[bot]
09e82be391 chore(deps)(deps): bump stefanzweifel/git-auto-commit-action from 5 to 6 (#33)
Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 5 to 6.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:50 -05:00
smilerz
8258c6ee53 enable dependabot 2025-07-14 11:57:49 -05:00
smilerz
9b7529956e disable dependabot 2025-07-14 11:57:48 -05:00
smilerz
876f477005 Fix factory datetime fields and update test deps
Because:
- MealPlan factory used future_date for DateTimeField model
- Deprecated Faker API caused test failures
- Arithmetic error in recipe factory loop
- Test dependencies needed compatibility updates

Fixes cookbook/tests/factories/__init__.py to use proper datetime
methods for MealPlan from_date/to_date fields. Updates deprecated
FakerFactory to modern Faker instance. Corrects arithmetic bug in
RecipeFactory step generation. Updates test dependencies including
pytest 8.3.5 and pytest-factoryboy 2.6.0. Improves code formatting
across test files. Adds pytest-specific dependabot grouping.
2025-07-14 11:57:47 -05:00
smilerz
1f16cd9bf4 Re-enable dependabot updates by removing global ignores
Because:
- Universal ignore patterns block all dependency management
- Testing configuration changes now complete
- Selective Vue major version blocks still needed

Removes global "dependency-name: *" ignore patterns from all ecosystems in .github/dependabot.yml. Restores automatic dependency updates while preserving Vue/Pinia major version restrictions.
2025-07-14 11:57:46 -05:00
smilerz
9c90bb67c2 Disable all dependabot updates and reorganize config
Because:
- All dependency updates need temporary blocking for testing
- Configuration sections lack consistent ordering
- Ecosystem-specific settings scattered throughout

Adds universal ignore pattern to all package ecosystems in .github/dependabot.yml. Reorders configuration blocks for consistency and removes redundant vue label from npm ecosystem.
2025-07-14 11:57:46 -05:00
smilerz
e6ba81cb9c Update dependabot.yml 2025-07-14 11:57:45 -05:00
smilerz
aa5d3e4a5c Fix dependabot config by removing unsupported cooldowns
Because:
- GitHub Actions ecosystem doesn't support cooldown feature
- Docker ecosystem doesn't support cooldown configuration
- Unsupported options cause dependabot validation errors

Removes cooldown blocks from github-actions and docker ecosystems in .github/dependabot.yml. Fixes configuration validation errors for ecosystems that don't support cooldown timing controls.
2025-07-14 11:57:45 -05:00
smilerz
9f3c24cb6a Fix invalid dependabot syntax with Vue ignore pattern
Because:
- update-types array syntax invalid in allow configuration
- Complex allow rules failed to constrain major updates
- Single ignore rule provides clearer dependency control

Removes invalid allow rules with update-types arrays and adds vue* major version ignore in .github/dependabot.yml. Fixes syntax error while preventing breaking Vue upgrades.
2025-07-14 11:57:45 -05:00
smilerz
a11c1b9ffe Optimize dependabot and CI workflow configurations
Because:
- Unlimited PRs create review bottlenecks
- Ungrouped updates generate excessive notifications
- Missing cooldowns cause rapid-fire dependency updates
- CI needs to validate PRs against working branch

Adds PR limits, dependency grouping, and cooldowns to .github/dependabot.yml. Updates ci.yml to test PRs against working branch. Adds docker build concurrency control.
2025-07-14 11:57:43 -05:00
smilerz
6d157e9129 Refactor recipe-scrapers updates to daily automation
Because:
- Manual merge workflow creates unnecessary review overhead
- Daily checks ensure faster security and feature updates
- Single workflow eliminates dependabot conflicts

Replaces auto-merge-recipe-scrapers.yml with auto-update-recipe-scrapers.yml. Implements daily PyPI checks, automatic requirements.txt updates, and PR creation with automerge labels.
2025-07-14 11:57:42 -05:00
smilerz
245925f2e0 Add comprehensive dependabot automation config
Because:
- Inconsistent commit messages break automation workflows
- Missing labels prevent automated categorization
- Limited ecosystems lack Docker dependency updates
- Need unlimited PRs for complete dependency coverage

Adds unlimited PR limits, standardized commit prefixes, automerge labels, and Docker ecosystem to .github/dependabot.yml. Removes recipe-scrapers ignore and enables full automation support.
2025-07-14 11:57:42 -05:00
smilerz
11067cb9ff Fix dependabot config with duplicate pip ecosystems
Because:
- GitHub Dependabot rejects overlapping package ecosystems
- Multiple pip configs for same directory cause failures
- Consolidated config maintains functionality

Removes duplicate pip ecosystem from .github/dependabot.yml. Eliminates daily recipe-scrapers config in favor of single weekly pip ecosystem with ignore pattern.
2025-07-14 11:57:41 -05:00
smilerz
ad38afe1f0 Refactor Docker workflow to run only after CI success
Because:
- Unnecessary Docker builds on every push waste resources
- Docker builds should only trigger after passing CI
- Workflow naming should reflect fork-specific purpose

Renames docker-publish-beta.yml to docker-publish-fork.yml and changes trigger from push events to workflow_run completion. Adds conditional logic to build only when CI passes on working branch.
2025-07-14 11:57:41 -05:00
smilerz
ef8d2cc743 Add CI workflows and update dependency management
Because:
- Repository lacked automated testing infrastructure
- Dependabot needed recipe-scrapers daily updates
- CodeQL security scanning was missing
- Alpine base image needed update

Adds comprehensive CI workflow with Python/Node matrix testing, caching for staticfiles,
and Vue unit tests in .github/workflows/ci.yml. Adds CodeQL security analysis workflow
with JavaScript and Python language support in .github/workflows/codeql-analysis.yml.
Adds auto-merge workflow for recipe-scrapers Dependabot PRs in
.github/workflows/auto-merge-recipe-scrapers.yml. Updates .github/dependabot.yml to
enable daily recipe-scrapers updates and weekly updates for other dependencies.
Updates Dockerfile to use Alpine 3.21 base image. Reverts recipe-scrapers to 15.5.0.

Affected files: .github/dependabot.yml, .github/workflows/*, Dockerfile, requirements.txt
2025-07-14 11:57:40 -05:00
dependabot[bot]
4a398181ec Bump docker/build-push-action from 5 to 6 (#4)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:39 -05:00
dependabot[bot]
809364090d Bump actions/setup-node from 3 to 4 (#3)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:38 -05:00
dependabot[bot]
f5531894e5 Bump actions/checkout from 3 to 4 (#5)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:38 -05:00
smilerz
019e507f6e add dependabot configuration file 2025-07-14 11:57:37 -05:00
smilerz
5cdb49b870 update formating 2025-07-14 11:57:36 -05:00
smilerz
61e3fa5b4f more twiddling 2025-07-14 11:57:34 -05:00
smilerz
bdfeef3763 remove pre-generating staticfiles 2025-07-14 11:57:34 -05:00
smilerz
b665811a5e add console statements for SCRIPT_NAME variables 2025-07-14 11:57:33 -05:00
smilerz
7218ab7870 update migrations 2025-07-14 11:57:33 -05:00
smilerz
dad03c8e3d regen openapi 2025-07-14 11:57:32 -05:00
smilerz
02ba32cade update API name 2025-07-14 11:57:30 -05:00
smilerz
0fe1ff0e1b python client generation 2025-07-14 11:57:29 -05:00
smilerz
5784abbd9d regen openapi
fix various merge errors
2025-07-14 11:57:28 -05:00
smilerz
a25dac0ad5 allow passing PK to nested serializer instead of object 2025-07-14 11:57:27 -05:00
smilerz
5766d2a6cb reorder migration 2025-07-14 11:57:27 -05:00
smilerz
299f48eb8e commented out DB settings for testing 2025-07-14 11:57:26 -05:00
smilerz
bd7011c0ef commented out testing config in settings.py 2025-07-14 11:57:26 -05:00
smilerz
b8e7ff7ea5 rebase 2025-07-14 11:57:25 -05:00
smilerz
4646b441ae regen openapi and migrations after rebase 2025-07-14 11:57:23 -05:00
smilerz
0db0905a89 fixed substitute display 2025-07-14 11:57:23 -05:00
smilerz
24f1ed585a fixed displaying substitutes 2025-07-14 11:57:22 -05:00
smilerz
2148fd95d2 added ignore shopping to ingredient context menu 2025-07-14 11:57:21 -05:00
smilerz
6e0d478e8e added SubstiteBadge on Cookbook Slider 2025-07-14 11:57:21 -05:00
smilerz
e6e86af878 temporarily removing migration until ready to merge 2025-07-14 11:57:20 -05:00
smilerz
5a57672c86 fixed context menu display on ShoppingModal 2025-07-14 11:57:20 -05:00
smilerz
bfea4f3483 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:57:18 -05:00
smilerz
7af970de0a fixed substitute display 2025-07-14 11:57:18 -05:00
smilerz
37c36eb673 added SubstiteBadge on Cookbook Slider 2025-07-14 11:57:17 -05:00
smilerz
2639c3ba6b temporarily removing migration until ready to merge 2025-07-14 11:57:17 -05:00
smilerz
d6f2610fa1 fixed context menu display on ShoppingModal 2025-07-14 11:57:16 -05:00
smilerz
7fc46aae45 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:57:15 -05:00
smilerz
8aacd9f2b3 created never_used_food filter 2025-07-14 11:57:13 -05:00
smilerz
7deca69075 rebase from develop 2025-07-14 11:57:12 -05:00
smilerz
e07dc34bf2 created never_used_food filter 2025-07-14 11:57:11 -05:00
smilerz
1412c5912b changed never_used_food to ignore substitutions when filtering onhand 2025-07-14 11:57:10 -05:00
smilerz
427e20a0b2 rebase from develop 2025-07-14 11:57:09 -05:00
smilerz
4febdeb2bf rebase 2025-07-14 11:57:08 -05:00
smilerz
036fe20cfd regen openapi and migrations after rebase 2025-07-14 11:57:06 -05:00
smilerz
cd106d28d0 fixed substitute display 2025-07-14 11:57:06 -05:00
smilerz
abbba50c1e fixed displaying substitutes 2025-07-14 11:57:05 -05:00
smilerz
6c0f2cf1e8 added ignore shopping to ingredient context menu 2025-07-14 11:57:04 -05:00
smilerz
b505821b29 added SubstiteBadge on Cookbook Slider 2025-07-14 11:57:03 -05:00
smilerz
00734f12e6 temporarily removing migration until ready to merge 2025-07-14 11:57:03 -05:00
smilerz
a8819e7f42 fixed context menu display on ShoppingModal 2025-07-14 11:57:02 -05:00
smilerz
fad9989a18 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:57:01 -05:00
smilerz
be5e2e2d66 fixed substitute display 2025-07-14 11:57:00 -05:00
smilerz
36a5802c91 added SubstiteBadge on Cookbook Slider 2025-07-14 11:57:00 -05:00
smilerz
cee95719d4 temporarily removing migration until ready to merge 2025-07-14 11:56:59 -05:00
smilerz
4dab2be02d fixed context menu display on ShoppingModal 2025-07-14 11:56:59 -05:00
smilerz
f168e09cf4 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:56:58 -05:00
smilerz
c3873754fc regen openapi 2025-07-14 11:56:47 -05:00
smilerz
9916e58b37 prettier, isort, black, flake8 configured with rational defaults
instructions for VSCode written
2025-07-14 11:56:46 -05:00
smilerz
2196c1dfa5 autoformat and linting for python (autopep8 and flake8)
instructions to setup for VSCode
2025-07-14 11:56:45 -05:00
smilerz
3da2c6c279 fix docker build action 2025-07-14 11:56:43 -05:00
smilerz
f54a58ebbb updated docker build 2025-07-14 11:56:43 -05:00
smilerz
e9f46f7088 updated actions 2025-07-14 11:56:42 -05:00
smilerz
f06cf23111 updated docker build action 2025-07-14 11:56:42 -05:00
smilerz
a4b582b4cc fix docker build action 2025-07-14 11:56:42 -05:00
smilerz
56b4b01038 updated docker build 2025-07-14 11:56:41 -05:00
smilerz
9aba66634e add manual docker build to gihub actions 2025-07-14 11:56:41 -05:00
smilerz
63ddd66306 updated actions 2025-07-14 11:56:40 -05:00
smilerz
232e832c1d updated docker build action 2025-07-14 11:56:40 -05:00
smilerz
5e91709421 regen openapi and migrations after rebase 2025-07-14 11:56:38 -05:00
smilerz
d37ea1e473 fixed substitute display 2025-07-14 11:56:38 -05:00
smilerz
096ff5d0d8 fixed displaying substitutes 2025-07-14 11:56:37 -05:00
smilerz
e20f59a66a added ignore shopping to ingredient context menu 2025-07-14 11:56:29 -05:00
smilerz
2cb44c8933 added SubstiteBadge on Cookbook Slider 2025-07-14 11:56:28 -05:00
smilerz
64703c8497 temporarily removing migration until ready to merge 2025-07-14 11:56:28 -05:00
smilerz
d6e74a2ef5 fixed context menu display on ShoppingModal 2025-07-14 11:56:27 -05:00
smilerz
b1d491165e added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:56:26 -05:00
smilerz
e94c3a2355 fixed substitute display 2025-07-14 11:56:25 -05:00
smilerz
71b05e16f8 change shopping status on api to SerialMethod over annotation 2025-07-14 11:56:24 -05:00
smilerz
4beed65983 added SubstiteBadge on Cookbook Slider 2025-07-14 11:56:23 -05:00
smilerz
ca03fcff33 temporarily removing migration until ready to merge 2025-07-14 11:56:23 -05:00
smilerz
d3333322c4 fixed context menu display on ShoppingModal 2025-07-14 11:56:22 -05:00
smilerz
2b8172f25c added get_substitutes api, finished context menu 2025-07-14 11:56:21 -05:00
smilerz
9496292816 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:56:19 -05:00
smilerz
cf32549a22 changed never_used_food to ignore substitutions when filtering onhand 2025-07-14 11:56:18 -05:00
smilerz
13abf6da82 rebase from develop 2025-07-14 11:56:17 -05:00
smilerz
c72f697d57 personal changes to github actions 2025-07-14 11:56:15 -05:00
vabene1111
03cfe18acd reverted api plan ical having optional parameters 2025-07-14 11:56:14 -05:00
smilerz
9939ef76c1 change all naive datetimes to timezone aware dateimes 2025-07-14 11:56:11 -05:00
smilerz
ae387507f7 Update build-docker.yml
update docker build to use node 20
2025-07-14 11:07:00 -05:00
smilerz
969443acd1 Merge pull request #3823 from smilerz/upstream/tandoor-1
Prepare tandoor-1 branch for maintenance updates
2025-07-14 11:01:40 -05:00
smilerz
3606612135 Add ingredient context features and update dependencies
Because:
- Missing never_used_food parameter broke recipe search filtering
- Users needed ingredient substitute functionality
- Ingredient context menu was incomplete for recipe management
- PDF viewer and dependencies required updates for compatibility
- Development tools needed formatting and linting improvements

Adds never_used_food QueryParam to RecipeViewSet for proper search filtering. Implements ingredient substitutes API endpoint and ingredient_context user preference field. Creates IngredientContextMenu component and Substitute badge for enhanced recipe management. Updates PDF.js from legacy version to modern web-based implementation with SVG icons and improved localization. Refreshes Vue dependencies including security updates and formatting tools. Adds comprehensive test coverage for nested serializers and search functionality. Updates VS Code settings for better development workflow.
2025-07-13 17:02:21 -05:00
smilerz
1ee48edfb5 Update Docker workflow for tandoor-v1 maintenance branch
Because:
- Workflow needed to target specific tandoor-1 branch
- Maintenance builds required different notification messaging
- Multiple workflows needed to be disabled for focused maintenance

Updates build-docker.yml to trigger only on tandoor-1 branch pushes with tandoor-v1 tags.
Adds maintenance-specific Discord notification job. Disables other CI workflows by
restricting to 'disabled' branch. Affects .github/workflows/ files for Docker builds,
CI, and CodeQL analysis.
2025-07-13 13:44:46 -05:00
1010 changed files with 85492 additions and 106428 deletions

12
.github/FUNDING.yml vendored
View File

@@ -1,12 +0,0 @@
# These are supported funding model platforms
github: [vabene1111]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View File

@@ -1,26 +1,92 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: "devcontainers"
directory: "/"
schedule:
interval: weekly
- package-ecosystem: "pip"
directory: "/"
open-pull-requests-limit: 20
schedule:
interval: "monthly"
interval: "daily"
cooldown:
semver-major-days: 30
semver-minor-days: 7
semver-patch-days: 3
exclude:
- "recipe-scrapers"
directory: "/"
groups:
pip-patches:
exclude-patterns: ["pytest*"]
update-types: ["patch"]
pip-minors:
exclude-patterns: ["pytest*"]
update-types: ["minor"]
pip-pytest:
patterns: ["pytest*"]
update-types: ["minor", "patch"]
commit-message:
prefix: "chore"
include: "scope"
labels:
- "python"
- "dependencies"
- "automerge"
- package-ecosystem: "npm"
directory: "/vue/"
open-pull-requests-limit: 20
schedule:
interval: "monthly"
cooldown:
semver-major-days: 30
semver-minor-days: 3
semver-patch-days: 3
directory: "vue"
ignore:
- dependency-name: "vue"
update-types: ["version-update:semver-major"]
- dependency-name: "vue*"
update-types: ["version-update:semver-major"]
- dependency-name: "pinia"
update-types: ["version-update:semver-major"]
groups:
npm-patches:
patterns: ["*"]
update-types: ["patch"]
npm-minors:
patterns: ["*"]
update-types: ["minor"]
commit-message:
prefix: "chore"
include: "scope"
labels:
- "javascript"
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
open-pull-requests-limit: 20
schedule:
interval: "monthly"
interval: "weekly"
directory: "/.github/"
groups:
actions-updates:
patterns: ["*"]
update-types: ["patch", "minor"]
commit-message:
prefix: "chore"
include: "scope"
labels:
- "github_actions"
- "dependencies"
- "automerge"
- package-ecosystem: "docker"
open-pull-requests-limit: 5
schedule:
interval: "weekly"
directory: "/"
commit-message:
prefix: "chore"
include: "scope"
labels:
- "docker"
- "dependencies"

View File

@@ -1,6 +1,8 @@
name: Build Docker Container with open data plugin installed
on: push
on:
push:
branches: [disabled]
jobs:
build-container:

View File

@@ -1,6 +1,8 @@
name: Build Docker Container
on: push
on:
push:
branches: [tandoor-1]
jobs:
build-container:
@@ -17,27 +19,16 @@ jobs:
# Standard build config
- name: Standard
dockerfile: Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
platforms: linux/amd64,linux/arm64
suffix: ""
continue-on-error: false
steps:
- uses: actions/checkout@v4
- name: Get version number
id: get_version
run: |
if [[ "$GITHUB_REF" = refs/tags/* ]]; then
echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
elif [[ "$GITHUB_REF" = refs/heads/beta ]]; then
echo VERSION=beta >> $GITHUB_OUTPUT
else
echo VERSION=develop >> $GITHUB_OUTPUT
fi
# Build Vue frontend
- uses: actions/setup-node@v4
with:
node-version: '18'
node-version: '20'
cache: yarn
cache-dependency-path: vue/yarn.lock
- name: Install dependencies
@@ -75,11 +66,8 @@ jobs:
latest=false
suffix=${{ matrix.suffix }}
tags: |
type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/') }}
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=ref,event=branch
type=raw,value=tandoor-v1-{{date 'YYYYMMDD'}}
type=raw,value=tandoor-v1
- name: Build and Push
uses: docker/build-push-action@v5
with:
@@ -93,34 +81,3 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max
notify-stable:
name: Notify Stable
runs-on: ubuntu-latest
needs: build-container
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Set tag name
run: |
# Strip "refs/tags/" prefix
echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
# Send stable discord notification
- name: Discord notification
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
uses: Ilshidur/action-discord@0.3.2
with:
args: '🚀 Version {{ VERSION }} of tandoor has been released 🥳 Check it out https://github.com/vabene1111/recipes/releases/tag/{{ VERSION }}'
notify-beta:
name: Notify Beta
runs-on: ubuntu-latest
needs: build-container
if: github.ref == 'refs/heads/beta'
steps:
# Send beta discord notification
- name: Discord notification
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_BETA_WEBHOOK }}
uses: Ilshidur/action-discord@0.3.2
with:
args: '🚀 The BETA Image has been updated! 🥳'

View File

@@ -1,6 +1,11 @@
name: Continuous Integration
on: [push, pull_request]
on:
push:
branches: [disabled]
pull_request:
branches: [disabled]
jobs:
build:

View File

@@ -2,9 +2,10 @@ name: "Code scanning - action"
on:
push:
branches: [disabled]
pull_request:
schedule:
- cron: '0 13 * * 2'
branches: [disabled]
jobs:
CodeQL-Build:

235
.github/workflows/create-upstream-pr.yml vendored Normal file
View File

@@ -0,0 +1,235 @@
name: Create Upstream PR
on:
workflow_run:
workflows: ["Push Workflow"]
types:
- completed
branches: [working]
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
create-upstream-pr:
runs-on: ubuntu-latest
concurrency:
group: upstream-pr
cancel-in-progress: true
if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
steps:
- name: Generate GitHub App token (for branch push)
id: generate_token_push
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.BOT_APP_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Checkout fork
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ steps.generate_token_push.outputs.token }}
- name: Setup git user
run: |
git config user.name "GitHub Action"
git config user.email "action@github.com"
- name: Add upstream remote
run: |
git remote get-url upstream || git remote add upstream https://github.com/TandoorRecipes/recipes.git
git fetch upstream
- name: Ensure jq is available
run: |
if ! command -v jq &> /dev/null; then
sudo apt-get update && sudo apt-get install -y jq
fi
- name: Create upstream PR branch
id: create_branch
run: |
BRANCH_NAME="upstream-pr-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH_NAME" || { echo "❌ Failed to create branch $BRANCH_NAME"; exit 1; }
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
echo "✅ Created branch: $BRANCH_NAME"
- name: Restore upstream infrastructure files
id: restore_infra
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
git checkout "$BRANCH_NAME"
git rm .gitattributes || echo " .gitattributes not present, skipping removal."
git checkout upstream/tandoor-1 -- .github/workflows/ || echo " No workflows to restore."
git checkout upstream/tandoor-1 -- cookbook/version_info.py || echo " No version_info.py to restore."
git add .
if ! git diff --cached --quiet; then
git commit -m $'Restore upstream infrastructure files for PR\n\n- Removed fork-specific .gitattributes\n- Restored upstream .github/workflows/\n- Restored upstream cookbook/version_info.py'
echo "✅ Infrastructure files restored and committed."
else
echo " No infrastructure changes to commit."
fi
- name: Push branch to fork (after infra commit)
env:
GITHUB_TOKEN: ${{ steps.generate_token_push.outputs.token }}
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
echo "Pushing branch $BRANCH_NAME after infra file restore."
git push --set-upstream https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "$BRANCH_NAME"
echo "✅ Branch pushed: $BRANCH_NAME (infra files)"
- name: Merge upstream branch
id: merge_upstream
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
git checkout "$BRANCH_NAME"
if git merge --no-edit upstream/tandoor-1; then
echo "✅ Merged upstream/tandoor-1 into $BRANCH_NAME"
if ! git diff --cached --quiet || [ -n "$(git log origin/$BRANCH_NAME..$BRANCH_NAME --oneline)" ]; then
echo "merge_commit=true" >> $GITHUB_OUTPUT
else
echo "merge_commit=false" >> $GITHUB_OUTPUT
fi
else
echo "❌ Merge conflict detected during merge with upstream/tandoor-1. Please resolve conflicts manually." >&2
exit 1
fi
- name: Push branch to fork (after merge)
if: steps.merge_upstream.outputs.merge_commit == 'true'
env:
GITHUB_TOKEN: ${{ steps.generate_token_push.outputs.token }}
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
echo "Pushing branch $BRANCH_NAME after merge."
git push https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "$BRANCH_NAME"
echo "✅ Branch pushed: $BRANCH_NAME (after merge)"
- name: Get commit list
id: get_commits
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
COMMITS_RAW=$(git log upstream/tandoor-1..$BRANCH_NAME --oneline)
if [ -z "$COMMITS_RAW" ]; then
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "✅ No commits to contribute - exiting gracefully"
exit 0
fi
echo "commits_raw<<EOF" >> $GITHUB_OUTPUT
printf "%s\n" "$COMMITS_RAW" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "has_changes=true" >> $GITHUB_OUTPUT
- name: Get changed files
id: get_files
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
CHANGED_FILES=$(git diff upstream/tandoor-1..$BRANCH_NAME --name-only)
echo "changed_files<<EOF" >> $GITHUB_OUTPUT
printf "%s\n" "$CHANGED_FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
CODE_COUNT=$(echo "$CHANGED_FILES" | grep -c '^' || true)
echo "code_count=$CODE_COUNT" >> $GITHUB_OUTPUT
- name: Summarize changes
id: summarize_changes
run: |
CODE_COUNT=${{ steps.get_files.outputs.code_count }}
CHANGES_SUMMARY="Modified $CODE_COUNT code files"
echo "changes_summary=$CHANGES_SUMMARY" >> $GITHUB_OUTPUT
- name: Prepare commit subjects and JSON
id: prepare_commits
run: |
COMMITS_RAW="${{ steps.get_commits.outputs.commits_raw }}"
CODE_FILES=( $(echo "${{ steps.get_files.outputs.changed_files }}") )
FILTERED_COMMITS_JSON="[]"
COMMIT_SUBJECTS_ARRAY=()
INFRA_PATTERNS='^\.github/|^cookbook/version_info\.py$|^\.gitattributes$'
while IFS= read -r commit_line; do
if [ -z "$commit_line" ]; then continue; fi
COMMIT_SHA=$(echo "$commit_line" | cut -d' ' -f1)
COMMIT_SUBJECT=$(echo "$commit_line" | cut -d' ' -f2-)
mapfile -t COMMIT_FILES < <(git diff-tree --no-commit-id --name-only -r "$COMMIT_SHA" | grep -Ev "$INFRA_PATTERNS")
# Only include commit if it touches at least one non-infra file that is still different
INCLUDE_COMMIT=false
for file in "${COMMIT_FILES[@]}"; do
for code_file in "${CODE_FILES[@]}"; do
if [ "$file" = "$code_file" ]; then
INCLUDE_COMMIT=true
break 2
fi
done
done
if [ "$INCLUDE_COMMIT" = true ]; then
COMMIT_SUBJECTS_ARRAY+=("- $COMMIT_SUBJECT")
FILES_JSON=$(printf '%s\n' "${COMMIT_FILES[@]}" | jq -R . | jq -s .)
COMMIT_JSON=$(jq -n --arg sha "$COMMIT_SHA" --arg subject "$COMMIT_SUBJECT" --argjson files "$FILES_JSON" '{sha: $sha, subject: $subject, files: $files}')
FILTERED_COMMITS_JSON=$(echo "$FILTERED_COMMITS_JSON" | jq --argjson item "$COMMIT_JSON" '. + [$item]')
fi
done <<< "$COMMITS_RAW"
echo 'commits_json<<EOF' >> $GITHUB_OUTPUT
printf "%s\n" "$FILTERED_COMMITS_JSON" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
echo "commit_subjects<<EOF" >> $GITHUB_OUTPUT
printf '%s\n' "${COMMIT_SUBJECTS_ARRAY[@]}" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
- name: Build PR content
if: steps.get_commits.outputs.has_changes == 'true'
id: build_pr_content
uses: actions/github-script@v7
env:
COMMITS_JSON: ${{ steps.prepare_commits.outputs.commits_json }}
CHANGES_SUMMARY: ${{ steps.summarize_changes.outputs.changes_summary }}
BRANCH_NAME: ${{ steps.create_branch.outputs.branch_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
with:
github-token: ${{ steps.generate_token_push.outputs.token }}
script: |
const commits = JSON.parse(process.env.COMMITS_JSON || '[]');
const changesSummary = process.env.CHANGES_SUMMARY || 'Changes from fork';
const branchName = process.env.BRANCH_NAME || '';
const repo = process.env.GITHUB_REPOSITORY || '';
const [owner, reponame] = repo.split('/');
const nCommits = commits.length;
let prTitle = 'Sync ' + nCommits + ' commit' + (nCommits !== 1 ? 's' : '') + ' from fork:';
if (nCommits > 0) {
prTitle += ' ' + commits[0].subject;
}
let prBody = `This PR syncs ${nCommits} commit${nCommits !== 1 ? 's' : ''} from branch ${branchName}.\n\n`;
prBody += `**Changes Summary:**\n${changesSummary}\n\n`;
prBody += `Commits included:\n`;
for (const c of commits) {
prBody += `- ${c.subject} ([${c.sha}](https://github.com/${owner}/${reponame}/commit/${c.sha}))\n`;
}
prBody += `\n---\n`;
core.setOutput('prTitle', prTitle);
core.setOutput('prBody', prBody);
- name: Print PR creation instructions
if: steps.get_commits.outputs.has_changes == 'true'
env:
BRANCH_NAME: ${{ steps.create_branch.outputs.branch_name }}
PR_TITLE: ${{ steps.build_pr_content.outputs.prTitle }}
PR_BODY: ${{ steps.build_pr_content.outputs.prBody }}
run: |
echo "✅ Branch pushed: $BRANCH_NAME"
echo
echo "To create a pull request, open:"
echo "https://github.com/TandoorRecipes/recipes/compare/tandoor-1...${{ github.repository_owner }}:$BRANCH_NAME?expand=1"
echo
echo "Suggested PR title:"
echo "$PR_TITLE"
echo
echo "Suggested PR body:"
echo "$PR_BODY"

View File

@@ -0,0 +1,68 @@
name: Dependabot Auto-merge
on:
pull_request_target:
types: [opened, synchronize, reopened, ready_for_review]
permissions:
contents: read
jobs:
validate:
if: contains(github.event.pull_request.labels.*.name, 'automerge') && github.event.pull_request.user.login != 'dependabot[bot]'
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
pull-requests: write
steps:
- name: Remove automerge label
uses: actions-ecosystem/action-remove-labels@d05162525702062b6bdef750ed8594fc024b3ed7 # v1.3.0
with:
labels: automerge
- name: Add invalid label
uses: actions-ecosystem/action-add-labels@1a9c3715c0037e96b97bb38cb4c4b56a1f1d4871 # v1.1.0
with:
labels: invalid
- name: Comment restriction
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
⚠️ **Automerge Restriction Notice**
The `automerge` label has been removed from this PR because it has restricted use. Only PRs created by `dependabot[bot]` are allowed to use the automerge functionality.
If you believe this is an error, please contact a repository maintainer.
auto-merge:
if: github.actor == 'dependabot[bot]' && contains(github.event.pull_request.labels.*.name, 'automerge')
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Generate token
id: generate_token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.BOT_APP_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Auto-approve PR
uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v4.0.0
with:
github-token: ${{ steps.generate_token.outputs.token }}
review-message: |
🤖 **Dependabot Auto-merge**
This PR has been automatically approved and enabled for auto-merge. It will be merged automatically once all required checks pass.
- name: Enable auto-merge
uses: daneden/enable-automerge-action@f8558b65c5b8d8bfb592c4e74e3d491624a38fbd # v1.0.0
with:
github-token: ${{ steps.generate_token.outputs.token }}
allowed-author: "dependabot[bot]"
merge-method: REBASE # Allowed values: MERGE | SQUASH | REBASE

75
.github/workflows/docker-publish.yml vendored Normal file
View File

@@ -0,0 +1,75 @@
name: publish docker image
on:
workflow_dispatch:
workflow_call:
permissions:
contents: read
packages: write
jobs:
build-container:
concurrency:
group: docker-build-${{ github.ref }}
name: Build Tandoor Container
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.continue-on-error }}
permissions:
contents: read
packages: write
strategy:
matrix:
include:
# Standard build config
- name: Standard
dockerfile: Dockerfile
platforms: linux/amd64
suffix: ""
continue-on-error: false
steps:
- uses: actions/checkout@v4
- name: Get version number
id: get_version
run: |
echo VERSION=latest >> $GITHUB_OUTPUT
# Build Vue frontend
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: yarn
cache-dependency-path: vue/yarn.lock
- name: Install dependencies
working-directory: ./vue
run: yarn install --frozen-lockfile
- name: Build dependencies
working-directory: ./vue
run: yarn build
- name: Set up QEMU
uses: docker/setup-qemu-action@05340d1c670183e7caabdb33ae9f1c80fae3b0c2 # v3.1.0
- name: Set up Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.7.1
- name: Login to Docker Hub
uses: docker/login-action@3d100841f68d4548bf57e52eb27bd33ec5069f55 # v3.3.0
with:
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
- name: Docker Metadata
id: meta
uses: docker/metadata-action@be19121bfd18b9c1ac415d9571d4f67b9b357886 # v5.6.0
with:
images: |
smilerz/recipes
tags: |
type=raw,value=latest,enable={{is_default_branch}}
- name: Build and Push
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.10.0
with:
context: .
file: ${{ matrix.dockerfile }}
pull: true
push: true
platforms: ${{ matrix.platforms }}
tags: '${{ steps.meta.outputs.tags }}'
cache-from: type=gha
cache-to: type=gha,mode=max

57
.github/workflows/push-orchestrator.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: Push Workflow
on:
push:
branches: [working]
permissions:
contents: read
jobs:
detect-pr-merge:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
outputs:
pr_merged: ${{ steps.detect_pr.outputs.result }}
steps:
- name: Check if commit is part of a PR
id: detect_pr
uses: actions/github-script@v7
with:
script: |
const prs = await github.rest.repos.listPullRequestsAssociatedWithCommit({
owner: context.repo.owner,
repo: context.repo.repo,
commit_sha: context.sha
});
const pr = prs.data.find(pr => pr.merged_at);
const merged = pr ? 'true' : 'false';
// Set the output explicitly
core.setOutput('pr_merged', merged);
return merged;
run-ci:
needs: detect-pr-merge
if: needs.detect-pr-merge.outputs.pr_merged != 'true'
permissions:
contents: read
actions: write
uses: ./.github/workflows/ci.yml
secrets: inherit
docker-publish:
permissions:
contents: read
packages: write
needs: [detect-pr-merge, run-ci]
if: |
needs.detect-pr-merge.outputs.pr_merged == 'true' ||
needs.run-ci.result == 'success'
uses: ./.github/workflows/docker-publish.yml
secrets: inherit

View File

@@ -0,0 +1,268 @@
name: Stage Branch for PR
on:
workflow_run:
workflows: ["Push Workflow"]
types:
- completed
branches: [working]
workflow_dispatch:
permissions:
contents: write
pull-requests: write
issues: write
jobs:
create-upstream-pr:
runs-on: ubuntu-latest
concurrency:
group: upstream-pr
cancel-in-progress: true
if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
steps:
- name: Generate GitHub App token (for branch push)
id: generate_token_push
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.BOT_APP_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Checkout fork
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ steps.generate_token_push.outputs.token }}
- name: Setup git user
run: |
git config user.name "GitHub Action"
git config user.email "action@github.com"
- name: Add upstream remote
run: |
git remote get-url upstream || git remote add upstream https://github.com/TandoorRecipes/recipes.git
git fetch upstream
- name: Ensure jq is available
run: |
if ! command -v jq &> /dev/null; then
sudo apt-get update && sudo apt-get install -y jq
fi
- name: Create upstream PR branch
id: create_branch
run: |
BRANCH_NAME="upstream-pr-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH_NAME" || { echo "❌ Failed to create branch $BRANCH_NAME"; exit 1; }
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
echo "✅ Created branch: $BRANCH_NAME"
- name: Restore upstream infrastructure files
id: restore_infra
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
git checkout "$BRANCH_NAME"
git rm .gitattributes || echo " .gitattributes not present, skipping removal."
git checkout upstream/tandoor-1 -- .github/workflows/ || echo " No workflows to restore."
git checkout upstream/tandoor-1 -- cookbook/version_info.py || echo " No version_info.py to restore."
git add .
if ! git diff --cached --quiet; then
git commit -m $'Restore upstream infrastructure files for PR\n\n- Removed fork-specific .gitattributes\n- Restored upstream .github/workflows/\n- Restored upstream cookbook/version_info.py'
echo "✅ Infrastructure files restored and committed."
else
echo " No infrastructure changes to commit."
fi
- name: Push branch to fork (after infra commit)
env:
GITHUB_TOKEN: ${{ steps.generate_token_push.outputs.token }}
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
echo "Pushing branch $BRANCH_NAME after infra file restore."
git push --set-upstream https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "$BRANCH_NAME"
echo "✅ Branch pushed: $BRANCH_NAME (infra files)"
- name: Merge upstream branch
id: merge_upstream
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
git checkout "$BRANCH_NAME"
if git merge --no-edit upstream/tandoor-1; then
echo "✅ Merged upstream/tandoor-1 into $BRANCH_NAME"
if ! git diff --cached --quiet || [ -n "$(git log origin/$BRANCH_NAME..$BRANCH_NAME --oneline)" ]; then
echo "merge_commit=true" >> $GITHUB_OUTPUT
else
echo "merge_commit=false" >> $GITHUB_OUTPUT
fi
else
echo "❌ Merge conflict detected during merge with upstream/tandoor-1. Please resolve conflicts manually." >&2
exit 1
fi
- name: Push branch to fork (after merge)
if: steps.merge_upstream.outputs.merge_commit == 'true'
env:
GITHUB_TOKEN: ${{ steps.generate_token_push.outputs.token }}
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
echo "Pushing branch $BRANCH_NAME after merge."
git push https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "$BRANCH_NAME"
echo "✅ Branch pushed: $BRANCH_NAME (after merge)"
- name: Get commit list
id: get_commits
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
COMMITS_RAW=$(git log upstream/tandoor-1..$BRANCH_NAME --oneline)
if [ -z "$COMMITS_RAW" ]; then
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "✅ No commits to contribute - exiting gracefully"
exit 0
fi
echo "commits_raw<<EOF" >> $GITHUB_OUTPUT
printf "%s\n" "$COMMITS_RAW" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "has_changes=true" >> $GITHUB_OUTPUT
- name: Get changed files
id: get_files
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
INFRA_PATTERNS='^\.github/|^cookbook/version_info\.py$|^\.gitattributes$'
CHANGED_FILES=$(git diff upstream/tandoor-1..$BRANCH_NAME --name-only | grep -Ev "$INFRA_PATTERNS" || true)
echo "changed_files<<EOF" >> $GITHUB_OUTPUT
printf "%s\n" "$CHANGED_FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
CODE_COUNT=$(echo "$CHANGED_FILES" | grep -c '^' || true)
echo "code_count=$CODE_COUNT" >> $GITHUB_OUTPUT
- name: Summarize changes
id: summarize_changes
run: |
CODE_COUNT=${{ steps.get_files.outputs.code_count }}
CHANGED_FILES="${{ steps.get_files.outputs.changed_files }}"
if [ "$CODE_COUNT" -eq 0 ]; then
CHANGES_SUMMARY="No code files changed. No PR required."
else
CHANGES_SUMMARY="Modified $CODE_COUNT code files"
CHANGES_SUMMARY+=$'\nFiles changed:'
CHANGES_SUMMARY+=$'\n'$(echo "$CHANGED_FILES" | sed '/^$/d; s/^/- /')
fi
echo "changes_summary<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGES_SUMMARY" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Prepare commit subjects and JSON
id: prepare_commits
run: |
COMMITS_RAW="${{ steps.get_commits.outputs.commits_raw }}"
CODE_FILES=( $(echo "${{ steps.get_files.outputs.changed_files }}") )
FILTERED_COMMITS_JSON="[]"
COMMIT_SUBJECTS_ARRAY=()
INFRA_PATTERNS='^\.github/|^cookbook/version_info\.py$|^\.gitattributes$'
while IFS= read -r commit_line; do
if [ -z "$commit_line" ]; then continue; fi
COMMIT_SHA=$(echo "$commit_line" | cut -d' ' -f1)
COMMIT_SUBJECT=$(echo "$commit_line" | cut -d' ' -f2-)
mapfile -t COMMIT_FILES < <(git diff-tree --no-commit-id --name-only -r "$COMMIT_SHA" | grep -Ev "$INFRA_PATTERNS")
# Only include commit if it touches at least one non-infra file that is still different
INCLUDE_COMMIT=false
for file in "${COMMIT_FILES[@]}"; do
for code_file in "${CODE_FILES[@]}"; do
if [ "$file" = "$code_file" ]; then
INCLUDE_COMMIT=true
break 2
fi
done
done
if [ "$INCLUDE_COMMIT" = true ]; then
COMMIT_SUBJECTS_ARRAY+=("- $COMMIT_SUBJECT")
FILES_JSON=$(printf '%s\n' "${COMMIT_FILES[@]}" | jq -R . | jq -s .)
COMMIT_JSON=$(jq -n --arg sha "$COMMIT_SHA" --arg subject "$COMMIT_SUBJECT" --argjson files "$FILES_JSON" '{sha: $sha, subject: $subject, files: $files}')
FILTERED_COMMITS_JSON=$(echo "$FILTERED_COMMITS_JSON" | jq --argjson item "$COMMIT_JSON" '. + [$item]')
fi
done <<< "$COMMITS_RAW"
echo 'commits_json<<EOF' >> $GITHUB_OUTPUT
printf "%s\n" "$FILTERED_COMMITS_JSON" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
echo "commit_subjects<<EOF" >> $GITHUB_OUTPUT
printf '%s\n' "${COMMIT_SUBJECTS_ARRAY[@]}" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
- name: Build PR content
if: steps.get_commits.outputs.has_changes == 'true'
id: build_pr_content
uses: actions/github-script@v7
env:
COMMITS_JSON: ${{ steps.prepare_commits.outputs.commits_json }}
CHANGES_SUMMARY: ${{ steps.summarize_changes.outputs.changes_summary }}
BRANCH_NAME: ${{ steps.create_branch.outputs.branch_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
with:
github-token: ${{ steps.generate_token_push.outputs.token }}
script: |
const commits = JSON.parse(process.env.COMMITS_JSON || '[]');
const changesSummary = process.env.CHANGES_SUMMARY || 'Changes from fork';
const branchName = process.env.BRANCH_NAME || '';
const repo = process.env.GITHUB_REPOSITORY || '';
const [owner, reponame] = repo.split('/');
const nCommits = commits.length;
let prTitle = 'Sync ' + nCommits + ' commit' + (nCommits !== 1 ? 's' : '') + ' from fork:';
if (nCommits > 0) {
prTitle += ' ' + commits[0].subject;
}
let prBody = `This PR syncs ${nCommits} commit${nCommits !== 1 ? 's' : ''} from branch ${branchName}.\n\n`;
prBody += `**Changes Summary:**\n${changesSummary}\n\n`;
prBody += `Commits included:\n`;
for (const c of commits) {
prBody += `- ${c.subject} ([${c.sha}](https://github.com/${owner}/${reponame}/commit/${c.sha}))\n`;
}
core.setOutput('prTitle', prTitle);
core.setOutput('prBody', prBody);
- name: Open issue for PR checklist
if: steps.get_files.outputs.code_count != '0' && steps.prepare_commits.outputs.commit_subjects != ''
uses: actions/github-script@v7
env:
BRANCH_NAME: ${{ steps.create_branch.outputs.branch_name }}
PR_TITLE: ${{ steps.build_pr_content.outputs.prTitle }}
PR_BODY: ${{ steps.build_pr_content.outputs.prBody }}
GITHUB_REPOSITORY: ${{ github.repository }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const branch = process.env.BRANCH_NAME || '';
const prTitle = process.env.PR_TITLE || '';
const prBody = process.env.PR_BODY || '';
const repo = process.env.GITHUB_REPOSITORY || '';
const [owner, reponame] = repo.split('/');
const prLink = `https://github.com/TandoorRecipes/recipes/compare/tandoor-1...${owner}:${branch}?expand=1&title=${encodeURIComponent(prTitle)}`;
const issueTitle = `Manual Upstream PR Checklist: ${branch}`;
const issueBody = [
`A new branch is ready for upstream PR submission.`,
'',
`- [ ] Submit PR: [Create PR](${prLink})`,
'- [ ] PR merged',
'- [ ] Branch deleted',
'',
'**Suggested PR title:**',
'```',
prTitle,
'```',
'**Suggested PR body:**',
'```',
prBody,
'```',
].join('\n');
await github.rest.issues.create({
owner,
repo: reponame,
title: issueTitle,
body: issueBody
});

28
.vscode/launch.json vendored
View File

@@ -1,18 +1,18 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Django",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": ["runserver"],
"django": true,
"justMyCode": true
},
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Django",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": ["runserver"],
"django": true,
"justMyCode": true
},
{
"name": "Python: Debug Tests",
"type": "debugpy",

25
.vscode/settings.json vendored
View File

@@ -1,14 +1,15 @@
{
"python.testing.pytestArgs": [
"cookbook/tests"
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[python]": {
"editor.defaultFormatter": "eeyore.yapf",
},
"yapf.args": [],
"isort.args": []
"python.testing.pytestArgs": ["cookbook/tests"],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[python]": {
"editor.defaultFormatter": "eeyore.yapf"
},
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
},
"yapf.args": [],
"isort.args": []
}

View File

@@ -1,4 +1,4 @@
FROM python:3.12-alpine3.19
FROM python:3.12.12-alpine3.21
#Install all dependencies.
RUN apk add --no-cache postgresql-libs postgresql-client gettext zlib libjpeg libwebp libxml2-dev libxslt-dev openldap git

View File

@@ -1,29 +1,62 @@
from abc import ABC, abstractmethod
from dataclasses import dataclass
from typing import Optional
from cookbook.models import ShoppingListEntry, Space, ConnectorConfig
from cookbook.models import ConnectorConfig, ShoppingListEntry, User
@dataclass
class UserDTO:
username: str
first_name: Optional[str]
@staticmethod
def create_from_user(instance: User) -> 'UserDTO':
return UserDTO(username=instance.username, first_name=instance.first_name if instance.first_name else None)
@dataclass
class ShoppingListEntryDTO:
food_name: str
amount: Optional[float]
base_unit: Optional[str]
unit_name: Optional[str]
created_by: UserDTO
@staticmethod
def try_create_from_entry(instance: ShoppingListEntry) -> Optional['ShoppingListEntryDTO']:
if instance.food is None or instance.created_by is None:
return None
return ShoppingListEntryDTO(
food_name=instance.food.name,
amount=instance.amount if instance.amount else None,
unit_name=instance.unit.name if instance.unit else None,
base_unit=instance.unit.base_unit if instance.unit and instance.unit.base_unit else None,
created_by=UserDTO.create_from_user(instance.created_by),
)
# A Connector is 'destroyed' & recreated each time 'any' ConnectorConfig in a space changes.
class Connector(ABC):
@abstractmethod
def __init__(self, config: ConnectorConfig):
pass
@abstractmethod
async def on_shopping_list_entry_created(self, space: Space, instance: ShoppingListEntry) -> None:
async def on_shopping_list_entry_created(self, instance: ShoppingListEntryDTO) -> None:
pass
# This method might not trigger on 'direct' entry updates: https://stackoverflow.com/a/35238823
@abstractmethod
async def on_shopping_list_entry_updated(self, space: Space, instance: ShoppingListEntry) -> None:
async def on_shopping_list_entry_updated(self, instance: ShoppingListEntryDTO) -> None:
pass
@abstractmethod
async def on_shopping_list_entry_deleted(self, space: Space, instance: ShoppingListEntry) -> None:
async def on_shopping_list_entry_deleted(self, instance: ShoppingListEntryDTO) -> None:
pass
@abstractmethod
async def close(self) -> None:
pass
# TODO: Add Recipes & possibly Meal Place listeners/hooks (And maybe more?)

View File

@@ -7,14 +7,14 @@ from dataclasses import dataclass
from enum import Enum
from logging import Logger
from types import UnionType
from typing import List, Any, Dict, Optional, Type
from typing import Any, Dict, List, Optional, Type
from django.conf import settings
from django_scopes import scope
from cookbook.connectors.connector import Connector
from cookbook.connectors.connector import Connector, ShoppingListEntryDTO
from cookbook.connectors.homeassistant import HomeAssistant
from cookbook.models import ShoppingListEntry, Space, ConnectorConfig
from cookbook.models import ConnectorConfig, ShoppingListEntry, Space
REGISTERED_CLASSES: UnionType | Type = ShoppingListEntry
@@ -56,15 +56,16 @@ class ConnectorManager(metaclass=Singleton):
def __init__(self):
self._logger = logging.getLogger("recipes.connector")
self._logger.debug("ConnectorManager initializing")
self._queue = queue.Queue(maxsize=settings.EXTERNAL_CONNECTORS_QUEUE_SIZE)
self._worker = threading.Thread(target=self.worker, args=(0, self._queue,), daemon=True)
self._worker = threading.Thread(target=self.worker, args=(
0,
self._queue,
), daemon=True)
self._worker.start()
# Called by post save & post delete signals
def __call__(self, instance: Any, **kwargs) -> None:
if not isinstance(instance, self._listening_to_classes) or not hasattr(instance, "space"):
return
action_type: ActionType
if "created" in kwargs and kwargs["created"]:
action_type = ActionType.CREATED
@@ -75,16 +76,37 @@ class ConnectorManager(metaclass=Singleton):
else:
return
try:
self._queue.put_nowait(Work(instance, action_type))
except queue.Full:
self._logger.info(f"queue was full, so skipping {action_type} of type {type(instance)}")
return
self._add_work(action_type, instance)
def _add_work(self, action_type: ActionType, *instances: REGISTERED_CLASSES):
for instance in instances:
if not isinstance(instance, self._listening_to_classes) or not hasattr(instance, "space"):
continue
try:
_force_load_instance(instance)
self._queue.put_nowait(Work(instance, action_type))
except queue.Full:
self._logger.info(f"queue was full, so skipping {action_type} of type {type(instance)}")
def stop(self):
self._queue.join()
self._worker.join()
@classmethod
def is_initialized(cls):
return cls in cls._instances
@staticmethod
def add_work(action_type: ActionType, *instances: REGISTERED_CLASSES):
"""
Manually inject work that failed to come in through the __call__ (aka Django signal)
Before the work is processed, we check if the connectionManager is initialized, because if it's not, we don't want to accidentally initialize it.
Be careful calling it, because it might result in a instance being processed twice.
"""
if not ConnectorManager.is_initialized():
return
ConnectorManager()._add_work(action_type, *instances)
@staticmethod
def worker(worker_id: int, worker_queue: queue.Queue):
logger = logging.getLogger("recipes.connector.worker")
@@ -116,7 +138,7 @@ class ConnectorManager(metaclass=Singleton):
if connectors is None or refresh_connector_cache:
if connectors is not None:
loop.run_until_complete(close_connectors(connectors))
loop.run_until_complete(_close_connectors(connectors))
with scope(space=space):
connectors: List[Connector] = list()
@@ -142,7 +164,7 @@ class ConnectorManager(metaclass=Singleton):
logger.debug(f"running {len(connectors)} connectors for {item.instance=} with {item.actionType=}")
loop.run_until_complete(run_connectors(connectors, space, item.instance, item.actionType))
loop.run_until_complete(run_connectors(connectors, item.instance, item.actionType))
worker_queue.task_done()
logger.info(f"terminating ConnectionManager worker {worker_id}")
@@ -159,7 +181,14 @@ class ConnectorManager(metaclass=Singleton):
return None
async def close_connectors(connectors: List[Connector]):
def _force_load_instance(instance: REGISTERED_CLASSES):
if isinstance(instance, ShoppingListEntry):
_ = instance.food # Force load food
_ = instance.unit # Force load unit
_ = instance.created_by # Force load created_by
async def _close_connectors(connectors: List[Connector]):
tasks: List[Task] = [asyncio.create_task(connector.close()) for connector in connectors]
if len(tasks) == 0:
@@ -171,22 +200,24 @@ async def close_connectors(connectors: List[Connector]):
logging.exception("received an exception while closing one of the connectors")
async def run_connectors(connectors: List[Connector], space: Space, instance: REGISTERED_CLASSES, action_type: ActionType):
async def run_connectors(connectors: List[Connector], instance: REGISTERED_CLASSES, action_type: ActionType):
tasks: List[Task] = list()
if isinstance(instance, ShoppingListEntry):
shopping_list_entry: ShoppingListEntry = instance
shopping_list_entry = ShoppingListEntryDTO.try_create_from_entry(instance)
if shopping_list_entry is None:
return
match action_type:
case ActionType.CREATED:
for connector in connectors:
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_created(space, shopping_list_entry)))
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_created(shopping_list_entry)))
case ActionType.UPDATED:
for connector in connectors:
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_updated(space, shopping_list_entry)))
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_updated(shopping_list_entry)))
case ActionType.DELETED:
for connector in connectors:
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_deleted(space, shopping_list_entry)))
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_deleted(shopping_list_entry)))
if len(tasks) == 0:
return

View File

@@ -37,7 +37,7 @@ def get_filetype(name):
def is_file_type_allowed(filename, image_only=False):
is_file_allowed = False
allowed_file_types = ['.pdf','.docx', '.xlsx']
allowed_file_types = ['.pdf', '.docx', '.xlsx']
allowed_image_types = ['.png', '.jpg', '.jpeg', '.gif', '.webp']
check_list = allowed_image_types
if not image_only:
@@ -49,6 +49,7 @@ def is_file_type_allowed(filename, image_only=False):
return is_file_allowed
# TODO this whole file needs proper documentation, refactoring, and testing
# TODO also add env variable to define which images sizes should be compressed
# filetype argument can not be optional, otherwise this function will treat all images as if they were a jpeg

View File

@@ -58,8 +58,7 @@ class IngredientParser:
def parse_fraction(self, x):
if len(x) == 1 and 'fraction' in unicodedata.decomposition(x):
frac_split = unicodedata.decomposition(x[-1:]).split()
return (float((frac_split[1]).replace('003', ''))
/ float((frac_split[3]).replace('003', '')))
return (float((frac_split[1]).replace('003', '')) / float((frac_split[3]).replace('003', '')))
else:
frac_split = x.split('/')
if not len(frac_split) == 2:
@@ -78,12 +77,7 @@ class IngredientParser:
did_check_frac = False
end = 0
while (end < len(x) and (x[end] in string.digits
or (
(x[end] == '.' or x[end] == ',' or x[end] == '/')
and end + 1 < len(x)
and x[end + 1] in string.digits
))):
while (end < len(x) and (x[end] in string.digits or ((x[end] == '.' or x[end] == ',' or x[end] == '/') and end + 1 < len(x) and x[end + 1] in string.digits))):
end += 1
if end > 0:
if "/" in x[:end]:
@@ -107,8 +101,9 @@ class IngredientParser:
if unit is not None and unit.strip() == '':
unit = None
if unit is not None and (unit.startswith('(') or unit.startswith(
'-')): # i dont know any unit that starts with ( or - so its likely an alternative like 1L (500ml) Water or 2-3
if unit is not None and (
unit.startswith('(') or unit.startswith('-')
): # i dont know any unit that starts with ( or - so its likely an alternative like 1L (500ml) Water or 2-3
unit = None
note = x
return amount, unit, note

View File

@@ -9,8 +9,7 @@ from django.utils import timezone, translation
from cookbook.helper.HelperFunctions import Round, str2bool
from cookbook.managers import DICTIONARY
from cookbook.models import (CookLog, CustomFilter, Food, Keyword, Recipe, SearchFields,
SearchPreference, ViewLog)
from cookbook.models import CookLog, CustomFilter, Food, Keyword, Recipe, SearchFields, SearchPreference, ViewLog
from recipes import settings
@@ -22,11 +21,8 @@ class RecipeSearch():
self._request = request
self._queryset = None
if f := params.get('filter', None):
custom_filter = (
CustomFilter.objects.filter(id=f, space=self._request.space)
.filter(Q(created_by=self._request.user) | Q(shared=self._request.user) | Q(recipebook__shared=self._request.user))
.first()
)
custom_filter = (CustomFilter.objects.filter(id=f, space=self._request.space).filter(
Q(created_by=self._request.user) | Q(shared=self._request.user) | Q(recipebook__shared=self._request.user)).first())
if custom_filter:
self._params = {**json.loads(custom_filter.search)}
self._original_params = {**(params or {})}
@@ -38,7 +34,7 @@ class RecipeSearch():
else:
self._params = {**(params or {})}
if self._request.user.is_authenticated:
CACHE_KEY = f'search_pref_{request.user.id}'
CACHE_KEY = f"search_pref_{request.user.id}"
cached_result = cache.get(CACHE_KEY, default=None)
if cached_result is not None:
self._search_prefs = cached_result
@@ -47,44 +43,43 @@ class RecipeSearch():
cache.set(CACHE_KEY, self._search_prefs, timeout=10)
else:
self._search_prefs = SearchPreference()
self._string = self._params.get('query').strip(
) if self._params.get('query', None) else None
self._rating = self._params.get('rating', None)
self._string = self._params.get("query").strip() if self._params.get("query", None) else None
self._rating = self._params.get("rating", None)
self._keywords = {
'or': self._params.get('keywords_or', None) or self._params.get('keywords', None),
'and': self._params.get('keywords_and', None),
'or_not': self._params.get('keywords_or_not', None),
'and_not': self._params.get('keywords_and_not', None)
"or": self._params.get("keywords_or", None) or self._params.get("keywords", None),
"and": self._params.get("keywords_and", None),
"or_not": self._params.get("keywords_or_not", None),
"and_not": self._params.get("keywords_and_not", None),
}
self._foods = {
'or': self._params.get('foods_or', None) or self._params.get('foods', None),
'and': self._params.get('foods_and', None),
'or_not': self._params.get('foods_or_not', None),
'and_not': self._params.get('foods_and_not', None)
"or": self._params.get("foods_or", None) or self._params.get("foods", None),
"and": self._params.get("foods_and", None),
"or_not": self._params.get("foods_or_not", None),
"and_not": self._params.get("foods_and_not", None),
}
self._books = {
'or': self._params.get('books_or', None) or self._params.get('books', None),
'and': self._params.get('books_and', None),
'or_not': self._params.get('books_or_not', None),
'and_not': self._params.get('books_and_not', None)
"or": self._params.get("books_or", None) or self._params.get("books", None),
"and": self._params.get("books_and", None),
"or_not": self._params.get("books_or_not", None),
"and_not": self._params.get("books_and_not", None),
}
self._steps = self._params.get('steps', None)
self._units = self._params.get('units', None)
self._steps = self._params.get("steps", None)
self._units = self._params.get("units", None)
# TODO add created by
# TODO image exists
self._sort_order = self._params.get('sort_order', None)
self._internal = str2bool(self._params.get('internal', None))
self._random = str2bool(self._params.get('random', False))
self._new = str2bool(self._params.get('new', False))
self._num_recent = int(self._params.get('num_recent', 0))
self._include_children = str2bool(
self._params.get('include_children', None))
self._timescooked = self._params.get('timescooked', None)
self._cookedon = self._params.get('cookedon', None)
self._createdon = self._params.get('createdon', None)
self._updatedon = self._params.get('updatedon', None)
self._viewedon = self._params.get('viewedon', None)
self._makenow = self._params.get('makenow', None)
self._sort_order = self._params.get("sort_order", None)
self._internal = str2bool(self._params.get("internal", None))
self._random = str2bool(self._params.get("random", False))
self._new = str2bool(self._params.get("new", False))
self._num_recent = int(self._params.get("num_recent", 0))
self._include_children = str2bool(self._params.get("include_children", None))
self._timescooked = self._params.get("timescooked", None)
self._cookedon = self._params.get("cookedon", None)
self._createdon = self._params.get("createdon", None)
self._updatedon = self._params.get("updatedon", None)
self._viewedon = self._params.get("viewedon", None)
self._makenow = self._params.get("makenow", None)
self._never_used_food = str2bool(self._params.get("never_used_food", False))
# this supports hidden feature to find recipes missing X ingredients
if isinstance(self._makenow, bool) and self._makenow == True:
self._makenow = 0
@@ -96,7 +91,7 @@ class RecipeSearch():
except (ValueError, TypeError):
self._makenow = None
self._search_type = self._search_prefs.search or 'plain'
self._search_type = self._search_prefs.search or "plain"
if self._string:
if self._postgres:
self._unaccent_include = self._search_prefs.unaccent.values_list('field', flat=True)
@@ -114,11 +109,7 @@ class RecipeSearch():
if self._search_type not in ['websearch', 'raw'] and self._trigram_include:
self._trigram = True
self.search_query = SearchQuery(
self._string,
search_type=self._search_type,
config=self._language,
)
self.search_query = SearchQuery(self._string, search_type=self._search_type, config=self._language, )
self.search_rank = None
self.orderby = []
self._filters = None
@@ -127,7 +118,6 @@ class RecipeSearch():
def get_queryset(self, queryset):
self._queryset = queryset
self._queryset = self._queryset.prefetch_related('keywords')
self._build_sort_order()
self._recently_viewed(num_recent=self._num_recent)
self._cooked_on_filter(cooked_date=self._cookedon)
@@ -144,6 +134,7 @@ class RecipeSearch():
self.step_filters(steps=self._steps)
self.unit_filters(units=self._units)
self._makenow_filter(missing=self._makenow)
self._never_used_food_filter()
self.string_filters(string=self._string)
return self._queryset.filter(space=self._request.space).order_by(*self.orderby)
@@ -151,22 +142,22 @@ class RecipeSearch():
for x in args:
if x in self.orderby:
return True
elif '-' + x in self.orderby:
elif "-" + x in self.orderby:
return True
return False
def _build_sort_order(self):
if self._random:
self.orderby = ['?']
self.orderby = ["?"]
else:
order = []
# TODO add userpreference for default sort order and replace '-favorite'
default_order = ['name']
default_order = ["name"]
# recent and new_recipe are always first; they float a few recipes to the top
if self._num_recent:
order += ['-recent']
order += ["-recent"]
if self._new:
order += ['-new_recipe']
order += ["-new_recipe"]
# if a sort order is provided by user - use that order
if self._sort_order:
@@ -175,20 +166,18 @@ class RecipeSearch():
else:
order += self._sort_order
if not self._postgres or not self._string:
if 'score' in order:
order.remove('score')
if '-score' in order:
order.remove('-score')
if "score" in order:
order.remove("score")
if "-score" in order:
order.remove("-score")
# if no sort order provided prioritize text search, followed by the default search
elif self._postgres and self._string and (self._trigram or self._fulltext_include):
order += ['-score', *default_order]
order += ["-score", *default_order]
# otherwise sort by the remaining order_by attributes or favorite by default
else:
order += default_order
order[:] = [Lower('name').asc() if x ==
'name' else x for x in order]
order[:] = [Lower('name').desc() if x ==
'-name' else x for x in order]
order[:] = [Lower("name").asc() if x == "name" else x for x in order]
order[:] = [Lower("name").desc() if x == "-name" else x for x in order]
self.orderby = order
def string_filters(self, string=None):
@@ -223,7 +212,7 @@ class RecipeSearch():
self._queryset = self._queryset.annotate(score=F('rank') + F('simularity'))
else:
query_filter = Q()
for f in [x + '__unaccent__iexact' if x in self._unaccent_include else x + '__iexact' for x in SearchFields.objects.all().values_list('field', flat=True)]:
for f in [x + "__unaccent__iexact" if x in self._unaccent_include else x + "__iexact" for x in SearchFields.objects.all().values_list("field", flat=True)]:
query_filter |= Q(**{"%s" % f: self._string})
self._queryset = self._queryset.filter(query_filter).distinct()
@@ -235,12 +224,11 @@ class RecipeSearch():
else:
default = timezone.now()
self._queryset = self._queryset.annotate(
lastcooked=Coalesce(Max(Case(When(cooklog__created_by=self._request.user, cooklog__space=self._request.space, then='cooklog__created_at'))), Value(default))
)
lastcooked=Coalesce(Max(Case(When(cooklog__created_by=self._request.user, cooklog__space=self._request.space, then='cooklog__created_at'))), Value(default)))
if cooked_date is None:
return
cooked_date = date(*[int(x)for x in cooked_date.split('-') if x != ''])
cooked_date = date(*[int(x) for x in cooked_date.split('-') if x != ''])
if lessthan:
self._queryset = self._queryset.filter(lastcooked__date__lte=cooked_date).exclude(lastcooked=default)
@@ -261,22 +249,21 @@ class RecipeSearch():
if updated_date is None:
return
lessthan = '-' in updated_date[:1]
updated_date = date(*[int(x)for x in updated_date.split('-') if x != ''])
updated_date = date(*[int(x) for x in updated_date.split('-') if x != ''])
if lessthan:
self._queryset = self._queryset.filter(updated_at__date__lte=updated_date)
else:
self._queryset = self._queryset.filter(updated_at__date__gte=updated_date)
def _viewed_on_filter(self, viewed_date=None):
if self._sort_includes('lastviewed') or viewed_date:
if self._sort_includes("lastviewed") or viewed_date:
longTimeAgo = timezone.now() - timedelta(days=100000)
self._queryset = self._queryset.annotate(
lastviewed=Coalesce(Max(Case(When(viewlog__created_by=self._request.user, viewlog__space=self._request.space, then='viewlog__created_at'))), Value(longTimeAgo))
)
lastviewed=Coalesce(Max(Case(When(viewlog__created_by=self._request.user, viewlog__space=self._request.space, then='viewlog__created_at'))), Value(longTimeAgo)))
if viewed_date is None:
return
lessthan = '-' in viewed_date[:1]
viewed_date = date(*[int(x)for x in viewed_date.split('-') if x != ''])
viewed_date = date(*[int(x) for x in viewed_date.split('-') if x != ''])
if lessthan:
self._queryset = self._queryset.filter(lastviewed__date__lte=viewed_date).exclude(lastviewed=longTimeAgo)
@@ -287,24 +274,17 @@ class RecipeSearch():
# TODO make new days a user-setting
if not self._new:
return
self._queryset = self._queryset.annotate(
new_recipe=Case(
When(created_at__gte=(timezone.now() - timedelta(days=new_days)), then=('pk')),
default=Value(0),
)
)
self._queryset = self._queryset.annotate(new_recipe=Case(When(created_at__gte=(timezone.now() - timedelta(days=new_days)), then=('pk')), default=Value(0), ))
def _recently_viewed(self, num_recent=None):
if not num_recent:
if self._sort_includes('lastviewed'):
self._queryset = self._queryset.annotate(lastviewed=Coalesce(
Max(Case(When(viewlog__created_by=self._request.user, viewlog__space=self._request.space, then='viewlog__pk'))), Value(0)))
if self._sort_includes("lastviewed"):
self._queryset = self._queryset.annotate(
lastviewed=Coalesce(Max(Case(When(viewlog__created_by=self._request.user, viewlog__space=self._request.space, then="viewlog__pk"))), Value(0)))
return
num_recent_recipes = (
ViewLog.objects.filter(created_by=self._request.user, space=self._request.space)
.values('recipe').annotate(recent=Max('created_at')).order_by('-recent')[:num_recent]
)
num_recent_recipes = (ViewLog.objects.filter(created_by=self._request.user,
space=self._request.space).values('recipe').annotate(recent=Max('created_at')).order_by('-recent')[:num_recent])
self._queryset = self._queryset.annotate(recent=Coalesce(Max(Case(When(pk__in=num_recent_recipes.values('recipe'), then='viewlog__pk'))), Value(0)))
def _favorite_recipes(self, times_cooked=None):
@@ -314,17 +294,13 @@ class RecipeSearch():
default = 1000
else:
default = 0
favorite_recipes = (
CookLog.objects.filter(created_by=self._request.user, space=self._request.space, recipe=OuterRef('pk'))
.values('recipe')
.annotate(count=Count('pk', distinct=True))
.values('count')
)
favorite_recipes = (CookLog.objects.filter(created_by=self._request.user, space=self._request.space,
recipe=OuterRef('pk')).values('recipe').annotate(count=Count('pk', distinct=True)).values('count'))
self._queryset = self._queryset.annotate(favorite=Coalesce(Subquery(favorite_recipes), default))
if times_cooked is None:
return
if times_cooked == '0':
if times_cooked == "0":
self._queryset = self._queryset.filter(favorite=0)
elif less_than:
self._queryset = self._queryset.filter(favorite__lte=int(times_cooked.replace('-', ''))).exclude(favorite=0)
@@ -341,23 +317,23 @@ class RecipeSearch():
kwargs[kw_filter] = [kwargs[kw_filter]]
keywords = Keyword.objects.filter(pk__in=kwargs[kw_filter])
if 'or' in kw_filter:
if "or" in kw_filter:
if self._include_children:
f_or = Q(keywords__in=Keyword.include_descendants(keywords))
else:
f_or = Q(keywords__in=keywords)
if 'not' in kw_filter:
if "not" in kw_filter:
self._queryset = self._queryset.exclude(f_or)
else:
self._queryset = self._queryset.filter(f_or)
elif 'and' in kw_filter:
elif "and" in kw_filter:
recipes = Recipe.objects.all()
for kw in keywords:
if self._include_children:
f_and = Q(keywords__in=kw.get_descendants_and_self())
else:
f_and = Q(keywords=kw)
if 'not' in kw_filter:
if "not" in kw_filter:
recipes = recipes.filter(f_and)
else:
self._queryset = self._queryset.filter(f_and)
@@ -374,24 +350,24 @@ class RecipeSearch():
kwargs[fd_filter] = [kwargs[fd_filter]]
foods = Food.objects.filter(pk__in=kwargs[fd_filter])
if 'or' in fd_filter:
if "or" in fd_filter:
if self._include_children:
f_or = Q(steps__ingredients__food__in=Food.include_descendants(foods))
else:
f_or = Q(steps__ingredients__food__in=foods)
if 'not' in fd_filter:
if "not" in fd_filter:
self._queryset = self._queryset.exclude(f_or)
else:
self._queryset = self._queryset.filter(f_or)
elif 'and' in fd_filter:
elif "and" in fd_filter:
recipes = Recipe.objects.all()
for food in foods:
if self._include_children:
f_and = Q(steps__ingredients__food__in=food.get_descendants_and_self())
else:
f_and = Q(steps__ingredients__food=food)
if 'not' in fd_filter:
if "not" in fd_filter:
recipes = recipes.filter(f_and)
else:
self._queryset = self._queryset.filter(f_and)
@@ -416,11 +392,11 @@ class RecipeSearch():
else:
default = 0
# TODO make ratings a settings user-only vs all-users
self._queryset = self._queryset.annotate(rating=Round(Avg(Case(When(cooklog__created_by=self._request.user, then='cooklog__rating'), default=default))))
self._queryset = self._queryset.annotate(rating=Round(Avg(Case(When(cooklog__created_by=self._request.user, then="cooklog__rating"), default=default))))
if rating is None:
return
if rating == '0':
if rating == "0":
self._queryset = self._queryset.filter(rating=0)
elif lessthan:
self._queryset = self._queryset.filter(rating__lte=int(rating[1:])).exclude(rating=0)
@@ -441,13 +417,13 @@ class RecipeSearch():
if not isinstance(kwargs[bk_filter], list):
kwargs[bk_filter] = [kwargs[bk_filter]]
if 'or' in bk_filter:
if "or" in bk_filter:
f = Q(recipebookentry__book__id__in=kwargs[bk_filter])
if 'not' in bk_filter:
if "not" in bk_filter:
self._queryset = self._queryset.exclude(f)
else:
self._queryset = self._queryset.filter(f)
elif 'and' in bk_filter:
elif "and" in bk_filter:
recipes = Recipe.objects.all()
for book in kwargs[bk_filter]:
if 'not' in bk_filter:
@@ -520,62 +496,66 @@ class RecipeSearch():
trigram += TrigramSimilarity(f, self._string)
else:
trigram = TrigramSimilarity(f, self._string)
self._fuzzy_match = (
Recipe.objects.annotate(trigram=trigram)
.distinct()
.annotate(simularity=Max('trigram'))
.values('id', 'simularity')
.filter(simularity__gt=self._search_prefs.trigram_threshold)
)
self._fuzzy_match = (Recipe.objects.annotate(trigram=trigram).distinct().annotate(simularity=Max('trigram')).values('id', 'simularity').filter(
simularity__gt=self._search_prefs.trigram_threshold))
self._filters += [Q(pk__in=self._fuzzy_match.values('pk'))]
def _makenow_filter(self, missing=None):
if missing is None or (isinstance(missing, bool) and missing == False):
return
shopping_users = [*self._request.user.get_shopping_share(), self._request.user]
onhand_filter = Q(steps__ingredients__food__onhand_users__in=shopping_users) # food onhand
onhand_filter = (
Q(steps__ingredients__food__onhand_users__in=shopping_users) # food onhand
# ignore substitutions when also using the never_used_food filter
if not self._never_used_food:
# or substitute food onhand
| Q(steps__ingredients__food__substitute__onhand_users__in=shopping_users)
| Q(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users))
| Q(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users))
)
makenow_recipes = Recipe.objects.annotate(
count_food=Count('steps__ingredients__food__pk', filter=Q(steps__ingredients__food__isnull=False), distinct=True),
count_onhand=Count('steps__ingredients__food__pk', filter=onhand_filter, distinct=True),
count_ignore_shopping=Count(
'steps__ingredients__food__pk', filter=Q(steps__ingredients__food__ignore_shopping=True, steps__ingredients__food__recipe__isnull=True), distinct=True
),
has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)), default=Value(0)),
has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)), default=Value(0))
).annotate(missingfood=F('count_food') - F('count_onhand') - F('count_ignore_shopping')).filter(missingfood__lte=missing)
onhand_filter |= (Q(steps__ingredients__food__substitute__onhand_users__in=shopping_users)
| Q(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users))
| Q(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users)))
makenow_recipes = (Recipe.objects.annotate(count_food=Count("steps__ingredients__food__pk", filter=Q(steps__ingredients__food__isnull=False), distinct=True),
count_onhand=Count("steps__ingredients__food__pk", filter=onhand_filter, distinct=True),
count_ignore_shopping=Count("steps__ingredients__food__pk",
filter=Q(steps__ingredients__food__ignore_shopping=True,
steps__ingredients__food__recipe__isnull=True),
distinct=True),
has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)),
default=Value(0)),
has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)),
default=Value(0)),
).annotate(missingfood=F("count_food") - F("count_onhand") - F("count_ignore_shopping")).filter(missingfood=missing))
makenow_recipes = Recipe.objects.annotate(count_food=Count('steps__ingredients__food__pk', filter=Q(steps__ingredients__food__isnull=False), distinct=True),
count_onhand=Count('steps__ingredients__food__pk', filter=onhand_filter, distinct=True),
count_ignore_shopping=Count('steps__ingredients__food__pk',
filter=Q(steps__ingredients__food__ignore_shopping=True,
steps__ingredients__food__recipe__isnull=True),
distinct=True),
has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)),
default=Value(0)),
has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)),
default=Value(0))).annotate(missingfood=F('count_food') - F('count_onhand')
- F('count_ignore_shopping')).filter(missingfood__lte=missing)
self._queryset = self._queryset.distinct().filter(id__in=makenow_recipes.values('id'))
def _never_used_food_filter(self):
# filters recipes to include foods that have never been used
if not self._never_used_food:
return
self._queryset = self._queryset.filter(steps__ingredients__food__in=Food.objects.filter(~Q(ingredient__step__recipe__cooklog__isnull=False)).distinct())
@staticmethod
def __children_substitute_filter(shopping_users=None):
children_onhand_subquery = Food.objects.filter(path__startswith=OuterRef('path'), depth__gt=OuterRef('depth'), onhand_users__in=shopping_users)
return (
Food.objects.exclude( # list of foods that are onhand and children of: foods that are not onhand and are set to use children as substitutes
Q(onhand_users__in=shopping_users) | Q(ignore_shopping=True, recipe__isnull=True) | Q(substitute__onhand_users__in=shopping_users)
)
.exclude(depth=1, numchild=0)
.filter(substitute_children=True)
.annotate(child_onhand_count=Exists(children_onhand_subquery))
.filter(child_onhand_count=True)
)
return (Food.objects.exclude( # list of foods that are onhand and children of: foods that are not onhand and are set to use children as substitutes
Q(onhand_users__in=shopping_users) | Q(ignore_shopping=True, recipe__isnull=True)
| Q(substitute__onhand_users__in=shopping_users)).exclude(depth=1, numchild=0).filter(substitute_children=True).annotate(
child_onhand_count=Exists(children_onhand_subquery)).filter(child_onhand_count=True))
@staticmethod
def __sibling_substitute_filter(shopping_users=None):
sibling_onhand_subquery = Food.objects.filter(
path__startswith=Substr(OuterRef('path'), 1, Food.steplen * (OuterRef('depth') - 1)), depth=OuterRef('depth'), onhand_users__in=shopping_users
)
return (
Food.objects.exclude( # list of foods that are onhand and siblings of: foods that are not onhand and are set to use siblings as substitutes
Q(onhand_users__in=shopping_users) | Q(ignore_shopping=True, recipe__isnull=True) | Q(substitute__onhand_users__in=shopping_users)
)
.exclude(depth=1, numchild=0)
.filter(substitute_siblings=True)
.annotate(sibling_onhand=Exists(sibling_onhand_subquery))
.filter(sibling_onhand=True)
)
sibling_onhand_subquery = Food.objects.filter(path__startswith=Substr(OuterRef('path'), 1, Food.steplen * (OuterRef('depth') - 1)),
depth=OuterRef('depth'),
onhand_users__in=shopping_users)
return (Food.objects.exclude( # list of foods that are onhand and siblings of: foods that are not onhand and are set to use siblings as substitutes
Q(onhand_users__in=shopping_users) | Q(ignore_shopping=True, recipe__isnull=True)
| Q(substitute__onhand_users__in=shopping_users)).exclude(depth=1, numchild=0).filter(substitute_siblings=True).annotate(
sibling_onhand=Exists(sibling_onhand_subquery)).filter(sibling_onhand=True))

View File

@@ -0,0 +1,23 @@
# Generated by Django 4.2.22 on 2025-07-13 19:55
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cookbook', '0222_alter_shoppinglistrecipe_created_by_and_more'),
]
operations = [
migrations.AddField(
model_name='userpreference',
name='ingredient_context',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='userpreference',
name='use_fractions',
field=models.BooleanField(default=True),
),
]

View File

@@ -191,7 +191,7 @@ class TreeModel(MP_Node):
return queryset.model.objects.filter(id__in=queryset.values_list('id')).exclude(descendants)
def include_ancestors(queryset=None):
def include_ancestors(queryset=None, filter=None):
"""
:param queryset: Model Queryset to add ancestors
:param filter: Filter (include) the ancestors nodes with the provided Q filter
@@ -487,6 +487,7 @@ class UserPreference(models.Model, PermissionModelMixin):
shopping_recent_days = models.PositiveIntegerField(default=7)
csv_delim = models.CharField(max_length=2, default=",")
csv_prefix = models.CharField(max_length=10, blank=True, )
ingredient_context = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
objects = ScopedManager(space='space')
@@ -767,6 +768,22 @@ class Food(ExportModelOperationsMixin('food'), TreeModel, PermissionModelMixin):
obj.inherit_fields.set(fields)
obj.save()
def get_substitutes(self, onhand=False, shopping_users=None):
# filters = ~Q(id=self.id)
filters = Q()
if self.substitute:
filters |= Q(id__in=self.substitute.values('id'))
if self.substitute_children:
filters |= Q(path__startswith=self.path, depth__gt=self.depth)
if self.substitute_siblings:
sibling_path = self.path[:Food.steplen * (self.depth - 1)]
filters |= Q(path__startswith=sibling_path, depth=self.depth)
qs = Food.objects.filter(filters).exclude(id=self.id)
if onhand:
qs = qs.filter(onhand_users__in=shopping_users)
return qs
@staticmethod
def reset_inheritance(space=None, food=None):
# resets inherited fields to the space defaults and updates all inherited fields to root object values

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,177 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 B

View File

@@ -1,207 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Pot buk mukato
previous_label=Mukato
next.title=Pot buk malubo
next_label=Malubo
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
page.title=Pot buk
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
of_pages=pi {{pagesCount}}
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} me {{pagesCount}})
zoom_out.title=Jwik Matidi
zoom_out_label=Jwik Matidi
zoom_in.title=Kwot Madit
zoom_in_label=Kwot Madit
zoom.title=Kwoti
presentation_mode.title=Lokke i kit me tyer
presentation_mode_label=Kit me tyer
open_file.title=Yab Pwail
open_file_label=Yab
print.title=Go
print_label=Go
download.title=Gam
download_label=Gam
bookmark.title=Neno ma kombedi (lok onyo yab i dirica manyen)
bookmark_label=Neno ma kombedi
# Secondary toolbar and context menu
tools.title=Gintic
tools_label=Gintic
first_page.title=Cit i pot buk mukwongo
first_page.label=Cit i pot buk mukwongo
first_page_label=Cit i pot buk mukwongo
last_page.title=Cit i pot buk magiko
last_page.label=Cit i pot buk magiko
last_page_label=Cit i pot buk magiko
page_rotate_cw.title=Wire i tung lacuc
page_rotate_cw.label=Wire i tung lacuc
page_rotate_cw_label=Wire i tung lacuc
page_rotate_ccw.title=Wire i tung lacam
page_rotate_ccw.label=Wire i tung lacam
page_rotate_ccw_label=Wire i tung lacam
cursor_text_select_tool.title=Cak gitic me yero coc
cursor_text_select_tool_label=Gitic me yero coc
cursor_hand_tool.title=Cak gitic me cing
cursor_hand_tool_label=Gitic cing
# Document properties dialog box
document_properties.title=Jami me gin acoya…
document_properties_label=Jami me gin acoya…
document_properties_file_name=Nying pwail:
document_properties_file_size=Dit pa pwail:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=Wiye:
document_properties_author=Ngat mucoyo:
document_properties_subject=Subjek:
document_properties_keywords=Lok mapire tek:
document_properties_creation_date=Nino dwe me cwec:
document_properties_modification_date=Nino dwe me yub:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=Lacwec:
document_properties_producer=Layub PDF:
document_properties_version=Kit PDF:
document_properties_page_count=Kwan me pot buk:
document_properties_page_size=Dit pa potbuk:
document_properties_page_size_unit_inches=i
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=atir
document_properties_page_size_orientation_landscape=arii
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Waraga
document_properties_page_size_name_legal=Cik
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized_yes=Eyo
document_properties_linearized_no=Pe
document_properties_close=Lor
print_progress_message=Yubo coc me agoya…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=Juki
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Lok gintic ma inget
toggle_sidebar_notification.title=Lok lanyut me nget (wiyewiye tye i gin acoya/attachments)
toggle_sidebar_label=Lok gintic ma inget
document_outline.title=Nyut Wiyewiye me Gin acoya (dii-kiryo me yaro/kano jami weng)
document_outline_label=Pek pa gin acoya
attachments.title=Nyut twec
attachments_label=Twec
thumbs.title=Nyut cal
thumbs_label=Cal
findbar.title=Nong iye gin acoya
findbar_label=Nong
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Pot buk {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Cal me pot buk {{page}}
# Find panel button title and messages
find_input.title=Nong
find_input.placeholder=Nong i dokumen…
find_previous.title=Nong timme pa lok mukato
find_previous_label=Mukato
find_next.title=Nong timme pa lok malubo
find_next_label=Malubo
find_highlight=Wer weng
find_match_case_label=Lok marwate
find_reached_top=Oo iwi gin acoya, omede ki i tere
find_reached_bottom=Oo i agiki me gin acoya, omede ki iwiye
find_not_found=Lok pe ononge
# Error panel labels
error_more_info=Ngec Mukene
error_less_info=Ngec Manok
error_close=Lor
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Kwena: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Can kikore {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Pwail: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Rek: {{line}}
rendering_error=Bal otime i kare me nyuto pot buk.
# Predefined zoom values
page_scale_width=Lac me iye pot buk
page_scale_fit=Porre me pot buk
page_scale_auto=Kwot pire kene
page_scale_actual=Dite kikome
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=Bal
loading_error=Bal otime kun cano PDF.
invalid_file_error=Pwail me PDF ma pe atir onyo obale woko.
missing_file_error=Pwail me PDF tye ka rem.
unexpected_response_error=Lagam mape kigeno pa lapok tic.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Lok angea manok]
password_label=Ket mung me donyo me yabo pwail me PDF man.
password_invalid=Mung me donyo pe atir. Tim ber i tem doki.
password_ok=OK
password_cancel=Juki
printing_not_supported=Ciko: Layeny ma pe teno goyo liweng.
printing_not_ready=Ciko: PDF pe ocane weng me agoya.
web_fonts_disabled=Kijuko dit pa coc me kakube woko: pe romo tic ki dit pa coc me PDF ma kiketo i kine.
document_colors_not_allowed=Pe ki yee ki gin acoya me PDF me tic ki rangi gi kengi: Kijuko woko “Yee pot buk me yero rangi mamegi kengi” ki i layeny.

View File

@@ -1,184 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Vorige bladsy
previous_label=Vorige
next.title=Volgende bladsy
next_label=Volgende
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
page.title=Bladsy
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
of_pages=van {{pagesCount}}
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} van {{pagesCount}})
zoom_out.title=Zoem uit
zoom_out_label=Zoem uit
zoom_in.title=Zoem in
zoom_in_label=Zoem in
zoom.title=Zoem
presentation_mode.title=Wissel na voorleggingsmodus
presentation_mode_label=Voorleggingsmodus
open_file.title=Open lêer
open_file_label=Open
print.title=Druk
print_label=Druk
download.title=Laai af
download_label=Laai af
bookmark.title=Huidige aansig (kopieer of open in nuwe venster)
bookmark_label=Huidige aansig
# Secondary toolbar and context menu
tools.title=Nutsgoed
tools_label=Nutsgoed
first_page.title=Gaan na eerste bladsy
first_page.label=Gaan na eerste bladsy
first_page_label=Gaan na eerste bladsy
last_page.title=Gaan na laaste bladsy
last_page.label=Gaan na laaste bladsy
last_page_label=Gaan na laaste bladsy
page_rotate_cw.title=Roteer kloksgewys
page_rotate_cw.label=Roteer kloksgewys
page_rotate_cw_label=Roteer kloksgewys
page_rotate_ccw.title=Roteer anti-kloksgewys
page_rotate_ccw.label=Roteer anti-kloksgewys
page_rotate_ccw_label=Roteer anti-kloksgewys
cursor_text_select_tool.title=Aktiveer gereedskap om teks te merk
cursor_text_select_tool_label=Teksmerkgereedskap
cursor_hand_tool.title=Aktiveer handjie
cursor_hand_tool_label=Handjie
# Document properties dialog box
document_properties.title=Dokumenteienskappe…
document_properties_label=Dokumenteienskappe…
document_properties_file_name=Lêernaam:
document_properties_file_size=Lêergrootte:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} kG ({{size_b}} grepe)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MG ({{size_b}} grepe)
document_properties_title=Titel:
document_properties_author=Outeur:
document_properties_subject=Onderwerp:
document_properties_keywords=Sleutelwoorde:
document_properties_creation_date=Skeppingsdatum:
document_properties_modification_date=Wysigingsdatum:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=Skepper:
document_properties_producer=PDF-vervaardiger:
document_properties_version=PDF-weergawe:
document_properties_page_count=Aantal bladsye:
document_properties_close=Sluit
print_progress_message=Berei tans dokument voor om te druk…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=Kanselleer
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Sypaneel aan/af
toggle_sidebar_notification.title=Sypaneel aan/af (dokument bevat skema/aanhegsels)
toggle_sidebar_label=Sypaneel aan/af
document_outline.title=Wys dokumentskema (dubbelklik om alle items oop/toe te vou)
document_outline_label=Dokumentoorsig
attachments.title=Wys aanhegsels
attachments_label=Aanhegsels
thumbs.title=Wys duimnaels
thumbs_label=Duimnaels
findbar.title=Soek in dokument
findbar_label=Vind
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Bladsy {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Duimnael van bladsy {{page}}
# Find panel button title and messages
find_input.title=Vind
find_input.placeholder=Soek in dokument…
find_previous.title=Vind die vorige voorkoms van die frase
find_previous_label=Vorige
find_next.title=Vind die volgende voorkoms van die frase
find_next_label=Volgende
find_highlight=Verlig almal
find_match_case_label=Kassensitief
find_reached_top=Bokant van dokument is bereik; gaan voort van onder af
find_reached_bottom=Einde van dokument is bereik; gaan voort van bo af
find_not_found=Frase nie gevind nie
# Error panel labels
error_more_info=Meer inligting
error_less_info=Minder inligting
error_close=Sluit
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (ID: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Boodskap: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Stapel: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Lêer: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Lyn: {{line}}
rendering_error='n Fout het voorgekom toe die bladsy weergegee is.
# Predefined zoom values
page_scale_width=Bladsywydte
page_scale_fit=Pas bladsy
page_scale_auto=Outomatiese zoem
page_scale_actual=Werklike grootte
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=Fout
loading_error='n Fout het voorgekom met die laai van die PDF.
invalid_file_error=Ongeldige of korrupte PDF-lêer.
missing_file_error=PDF-lêer is weg.
unexpected_response_error=Onverwagse antwoord van bediener.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}}-annotasie]
password_label=Gee die wagwoord om dié PDF-lêer mee te open.
password_invalid=Ongeldige wagwoord. Probeer gerus weer.
password_ok=OK
password_cancel=Kanselleer
printing_not_supported=Waarskuwing: Dié blaaier ondersteun nie drukwerk ten volle nie.
printing_not_ready=Waarskuwing: Die PDF is nog nie volledig gelaai vir drukwerk nie.
web_fonts_disabled=Webfonte is gedeaktiveer: kan nie PDF-fonte wat ingebed is, gebruik nie.
document_colors_not_allowed=PDF-dokumente word nie toegelaat om hul eie kleure te gebruik nie: “Laat bladsye toe om hul eie kleure te kies” is gedeaktiveer in die blaaier.

View File

@@ -1,184 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Pachina anterior
previous_label=Anterior
next.title=Pachina siguient
next_label=Siguient
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
page.title=Pachina
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
of_pages=de {{pagesCount}}
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} de {{pagesCount}})
zoom_out.title=Achiquir
zoom_out_label=Achiquir
zoom_in.title=Agrandir
zoom_in_label=Agrandir
zoom.title=Grandaria
presentation_mode.title=Cambear t'o modo de presentación
presentation_mode_label=Modo de presentación
open_file.title=Ubrir o fichero
open_file_label=Ubrir
print.title=Imprentar
print_label=Imprentar
download.title=Descargar
download_label=Descargar
bookmark.title=Vista actual (copiar u ubrir en una nueva finestra)
bookmark_label=Anvista actual
# Secondary toolbar and context menu
tools.title=Ferramientas
tools_label=Ferramientas
first_page.title=Ir ta la primer pachina
first_page.label=Ir ta la primer pachina
first_page_label=Ir ta la primer pachina
last_page.title=Ir ta la zaguer pachina
last_page.label=Ir ta la zaguera pachina
last_page_label=Ir ta la zaguer pachina
page_rotate_cw.title=Chirar enta la dreita
page_rotate_cw.label=Chirar enta la dreita
page_rotate_cw_label=Chira enta la dreita
page_rotate_ccw.title=Chirar enta la zurda
page_rotate_ccw.label=Chirar en sentiu antihorario
page_rotate_ccw_label=Chirar enta la zurda
cursor_text_select_tool.title=Activar la ferramienta de selección de texto
cursor_text_select_tool_label=Ferramienta de selección de texto
cursor_hand_tool.title=Activar la ferramienta man
cursor_hand_tool_label=Ferramienta man
# Document properties dialog box
document_properties.title=Propiedatz d'o documento...
document_properties_label=Propiedatz d'o documento...
document_properties_file_name=Nombre de fichero:
document_properties_file_size=Grandaria d'o fichero:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=Titol:
document_properties_author=Autor:
document_properties_subject=Afer:
document_properties_keywords=Parolas clau:
document_properties_creation_date=Calendata de creyación:
document_properties_modification_date=Calendata de modificación:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=Creyador:
document_properties_producer=Creyador de PDF:
document_properties_version=Versión de PDF:
document_properties_page_count=Numero de pachinas:
document_properties_close=Zarrar
print_progress_message=Se ye preparando la documentación pa imprentar…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=Cancelar
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Amostrar u amagar a barra lateral
toggle_sidebar_notification.title=Cambiar barra lateral (lo documento contiene esquema/adchuntos)
toggle_sidebar_label=Amostrar a barra lateral
document_outline.title=Amostrar esquema d'o documento (fer doble clic pa expandir/compactar totz los items)
document_outline_label=Esquema d'o documento
attachments.title=Amostrar os adchuntos
attachments_label=Adchuntos
thumbs.title=Amostrar as miniaturas
thumbs_label=Miniaturas
findbar.title=Trobar en o documento
findbar_label=Trobar
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Pachina {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Miniatura d'a pachina {{page}}
# Find panel button title and messages
find_input.title=Trobar
find_input.placeholder=Trobar en o documento…
find_previous.title=Trobar l'anterior coincidencia d'a frase
find_previous_label=Anterior
find_next.title=Trobar a siguient coincidencia d'a frase
find_next_label=Siguient
find_highlight=Resaltar-lo tot
find_match_case_label=Coincidencia de mayusclas/minusclas
find_reached_top=S'ha plegau a l'inicio d'o documento, se contina dende baixo
find_reached_bottom=S'ha plegau a la fin d'o documento, se contina dende alto
find_not_found=No s'ha trobau a frase
# Error panel labels
error_more_info=Mas información
error_less_info=Menos información
error_close=Zarrar
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Mensache: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Pila: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Fichero: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Linia: {{line}}
rendering_error=Ha ocurriu una error en renderizar a pachina.
# Predefined zoom values
page_scale_width=Amplaria d'a pachina
page_scale_fit=Achuste d'a pachina
page_scale_auto=Grandaria automatica
page_scale_actual=Grandaria actual
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=Error
loading_error=S'ha produciu una error en cargar o PDF.
invalid_file_error=O PDF no ye valido u ye estorbau.
missing_file_error=No i ha fichero PDF.
unexpected_response_error=Respuesta a lo servicio inasperada.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[Anotación {{type}}]
password_label=Introduzca a clau ta ubrir iste fichero PDF.
password_invalid=Clau invalida. Torna a intentar-lo.
password_ok=Acceptar
password_cancel=Cancelar
printing_not_supported=Pare cuenta: Iste navegador no maneya totalment as impresions.
printing_not_ready=Aviso: Encara no se ha cargau completament o PDF ta imprentar-lo.
web_fonts_disabled=As fuents web son desactivadas: no se puet incrustar fichers PDF.
document_colors_not_allowed=Los documentos PDF no pueden fer servir las suyas propias colors: 'Permitir que as pachinas triguen as suyas propias colors' ye desactivau en o navegador.

Some files were not shown because too many files have changed in this diff Show More