Compare commits

...

5 Commits

Author SHA1 Message Date
mealie-commit-bot[bot]
acd0c2cb3e chore: bump version to v3.6.1 2025-12-02 23:08:41 +00:00
Michael Genson
28d00f7dd5 fix: Bump version before building release (#6647) 2025-12-02 16:51:46 -06:00
Michael Genson
fdd3d4b37a fix: Remove Auth Refresh (#6646) 2025-12-02 15:55:01 -06:00
Hayden
b09a85dfab chore(l10n): New Crowdin updates (#6643) 2025-12-02 10:39:36 -06:00
github-actions[bot]
b6ceece901 docs(auto): Update image tag, for release v3.6.0 (#6639) 2025-12-01 23:35:45 -06:00
11 changed files with 245 additions and 213 deletions

View File

@@ -5,17 +5,73 @@ on:
types: [published]
jobs:
commit-version-bump:
name: Commit version bump to repository
runs-on: ubuntu-latest
permissions:
contents: write
outputs:
commit-sha: ${{ steps.commit.outputs.commit-sha }}
steps:
- name: Generate GitHub App Token
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.COMMIT_BOT_APP_ID }}
private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }}
- name: Checkout 🛎
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
- name: Extract Version From Tag Name
run: echo "VERSION_NUM=$(echo ${{ github.event.release.tag_name }} | sed 's/^v//')" >> $GITHUB_ENV
- name: Configure Git
run: |
git config user.name "mealie-commit-bot[bot]"
git config user.email "mealie-commit-bot[bot]@users.noreply.github.com"
- name: Update all version strings
run: |
sed -i 's/^version = "[^"]*"/version = "${{ env.VERSION_NUM }}"/' pyproject.toml
sed -i '/^name = "mealie"$/,/^version = / s/^version = "[^"]*"/version = "${{ env.VERSION_NUM }}"/' uv.lock
sed -i 's/\("version": "\)[^"]*"/\1${{ env.VERSION_NUM }}"/' frontend/package.json
sed -i 's/:v[0-9]*\.[0-9]*\.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/installation-checklist.md
sed -i 's/:v[0-9]*\.[0-9]*\.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/sqlite.md
sed -i 's/:v[0-9]*\.[0-9]*\.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/postgres.md
- name: Commit and push changes
id: commit
run: |
git add pyproject.toml frontend/package.json uv.lock docs/
git commit -m "chore: bump version to ${{ github.event.release.tag_name }}"
git push origin HEAD:${{ github.event.repository.default_branch }}
echo "commit-sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Move release tag to new commit
run: |
git tag -f ${{ github.event.release.tag_name }}
git push -f origin ${{ github.event.release.tag_name }}
backend-tests:
name: "Backend Server Tests"
uses: ./.github/workflows/test-backend.yml
needs:
- commit-version-bump
frontend-tests:
name: "Frontend Tests"
uses: ./.github/workflows/test-frontend.yml
needs:
- commit-version-bump
build-package:
name: Build Package
uses: ./.github/workflows/build-package.yml
needs:
- commit-version-bump
with:
tag: ${{ github.event.release.tag_name }}
@@ -43,10 +99,48 @@ jobs:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
rollback-on-failure:
name: Rollback version commit if deployment fails
needs:
- commit-version-bump
- publish
if: always() && needs.publish.result == 'failure'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Generate GitHub App Token
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.COMMIT_BOT_APP_ID }}
private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }}
- name: Checkout 🛎
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "mealie-commit-bot[bot]"
git config user.email "mealie-commit-bot[bot]@users.noreply.github.com"
- name: Delete release tag
run: |
git push --delete origin ${{ github.event.release.tag_name }}
- name: Revert version bump commit
run: |
git revert --no-edit ${{ needs.commit-version-bump.outputs.commit-sha }}
git push origin HEAD:${{ github.event.repository.default_branch }}
notify-discord:
name: Notify Discord
needs:
- publish
if: success()
runs-on: ubuntu-latest
steps:
- name: Discord notification
@@ -55,41 +149,3 @@ jobs:
uses: Ilshidur/action-discord@0.3.2
with:
args: "🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of Mealie has been released. See the release notes https://github.com/mealie-recipes/mealie/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}"
update-image-tags:
name: Update image tag in sample docker-compose files
needs:
- publish
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout 🛎
uses: actions/checkout@v4
- name: Extract Version From Tag Name
run: echo "VERSION_NUM=$(echo ${{ github.event.release.tag_name }} | sed 's/^v//')" >> $GITHUB_ENV
- name: Modify version strings
run: |
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/installation-checklist.md
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/sqlite.md
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/postgres.md
sed -i 's/^version = "[^"]*"/version = "${{ env.VERSION_NUM }}"/' pyproject.toml
sed -i 's/\("version": "\)[^"]*"/\1${{ env.VERSION_NUM }}"/' frontend/package.json
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
# This doesn't currently work for us because it creates the PR but the workflows don't run.
# TODO: Provide a personal access token as a parameter here, that solves that problem.
# https://github.com/peter-evans/create-pull-request
with:
commit-message: "Update image tag, for release ${{ github.event.release.tag_name }}"
branch: "docs/newrelease-update-version-${{ github.event.release.tag_name }}"
labels: |
documentation
delete-branch: true
base: mealie-next
title: "docs(auto): Update image tag, for release ${{ github.event.release.tag_name }}"
body: "Auto-generated by `.github/workflows/release.yml`, on publish of release ${{ github.event.release.tag_name }}"

View File

@@ -31,7 +31,7 @@ To deploy mealie on your local network, it is highly recommended to use Docker t
We've gone through a few versions of Mealie v1 deployment targets. We have settled on a single container deployment, and we've begun publishing the nightly container on github containers. If you're looking to move from the old nightly (split containers _or_ the omni image) to the new nightly, there are a few things you need to do:
1. Take a backup just in case!
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.5.0`
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.6.1`
3. Take the external port from the frontend container and set that as the port mapped to port `9000` on the new container. The frontend is now served on port 9000 from the new container, so it will need to be mapped for you to have access.
4. Restart the container

View File

@@ -10,7 +10,7 @@ PostgreSQL might be considered if you need to support many concurrent users. In
```yaml
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v3.5.0 # (3)
image: ghcr.io/mealie-recipes/mealie:v3.6.1 # (3)
container_name: mealie
restart: always
ports:

View File

@@ -11,7 +11,7 @@ SQLite is a popular, open source, self-contained, zero-configuration database th
```yaml
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v3.5.0 # (3)
image: ghcr.io/mealie-recipes/mealie:v3.6.1 # (3)
container_name: mealie
restart: always
ports:

View File

@@ -120,30 +120,6 @@ export const useAuthBackend = function (): AuthState {
}
}
// Auto-refresh user data periodically when authenticated
if (import.meta.client) {
let refreshInterval: NodeJS.Timeout | null = null;
watch(() => authStatus.value, (status) => {
if (status === "authenticated") {
refreshInterval = setInterval(() => {
if (tokenCookie.value) {
getSession().catch(() => {
// Ignore errors in background refresh
});
}
}, 5 * 60 * 1000); // 5 minutes
}
else {
// Clear interval when not authenticated
if (refreshInterval) {
clearInterval(refreshInterval);
refreshInterval = null;
}
}
}, { immediate: true });
}
return {
data: computed(() => authUser.value),
status: computed(() => authStatus.value),

View File

@@ -1,5 +1,5 @@
import { ref, watch, computed } from "vue";
import { useAuthBackend } from "~/composables/useAuthBackend";
import { useAuthBackend } from "~/composables/use-auth-backend";
import type { UserOut } from "~/lib/api/types/user";
export const useMealieAuth = function () {

View File

@@ -565,7 +565,7 @@
"choose-unit": "Einheit wählen",
"press-enter-to-create": "Zum Erstellen Eingabetaste drücken",
"choose-food": "Lebensmittel wählen",
"choose-recipe": "Choose Recipe",
"choose-recipe": "Rezept wählen",
"notes": "Notizen",
"toggle-section": "Überschrift ein-/ausblenden",
"see-original-text": "Originaltext anzeigen",
@@ -736,7 +736,7 @@
"advanced": "Erweitert",
"auto-search": "Automatische Suche",
"no-results": "Keine Ergebnisse gefunden",
"type-to-search": "Type to search..."
"type-to-search": "Suchbegriff eingeben..."
},
"settings": {
"add-a-new-theme": "Neues Thema hinzufügen",

View File

@@ -1,6 +1,6 @@
{
"name": "mealie",
"version": "3.5.0",
"version": "3.6.1",
"private": true,
"scripts": {
"dev": "nuxt dev",

View File

@@ -132,7 +132,7 @@
"baby green": {
"aliases": [],
"description": "",
"name": "Młody liść",
"name": "młody liść",
"plural_name": "młode liście"
},
"pumpkin": {
@@ -298,7 +298,7 @@
"aliases": [],
"description": "",
"name": "papryka serrano",
"plural_name": "serrano"
"plural_name": "papryki serrano"
},
"cayenne pepper": {
"aliases": [],
@@ -364,7 +364,7 @@
"aliases": [],
"description": "",
"name": "hash brown",
"plural_name": "hash browns"
"plural_name": "hash browny"
},
"napa cabbage": {
"aliases": [
@@ -383,8 +383,8 @@
"water chestnut": {
"aliases": [],
"description": "",
"name": "water chestnut",
"plural_name": "water chestnuts"
"name": "ponikło słodkie",
"plural_name": "ponikła słodkie"
},
"turnip": {
"aliases": [],
@@ -401,8 +401,8 @@
"bok choy": {
"aliases": [],
"description": "",
"name": "bok choy",
"plural_name": "bok choy"
"name": "pak choi",
"plural_name": "pak choi"
},
"okra": {
"aliases": [],
@@ -413,8 +413,8 @@
"acorn squash": {
"aliases": [],
"description": "",
"name": "acorn squash",
"plural_name": "acorn squashes"
"name": "dynia żołędziowa",
"plural_name": "dynie żołędziowe"
},
"corn cob": {
"aliases": [],
@@ -425,8 +425,8 @@
"radicchio": {
"aliases": [],
"description": "",
"name": "cykoria sałatowa\n",
"plural_name": "cykorie sałatowe\n"
"name": "cykoria sałatowa",
"plural_name": "cykorie sałatowe"
},
"pearl onion": {
"aliases": [],
@@ -484,17 +484,17 @@
},
"corn husk": {
"aliases": [
"maize"
"kukurydza"
],
"description": "",
"name": "corn husk",
"plural_name": "corn husks"
"name": "łuska kukurydzy",
"plural_name": "łuski kukurydzy"
},
"collard green": {
"aliases": [],
"description": "",
"name": "collard green",
"plural_name": "collard greens"
"name": "kapusta pastewna",
"plural_name": "kapusty pastewne"
},
"french-fried onion": {
"aliases": [],
@@ -613,8 +613,8 @@
"pea shoot": {
"aliases": [],
"description": "",
"name": "pea shoot",
"plural_name": "pea shoots"
"name": "pęd grochu",
"plural_name": "pędy grochu"
},
"alfalfa": {
"aliases": [],
@@ -815,8 +815,8 @@
"tamarind": {
"aliases": [],
"description": "",
"name": "Tamaryndowiec",
"plural_name": "Tamaryndowce"
"name": "tamaryndowiec",
"plural_name": "tamaryndowce"
},
"nectarine": {
"aliases": [],
@@ -851,8 +851,8 @@
"dried fruit": {
"aliases": [],
"description": "",
"name": "Suszony owoc",
"plural_name": "Suszone owoce"
"name": "suszony owoc",
"plural_name": "suszone owoce"
},
"clementine": {
"aliases": [],
@@ -863,8 +863,8 @@
"persimmon": {
"aliases": [],
"description": "",
"name": "persimmon",
"plural_name": "persimmons"
"name": "persymona",
"plural_name": "persymony"
},
"melon": {
"aliases": [],
@@ -881,14 +881,14 @@
"dried mango": {
"aliases": [],
"description": "",
"name": "Suszone mango",
"plural_name": "Suszone mango"
"name": "suszone mango",
"plural_name": "suszone mango"
},
"dried apple": {
"aliases": [],
"description": "",
"name": "Suszone jabłko",
"plural_name": "Suszone jabłka"
"name": "suszone jabłko",
"plural_name": "suszone jabłka"
},
"quince": {
"aliases": [],
@@ -1007,8 +1007,8 @@
"apple chip": {
"aliases": [],
"description": "",
"name": "apple chip",
"plural_name": "apple chips"
"name": "chips jabłkowy",
"plural_name": "chipsy jabłkowe"
},
"mixed peel": {
"aliases": [],
@@ -1103,8 +1103,8 @@
"ice-apple": {
"aliases": [],
"description": "",
"name": "ice-apple",
"plural_name": "ice-apples"
"name": "lodowe jabłko",
"plural_name": "lodowe jabłka"
},
"longan": {
"aliases": [],
@@ -1121,7 +1121,7 @@
"bitter orange": {
"aliases": [],
"description": "",
"name": "gorzki pomarańcz",
"name": "gorzka pomarańcza",
"plural_name": "gorzkie pomarańcze"
},
"feijoa": {
@@ -1251,14 +1251,14 @@
"portobello mushroom": {
"aliases": [],
"description": "",
"name": "portobello mushroom",
"plural_name": "portobello mushrooms"
"name": "pieczarka portobello",
"plural_name": "pieczarki portobello"
},
"wild mushroom": {
"aliases": [],
"description": "",
"name": "wild mushroom",
"plural_name": "wild mushrooms"
"name": "grzyb leśny",
"plural_name": "grzyby leśne"
},
"porcini": {
"aliases": [],
@@ -1751,8 +1751,8 @@
"pistachio": {
"aliases": [],
"description": "",
"name": "pistachio",
"plural_name": "pistachios"
"name": "pistacja",
"plural_name": "pistacje"
},
"peanut": {
"aliases": [],
@@ -1763,14 +1763,14 @@
"chia": {
"aliases": [],
"description": "",
"name": "chia",
"plural_name": "chias"
"name": "nasiono chia",
"plural_name": "nasiona chia"
},
"flax": {
"aliases": [],
"description": "",
"name": "flax",
"plural_name": "flaxes"
"name": "nasiono lnu",
"plural_name": "nasiona lnu"
},
"slivered almond": {
"aliases": [],
@@ -2070,7 +2070,7 @@
"aliases": [],
"description": "",
"name": "ser kozi",
"plural_name": "sery kazie"
"plural_name": "sery kozie"
},
"fresh mozzarella": {
"aliases": [],
@@ -3321,13 +3321,13 @@
"vegan sausage": {
"aliases": [],
"description": "",
"name": "Wegańska kiełbasa",
"name": "wegańska kiełbasa",
"plural_name": "vegan sausages"
},
"coconut whipped cream": {
"aliases": [],
"description": "",
"name": "Kokosowa bita śmietana",
"name": "kokosowa bita śmietana",
"plural_name": "coconut whipped creams"
},
"smoked tofu": {
@@ -5181,8 +5181,8 @@
"dried anchovy": {
"aliases": [],
"description": "",
"name": "Suszona anszua",
"plural_name": "Suszone anszua"
"name": "suszona anszua",
"plural_name": "suszone anszua"
},
"arctic char": {
"aliases": [],
@@ -12520,8 +12520,8 @@
"canned carrot": {
"aliases": [],
"description": "",
"name": "canned carrot",
"plural_name": "canned carrots"
"name": "marchew konserwowa",
"plural_name": "marchewki konserwowe"
},
"banana pepper ring": {
"aliases": [],
@@ -12604,8 +12604,8 @@
"canned peas and carrot": {
"aliases": [],
"description": "",
"name": "canned peas and carrot",
"plural_name": "canned peas and carrots"
"name": "marchew i groszek konserwowe",
"plural_name": "marchew i groszek konserwowe"
},
"corn relish": {
"aliases": [],
@@ -15101,14 +15101,14 @@
"orange juice": {
"aliases": [],
"description": "",
"name": "orange juice",
"plural_name": "orange juices"
"name": "sok pomarańczowy",
"plural_name": "soki pomarańczowe"
},
"coffee": {
"aliases": [],
"description": "",
"name": "coffee",
"plural_name": "coffees"
"name": "kawa",
"plural_name": "kawy"
},
"club soda": {
"aliases": [],
@@ -15120,7 +15120,7 @@
"aliases": [],
"description": "",
"name": "espresso",
"plural_name": "espressos"
"plural_name": "espresso"
},
"pineapple juice": {
"aliases": [],
@@ -15132,13 +15132,13 @@
"aliases": [],
"description": "",
"name": "apple juice",
"plural_name": "apple juices"
"plural_name": "sok jabłkowy"
},
"tea": {
"aliases": [],
"description": "",
"name": "tea",
"plural_name": "teas"
"name": "herbata",
"plural_name": "herbaty"
},
"cranberry juice": {
"aliases": [],
@@ -15149,14 +15149,14 @@
"tomato juice": {
"aliases": [],
"description": "",
"name": "tomato juice",
"plural_name": "tomato juices"
"name": "sok pomidorowy",
"plural_name": "soki pomidorowe"
},
"coconut water": {
"aliases": [],
"description": "",
"name": "coconut water",
"plural_name": "coconut waters"
"name": "woda kokosowa",
"plural_name": "woda kokosowa"
},
"pomegranate juice": {
"aliases": [],
@@ -15173,14 +15173,14 @@
"lemonade": {
"aliases": [],
"description": "",
"name": "lemonade",
"plural_name": "lemonades"
"name": "lemoniada",
"plural_name": "lemoniady"
},
"coke": {
"aliases": [],
"description": "",
"name": "coke",
"plural_name": "cokes"
"name": "cola",
"plural_name": "cole"
},
"eggnog": {
"aliases": [],
@@ -15227,8 +15227,8 @@
"green tea": {
"aliases": [],
"description": "",
"name": "green tea",
"plural_name": "green teas"
"name": "herbata zielona",
"plural_name": "herbaty zielone"
},
"lemonade concentrate": {
"aliases": [],
@@ -15245,14 +15245,14 @@
"root beer": {
"aliases": [],
"description": "",
"name": "root beer",
"plural_name": "root beers"
"name": "piwo korzenne",
"plural_name": "piwa korzenne"
},
"drinking chocolate": {
"aliases": [],
"description": "",
"name": "drinking chocolate",
"plural_name": "drinking chocolates"
"name": "czekolada pitna",
"plural_name": "czekolady pitne"
},
"tonic water": {
"aliases": [],
@@ -15269,8 +15269,8 @@
"mango juice": {
"aliases": [],
"description": "",
"name": "mango juice",
"plural_name": "mango juices"
"name": "sok z mango",
"plural_name": "soki z mango"
},
"sour mix": {
"aliases": [],
@@ -15281,20 +15281,20 @@
"hibiscu": {
"aliases": [],
"description": "",
"name": "hibiscu",
"plural_name": "hibiscus"
"name": "hibiskus",
"plural_name": "hibiskusy"
},
"tea leaf": {
"aliases": [],
"description": "",
"name": "tea leaf",
"plural_name": "tea leaves"
"name": "liść herbaty",
"plural_name": "liście herbaty"
},
"grape juice": {
"aliases": [],
"description": "",
"name": "grape juice",
"plural_name": "grape juices"
"name": "sok winogronowy",
"plural_name": "soki winogronowe"
},
"cherry juice": {
"aliases": [],
@@ -15305,8 +15305,8 @@
"carrot juice": {
"aliases": [],
"description": "",
"name": "carrot juice",
"plural_name": "carrot juices"
"name": "sok z marchwi",
"plural_name": "soki z marchwi"
},
"limeade concentrate": {
"aliases": [],
@@ -15318,19 +15318,19 @@
"aliases": [],
"description": "",
"name": "dr pepper",
"plural_name": "dr peppers"
"plural_name": "dr pepper"
},
"white grape juice": {
"aliases": [],
"description": "",
"name": "white grape juice",
"plural_name": "white grape juices"
"name": "sok z białych winogron",
"plural_name": "soki z białych winogron"
},
"watermelon juice": {
"aliases": [],
"description": "",
"name": "watermelon juice",
"plural_name": "watermelon juices"
"name": "sok arbuzowy",
"plural_name": "soki arbuzowe"
},
"tangerine juice": {
"aliases": [],
@@ -15341,8 +15341,8 @@
"fruit juice": {
"aliases": [],
"description": "",
"name": "fruit juice",
"plural_name": "fruit juices"
"name": "sok owocowy",
"plural_name": "soki owocowe"
},
"passion-fruit juice": {
"aliases": [],
@@ -15353,14 +15353,14 @@
"iced tea": {
"aliases": [],
"description": "",
"name": "iced tea",
"plural_name": "iced teas"
"name": "herbata mrożona",
"plural_name": "herbaty mrożone"
},
"kombucha": {
"aliases": [],
"description": "",
"name": "kombucha",
"plural_name": "kombuchas"
"plural_name": "kombuche"
},
"apricot juice": {
"aliases": [],
@@ -15371,8 +15371,8 @@
"beet juice": {
"aliases": [],
"description": "",
"name": "beet juice",
"plural_name": "beet juices"
"name": "sok z buraków",
"plural_name": "soki z buraków"
},
"peach juice": {
"aliases": [],
@@ -15401,8 +15401,8 @@
"energy drink": {
"aliases": [],
"description": "",
"name": "energy drink",
"plural_name": "energy drinks"
"name": "napój energetyzujący",
"plural_name": "napoje energetyzujące"
},
"chamomile tea": {
"aliases": [],
@@ -15449,8 +15449,8 @@
"rooibos tea": {
"aliases": [],
"description": "",
"name": "rooibos tea",
"plural_name": "rooibos teas"
"name": "herbata rooibos",
"plural_name": "herbaty rooibos"
},
"lime soda": {
"aliases": [],
@@ -15485,8 +15485,8 @@
"strawberry juice": {
"aliases": [],
"description": "",
"name": "strawberry juice",
"plural_name": "strawberry juices"
"name": "sok truskawkowy",
"plural_name": "soki truskawkowe"
},
"iced coffee concentrate": {
"aliases": [],
@@ -15503,8 +15503,8 @@
"beetroot juice": {
"aliases": [],
"description": "",
"name": "beetroot juice",
"plural_name": "beetroot juices"
"name": "sok z buraka",
"plural_name": "soki z buraka"
},
"blueberry juice": {
"aliases": [],
@@ -15545,8 +15545,8 @@
"white tea": {
"aliases": [],
"description": "",
"name": "white tea",
"plural_name": "white teas"
"name": "herbata biała",
"plural_name": "herbaty białe"
},
"juice blend": {
"aliases": [],
@@ -15605,14 +15605,14 @@
"herbal tea": {
"aliases": [],
"description": "",
"name": "herbal tea",
"plural_name": "herbal teas"
"name": "herbata ziołowa",
"plural_name": "herbaty ziołowe"
},
"banana juice": {
"aliases": [],
"description": "",
"name": "banana juice",
"plural_name": "banana juices"
"name": "sok bananowy",
"plural_name": "soki bananowe"
},
"lychee juice": {
"aliases": [],
@@ -15635,8 +15635,8 @@
"decaf coffee": {
"aliases": [],
"description": "",
"name": "decaf coffee",
"plural_name": "decaf coffees"
"name": "kawa bezkofeinowa",
"plural_name": "kawy bezkofeinowe"
},
"pumpkin spice coffee": {
"aliases": [],
@@ -15648,7 +15648,7 @@
"aliases": [],
"description": "",
"name": "pepsi",
"plural_name": "pepsis"
"plural_name": "pepsi"
},
"cherry soda": {
"aliases": [],
@@ -15807,8 +15807,8 @@
"essence": {
"aliases": [],
"description": "",
"name": "essence",
"plural_name": "essences"
"name": "esencja",
"plural_name": "esencje"
},
"maca powder": {
"aliases": [],
@@ -15820,13 +15820,13 @@
"aliases": [],
"description": "",
"name": "spirulina",
"plural_name": "spirulinas"
"plural_name": "spiruliny"
},
"coffee extract": {
"aliases": [],
"description": "",
"name": "coffee extract",
"plural_name": "coffee extracts"
"name": "ekstrakt z kawy",
"plural_name": "ekstrakty z kawy"
},
"brewer's yeast": {
"aliases": [],
@@ -15837,8 +15837,8 @@
"strawberry extract": {
"aliases": [],
"description": "",
"name": "strawberry extract",
"plural_name": "strawberry extracts"
"name": "ekstrakt z truskawek",
"plural_name": "ekstrakty z truskawek"
},
"butter extract": {
"aliases": [],
@@ -15957,8 +15957,8 @@
"hazelnut extract": {
"aliases": [],
"description": "",
"name": "hazelnut extract",
"plural_name": "hazelnut extracts"
"name": "ekstrakt z orzechów laskowych",
"plural_name": "ekstrakty z orzechów laskowych"
},
"freeze-dried strawberry powder": {
"aliases": [],
@@ -15975,8 +15975,8 @@
"cherry extract": {
"aliases": [],
"description": "",
"name": "cherry extract",
"plural_name": "cherry extracts"
"name": "ekstrakt z wiśni",
"plural_name": "ekstrakty z wiśni"
},
"butterscotch flavor": {
"aliases": [],
@@ -15993,8 +15993,8 @@
"pineapple extract": {
"aliases": [],
"description": "",
"name": "pineapple extract",
"plural_name": "pineapple extracts"
"name": "ekstrakt z ananasa",
"plural_name": "ekstrakty z ananasa"
},
"lemon juice concentrate": {
"aliases": [],
@@ -16011,8 +16011,8 @@
"cinnamon extract": {
"aliases": [],
"description": "",
"name": "cinnamon extract",
"plural_name": "cinnamon extracts"
"name": "ekstrakt z cynamonu",
"plural_name": "ekstrakty z cynamonu"
},
"cannabis milk": {
"aliases": [],
@@ -16060,7 +16060,7 @@
"aliases": [],
"description": "",
"name": "ashwagandha",
"plural_name": "ashwagandhas"
"plural_name": "ashwagandhy"
},
"casein": {
"aliases": [],
@@ -16071,8 +16071,8 @@
"cbd oil": {
"aliases": [],
"description": "",
"name": "cbd oil",
"plural_name": "cbd oils"
"name": "olejek cbd",
"plural_name": "olejki cbd"
},
"chlorella": {
"aliases": [],
@@ -16119,8 +16119,8 @@
"vitamin e": {
"aliases": [],
"description": "",
"name": "vitamin e",
"plural_name": "vitamin es"
"name": "witamina E",
"plural_name": "witaminy E"
},
"wine yeast": {
"aliases": [],
@@ -16155,8 +16155,8 @@
"vitamin d": {
"aliases": [],
"description": "",
"name": "vitamin d",
"plural_name": "vitamin ds"
"name": "witamina D",
"plural_name": "witaminy D"
},
"calcium lactate": {
"aliases": [],
@@ -16191,20 +16191,20 @@
"magnesium": {
"aliases": [],
"description": "",
"name": "magnesium",
"plural_name": "magnesiums"
"name": "magnez",
"plural_name": "magnez"
},
"creatine": {
"aliases": [],
"description": "",
"name": "creatine",
"plural_name": "creatines"
"name": "kreatyna",
"plural_name": "kreatyna"
},
"daily vitamin": {
"aliases": [],
"description": "",
"name": "daily vitamin",
"plural_name": "daily vitamins"
"name": "codzienna witamina",
"plural_name": "codzienne witaminy"
},
"moringa powder": {
"aliases": [],
@@ -16234,7 +16234,7 @@
"aliases": [],
"description": "",
"name": "thc",
"plural_name": "thcs"
"plural_name": "thc"
},
"berry powder": {
"aliases": [],

View File

@@ -1,6 +1,6 @@
[project]
name = "mealie"
version = "3.5.0"
version = "3.6.1"
description = "A Recipe Manager"
authors = [{ name = "Hayden", email = "hay-kot@pm.me" }]
license = "AGPL-3.0-only"

2
uv.lock generated
View File

@@ -811,7 +811,7 @@ wheels = [
[[package]]
name = "mealie"
version = "3.5.0"
version = "3.6.1"
source = { editable = "." }
dependencies = [
{ name = "aiofiles" },