Building Packages
Released packages are built and published via GitHub actions.
Python packages
To build Python packages locally for testing, use task
. After installing task
, run task py:package
to perform all the steps needed to build the package and a requirements file. To do it manually, run:
pushd frontend
yarnpkg install
yarnpkg generate
popd
rm -r mealie/frontend
cp -a frontend/dist mealie/frontend
poetry build
poetry export -n --only=main --extras=pgsql --output=dist/requirements.txt
MEALIE_VERSION=$(poetry version --short)
echo "mealie[pgsql]==${MEALIE_VERSION} \\" >> dist/requirements.txt
poetry run pip hash dist/mealie-${MEALIE_VERSION}-py3-none-any.whl | tail -n1 | tr -d '\n' >> dist/requirements.txt
echo " \\" >> dist/requirements.txt
poetry run pip hash dist/mealie-${MEALIE_VERSION}.tar.gz | tail -n1 >> dist/requirements.txt
The Python package can be installed with all of its dependencies pinned to the versions tested by the developers with:
pip3 install -r dist/requirements.txt --find-links dist
To install with the latest but still compatible dependency versions, instead run pip3 install dist/mealie-$VERSION-py3-none-any.whl
(where $VERSION
is the version of mealie to install).
Docker image
One way to build the Docker image is to run the following command in the project root directory:
docker build --tag mealie:dev --file docker/Dockerfile --build-arg COMMIT=$(git rev-parse HEAD) .
The Docker image can be built from the pre-built Python packages with the task command task docker:build-from-package
. This is equivalent to:
docker build --tag mealie:dev --file docker/Dockerfile --build-arg COMMIT=$(git rev-parse HEAD) --build-context packages=dist .