update developer getting-started (#919)

* update developer getting-started

* update change-log

* fix missing title
This commit is contained in:
Hayden 2022-01-10 10:06:39 -09:00 committed by GitHub
parent 190773c5d7
commit 5823a32daf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 135 additions and 34 deletions

View File

@ -1,30 +1,29 @@
# v1.0.0 A Whole New App!
# DRAFT
# v1.0.0 A Whole New App! (DRAFT)
!!! 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.
#### ⚙️ Site Settings Page
**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
@ -33,7 +32,34 @@
- 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 depreciated. 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 not 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
@ -41,12 +67,16 @@
### 🥙 Recipes
**Search**
#### 🔍 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 General
- 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` attributes 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 it 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.
@ -64,25 +94,29 @@
- 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
- Recipe ingredients can now be scaled when the food/unit is defined
- Recipe ingredients can no be copied as markdown lists
- example `- [ ] 1 cup of flour`
- You can no use Natural Language Processing (NLP) to process ingredients and attempt to parse them into amounts, units, and foods. There additional is a "Brute Force" processor that can be used to use a 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**
#### 📜 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 depreciated 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!

View File

@ -1,8 +1,18 @@
# Development: Getting Started
!!! warning
Be sure to use the [Nightly version](https://nightly.mealie.io/) of the docs to ensure you're up to date with
the latest changes.
After reading through the [Code Contributions Guide](../developers-guide/code-contributions.md) and forking the repo you can start working. This project is developed with :whale: docker and as such you will be greatly aided by using docker for development. It's not necessary but it is helpful.
## With Docker
!!! error "Broken"
Developing with Docker is currently broken. Please use the "Without Docker" instructions until this is resolved, or better yet help us fix it!
- [PR #756 - add frontend developer dockerfile](https://github.com/hay-kot/mealie/pull/756)
Prerequisites
- Docker
@ -11,32 +21,89 @@ Prerequisites
You can easily start the development stack by running `make docker-dev` in the root of the project directory. This will run and build the docker-compose.dev.yml file.
## Without Docker
Prerequisites
### Prerequisites
- Python 3.9+
- Poetry
- Nodejs
- npm
- [Python 3.10](https://www.python.org/downloads/)
- [Poetry](https://python-poetry.org/docs/#installation)
- [Node v16.x](https://nodejs.org/en/)
- [yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable)
Once the prerequisites are installed you can cd into the project base directory and run `make setup` to install the python and node dependencies. Once that is complete you can run `make backend` and `make frontend` to start the backend and frontend servers.
### Installing Dependencies
Once the prerequisites are installed you can cd into the project base directory and run `make setup` to install the python and node dependencies.
=== "Linux / MacOs"
```bash
# Naviate To The Root Directory
cd /path/to/project
# Utilize the Makefile to Install Dependencies
make setup
```
=== "Windows"
``` powershell
# Install Python Dependencies
Set-Directory -Path "C:\path\to\project"
poetry install
# Install Node Dependencies
Set-Directory frontend
yarn install
```
### Setting ENV Variables
Before you start the server you MUST copy the `template.env` and `frontend/template.env` files to their respective locations with the name `.env` and `frontend/.env` respectively. The application will-not run without these files.
### Starting The Server
Once that is complete you're ready to start the servers. You'll need two shells open, One for the server and one for the frontend.
=== "Linux / MacOs"
```bash
# Terminal #1
make backend
# Terminal #2
make frontend
```
=== "Windows"
``` powershell
# Terminal # 1
poetry run python mealie/db/init_db.py # Initialize the database
poetry run python mealie/app.py # start application
# Terminal # 2
Set-Directory frontend
yarn run dev
```
## Make File Reference
Run `make help` for reference
Run `make help` for reference. If you're on a system that doesn't support makefiles in most cases you can use the commands directly in your terminal by copy/pasting them from the Makefile.
```
clean-purge ⚠️ Removes All Developer Data for a fresh server start
purge ⚠️ Removes All Developer Data for a fresh server start
clean 🧹 Remove all build, test, coverage and Python artifacts
clean-pyc 🧹 Remove Python file artifacts
clean-test 🧹 Remove test and coverage artifacts
test-all 🧪 Check Lint Format and Testing
test 🧪 Run tests quickly with the default Python
lint 🧺 Check style with flake8
lint 🧺 Format, Check and Flake8
coverage ☂️ Check code coverage quickly with the default Python
setup 🏗 Setup Development Instance
setup-model 🤖 Get the latest NLP CRF++ Model
backend 🎬 Start Mealie Backend Development Server
frontend 🎬 Start Mealie Frontend Development Server
frontend-build 🏗 Build Frontend in frontend/dist
frontend-generate 🏗 Generate Code for Frontend
frontend-lint 🧺 Run yarn lint
docs 📄 Start Mkdocs Development Server
docker-dev 🐳 Build and Start Docker Development Stack
docker-prod 🐳 Build and Start Docker Production Stack

File diff suppressed because one or more lines are too long

View File

@ -11,7 +11,7 @@
{{ $t("general.confirm-delete-generic") }}
</v-card-text>
</BaseDialog>
<BaseDialog v-model="createDialog" @submit="createNewNotifier">
<BaseDialog v-model="createDialog" title="New Notification" @submit="createNewNotifier">
<v-card-text>
<v-text-field v-model="createNotifierData.name" :label="$t('general.name')"></v-text-field>
<v-text-field v-model="createNotifierData.appriseUrl" :label="$t('events.apprise-url')"></v-text-field>