## v1.0.0b - 2022-05-22

- Bump Dependencies
    - Recipe Scrapers to 13.28
    - Jinja2 to 3.1.2
    - FastAPI to 0.78.0

- Recipe Ingredient Editor
    - [#1140](https://github.com/hay-kot/mealie/issues/1140) - Error in processing the quantity of ingredients #1140 - UI Now prevents entering not-allowed characters in quantity field
    - UI now allows no value to be set in addition to a zero (0) value.
    - [#1237](https://github.com/hay-kot/mealie/issues/1237) - UI: Saving a 0 quantity ingredient displays 0 until the page is refreshed #1237 - UI Now properly reacts to changes in the quantity field.

- Fix Mealie v0.5.x migration issue [#1183](https://github.com/hay-kot/mealie/issues/1183)
- Consolidated Frontend Types thanks to [@PFischbeck](https://github.com/Fischbeck)
- Added support for SSL/No Auth Email [@nkringle](https://github.com/nkringle)
- [Implement several notifications for server actions ](https://github.com/hay-kot/mealie/pull/1234)[@miroito](https://github.com/Miroito)
- Fix display issue for shared recipe rendering on server [@PFischbeck](https://github.com/Fischbeck)

## v1.0.0b - 2022-05-09

- Change MIT license to AGPLv3

## v1.0.0b - 2022-05-08

- Rewrote the registration flow for new users.
- Added support for seed data at anytime through the user interface.
- Improved security for sanitizing HTML inputs for user input.
- Added support for importing keywords as tags during scraping - [@miroito](https://github.com/Miroito)
- Changed default recipe settings to "disable_amount=True" for new groups.
- Add support for merging food, and units.
- Allow tags, category, and tool creation - [@miroito](https://github.com/Miroito)
- Added additional and more comprehensive filter options for cookbooks
- Fixed bookmarklets error

## v1.0.0b - 2022-03-29

- Mealie now stores the original text from parsed ingredients, with the ability to peak at the original text from a recipe. [@miroito](https://github.com/Miroito)
- Added some management / utility functions for administrators to manage data and cleanup artifacts from the file system.
- Fix clear url action in recipe creation [#1101](https://github.com/hay-kot/mealie/pull/1101) [@miroito](https://github.com/Miroito)
- Add group statistics calculations and data storage measurements
    - No hard limits are currently imposed on groups - though this may be implemented in the future.

## v1.0.0b - 2022-03-25

- Mealie now packages the last git commit as the build ID
- Admin section now has a "Maintenance" page where you can check some health metrics like data directory size, logs file size, and if there are some non compliant directories or images. You can also perform clean-up operations to resolve some of these issues.
- Dropped 2 dependencies and moved to using our own base model within the project
- Removed lots of dead backup code
- Recipe names will now be auto-incremented when a conflict is found. So if you're adding a recipe named "Tomato Soup" and that recipe name already exists in your database one will be created with the name "Tomato Soup (1)". Currently this is done in a loop until a suitable name is found, however it will error out after 10 attempts so it's best to find a more descriptive name for your recipe.
- Fixed broken PWA where it wouldn't render any content
- Added database connection retry loop to ensure that the database is available prior to starting
- Reorganized group routes to be more consistent with the rest of the application

## v1.0.0b Beta Release!

!!! error "Breaking Changes"
    As you may have guessed, this release comes with some breaking changes. If you are/were consuming the API you will need to validate all endpoints as nearly all of them have changed.

    To import your data into Mealie v1 from the most recent previous release, you'll need to export and import your data using the built in method. **Note that only your recipes will be usable in the migration**.

### ✨ What's New (What isn't?!?!)

#### 🥳 General

- Mealie will by default only be accessible to users. Future plans are to create spaces for non-users to access a specific group.
- Mealie has gone through a big redesign and has tried to standardize it's look a feel a bit more across the board.
- User/Group settings are now completely separated from the Administration page.
- All settings and configurations pages now have some sort of self-documenting help text. Additional text or descriptions are welcome from PRs
- New experimental banner for the site to give users a sense of what features are still "in development" and provide a link to a github issue that provides additional context.
- Groups now offer full multi-tenant support so you can all groups have their own set of data.

##### ⚙️ Site Settings Page

- Site Settings has been completely revamped. All site-wide settings at defined on the server as ENV variables. The site settings page now only shows you the non-secret values for reference. It also has some helpers to let you know if something isn't configured correctly.
    - Server Side Bare URL will let you know if the BASE_URL env variable has been set
    - Secure Site let's you know if you're serving via HTTPS or accessing by localhost. accessing without a secure site will render some of the features unusable.
    - Email Configuration Status will let you know if all the email settings have been provided and offer a way to send test emails.

#### 👨‍👩‍👧‍👦 Users and Groups

- All members of a group can generate invitation tokens for other users to join their group
- Users now a have "Advanced" setting to enable/disable features like Webhooks and API tokens. This will also apply to future features that are deemed as advanced.
- "Pages" have been dropped in favor of Cookbooks which are now group specific so each group can have it's own set of cookbooks
- Default recipe settings can now be set by the group instead of environmental variables.
- Password reset via email
- Invitation to group by email
- Manage group member permissions

#### 📦 Data Migrations

- Migrations have been moved from the Admin Page to a Group Migration page. Migrations from applications (or previous versions of Mealie) can now be imported into Mealie via the Group Migration pages where all recipes will be imported into the group.
- **Supported Migrations**
    - Mealie Pre v1.0.0
    - Nextcloud Recipes
    - Chowdown

#### 🛒 Shopping Lists

- Shopping Lists has been completely revamped to be more flexible and user friendly.
    - Add recipe ingredients to a shopping list
    - Manually add item/ingredient to shopping list
    - Copy as markdown or plain text
    - Sort by food/item Labels
    - Checked items are now hidden
    - Uncheck all Items
    - Delete all checked items

#### 📢 Apprise Integration

- Server based Apprise notifications have been deprecated. An effort has been made to improve logging overall in the application and make it easier to monitor/debug through the logs.
- The Apprise integration has been updated to the latest version and is now used asynchronously.
- Notifiers now support a wider variety of events.
- Notifiers can now be managed by-group instead of by the server.

#### 🗓 Meal Plans

- Meal plans have been completely redesigned to use a calendar approach so you'll be able to see what meals you have planned in a more traditional view
- Drag and Drop meals between days
- Add Recipes or Notes to a specific day
- New context menu action for recipes to add a recipe to a specific day on the meal-plan
- New rule based meal plan generator/selector. You can now create rules to restrict the addition of recipes for specific days or meal types (breakfast, lunch, dinner, side). You can also create rules that match against "all" days or "all" meal types to create global rules based around tags and categories. This gives you the most flexibility in creating meal plans.

#### 🥙 Recipes

##### 🔍 Search

- Search now includes the ability to fuzzy search ingredients
- Search now includes an additional filter for "Foods" which will filter (Include/Exclude) matches based on your selection.

##### 🍴 Recipe General

- Recipe Pages now implement a screen lock on supported devices to keep the screen from going to sleep.
- Recipes are now only viewable by group members
- Recipes can be shared with share links
- Shared recipes can now render previews for the recipe on sites like Twitter, Facebook, and Discord.
- Recipes now have a `tools` attribute that contains a list of required tools/equipment for the recipe. Tools can be set with a state to determine if you have that tool or not. If it's marked as on hand it will show checked by default.
- Recipe Extras now only show when advanced mode is toggled on
- You can now import multiple URLs at a time pre-tagged using the bulk importer. This task runs in the background so no need to wait for it to finish.
- Foods/Units for Ingredients are now supported (toggle inside your recipe settings)
- Common Food and Units come pre-packaged with Mealie
- Landscape and Portrait views are now available
- Users with the advanced flag turned on will now be able to manage recipe data in bulk and perform the following actions:
    - Set Categories
    - Set Tags
    - Delete Recipes
    - Export Recipes
- Recipes now have a `/cook` page for a simple view of the recipe where you can click through each step of a recipe and it's associated ingredients.
- The Bulk Importer has received many additional upgrades.
    - Trim Whitespace: automatically removes leading and trailing whitespace
    - Trim Prefix: Removes the first character of each line. Useful for when you paste in a list of ingredients or instructions that have 1. or 2. in front of them.
    - Split By Numbered Line: Attempts to split a paragraph into multiple lines based on the patterns matching '1.', '1:' or '1)'.

##### 🍞 Recipe Ingredients

- Recipe ingredients can now be scaled when the food/unit is defined
- Recipe ingredients can now be copied as markdown lists
    - example `- [ ] 1 cup of flour`
- You can now use Natural Language Processing (NLP) to process ingredients and attempt to parse them into amounts, units, and foods. There is an additional "Brute Force" processor that can be used as pattern matching parser to try and determine ingredients. **Note** if you are processing a Non-English language you will have terrible results with the NLP and will likely need to use the Bruce Force processor.

##### 📜 Recipe Instructions

- Can now be merged with the above step automatically through the action menu
- Recipe Ingredients can be linked directly to recipe instructions for improved display
    - There is an option in the linking dialog to automatically link ingredients. This works by using a key-word matching algorithm to find the ingredients. It's not perfect so you'll need to verify the links after use, additionally you will find that it doesn't work for non-english languages.
- Recipe Instructions now have a preview tab to show the rendered markdown before saving.

#### ⚠️ Other things to know...

- Themes have been deprecated for specific users. You can still set specific themes for your site through ENV variables. This approach should yield much better results for performance and some weirdness users have experienced.
- If you've experienced slowness in the past, you may notice a significant improvement in the "All Recipes" and "Search" pages, or wherever large payloads of recipes are being displayed. This is due to not validating responses from the database, as such if you are consuming these API's you may get extra values that are unexpected.

#### 👨‍💻 Backend/Development Goodies

- Codebase is significantly more organized both Frontend and Backend
- We've moved to Nuxt for SSR and Typescript for better type safety and less bugs 🎉
- Backend now using a Class based architecture to maximize code reuse
- Tons of performance improvements across the board
- Significant work was done by [@PFischbeck](https://github.com/PFischbeck) to improve type safety on the frontend server and fix many type related errors/bugs!
