make build-backend details#

This chapter assumes you have previously followed Create a project with Volto (stable release).

The Makefile at the root of your project invokes commands in backend/Makefile. Here are excerpts from backend/Makefile to show details of the make build-backend command.

bin/pip:
	@echo "$(GREEN)==> Setup Virtual Env$(RESET)"
	python3 -m venv .
	bin/pip install -U "pip" "wheel" "cookiecutter" "mxdev"

instance/etc/zope.ini:	bin/pip
	@echo "$(GREEN)==> Install Plone and create instance$(RESET)"
	bin/cookiecutter -f --no-input --config-file instance.yaml https://github.com/plone/cookiecutter-zope-instance
	mkdir -p var/{filestorage,blobstorage,cache,log}

# ...

.PHONY: build-dev
build-dev: instance/etc/zope.ini ## pip install Plone packages
	@echo "$(GREEN)==> Setup Build$(RESET)"
	bin/mxdev -c mx.ini
	bin/pip install -r requirements-mxdev.txt

The command make build-backend:

  • Invokes the target build-dev target in backend/Makefile.

  • This invokes the target instance/etc/zope.ini.

  • This invokes the target bin/pip.

    • This creates a Python virtual environment if one does not exist.

    • It installs and upgrades Python package management tools in that virtual environment.

  • Returning to the target instance/etc/zope.ini:

    • This creates or updates the Zope configuration from its instance.yaml file using cookiecutter-zope-instance.

    • Creates specified directories, if they do not exist.

  • Returning to the target build-dev:

    • This generates the mxdev files as described above in mxdev usage overview.

    • Installs Plone core packages and add-ons from the files generated by mxdev.

You can configure your Zope instance as described in the section Configuration with cookiecutter-zope-instance.