Set up a development environment¶
This guide explains how to run plone-pgthumbor and zodb-pgjsonb-thumborblobloader from source for local development and testing.
Prerequisites¶
Docker and Docker Compose v2+
Python 3.12+
uv (recommended) or pip
Clone the monorepo¶
The development setup lives in the z3blobs monorepo which contains all related packages.
git clone https://github.com/bluedynamics/z3blobs.git
cd z3blobs
Run the development stack¶
cd sources/plone-pgthumbor/development
docker compose up -d --build
Unlike the tryout/ setup (which installs from PyPI), the development stack
mounts local source directories.
Changes to sources/plone-pgthumbor/ and
sources/zodb-pgjsonb-thumborblobloader/ are picked up on container rebuild.
The build context is the monorepo root (../../..) so Docker can COPY from
sources/plone-pgcatalog/, sources/plone-pgthumbor/, and
sources/zodb-pgjsonb-thumborblobloader/.
Run tests¶
plone-pgthumbor¶
cd sources/plone-pgthumbor
uv venv -p 3.13
uv pip install -e ".[test]"
pytest
zodb-pgjsonb-thumborblobloader¶
Requires a running PostgreSQL instance (the development stack provides one on port 5434):
cd sources/zodb-pgjsonb-thumborblobloader
uv venv -p 3.13
uv pip install -e ".[test,s3]"
ZODB_TEST_DSN="dbname=zodb_test user=zodb password=zodb host=localhost port=5434" pytest
Build documentation¶
cd sources/plone-pgthumbor/docs
make docs
The HTML output is in html/.
Use make docs-live for live-reload during
writing.