All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
setuptools
Python dependency since Docker recently removed this from the official Python image
- Update
Python
to3.13.0
- Update
Postgres
to17.0
- Update
Redis
to7.4.1
- Update
Flask-DebugToolbar
to0.16.0
- Update
SQLAlchemy
to2.0.35
- Update
Werkzeug
to3.0.4
- Update
alembic
to1.13.3
- Update
black
to24.10.0
- Update
gunicorn
to23.0.0
- Update
psycopg
to3.2.3
- Update
pytest
to8.3.3
- Update
redis
to5.1.1
- Update
esbuild
to0.24.0
- Update
postcss
to8.4.47
- Update
tailwindcss
to3.4.13
0.12.0 - 2024-08-09
WEB_TIMEOUT
environment variable to configure gunicorn's timeout value (defaults to 120s)
- Convert
SECRET_KEY
into a required env var - Add
required: false
todepends_on
indocker-compose.yml
(requires Docker Compose v2.20.2+) - Refactor
create_celery_app
function to be compatible with Python 3.12+ - Adjust
WEB_CONCURRENCY
to default to N number of CPU cores instead of 1 in development - Rename
docker-compose.yml
tocompose.yaml
to stick to the official Docker Compose spec
- Update
Python
to3.12.5
- Update
Node
to20.6.1
- Update
Postgres
to16.3
- Update
Redis
to7.2.5
- Update
Flask-DB
to0.4.1
- Update
Flask-DebugToolbar
to0.15.1
- Update
Flask-SQLAlchemy
to3.1.1
- Update
Flask-Static-Digest
to0.4.1
- Update
Flask
to3.0.3
- Update
Jinja2
to3.1.4
- Update
SQLAlchemy-Utils
to0.41.2
- Update
SQLAlchemy
to2.0.32
- Update
alembic
to1.13.2
- Update
black
to24.8.0
- Update
celery
to5.4.0
- Update
flake8
to7.1.1
- Update
gunicorn
to22.0.0
- Update
isort
to5.13.2
- Update
psycopg
to3.2.1
- Update
pytest-cov
to5.0.0
- Update
pytest
to8.3.2
- Update
redis
to5.0.8
- Update
werkzeug
to3.0.3
- Update
autoprefixer
to10.4.20
- Update
esbuild
to0.23.0
- Update
postcss-import
to16.1.0
- Update
postcss
to8.4.41
- Update
tailwindcss
to3.4.8
0.11.0 - 2023-05-13
- Ability to customize
UID
andGID
if you're not using1000:1000
(check the.env.example
file) - Output
docker compose logs
in CI for easier debugging isort
to auto-sort Python imports and a new./run format:imports
command./run quality
to run all lint and format commands in 1 command
- Adjust
x-assets
to use astop_grace_period
of0
for faster CTRL+c times in dev - Reference
PORT
variable in thedocker-compose.yml
web service instead of hard coding8000
- Adjust Hadolint to exit > 0 if any style warnings are present
- Rename
esbuild.config.js
toesbuild.config.mjs
and refactor config for esbuild 0.17+ - In
hello/up/views.py
, update raw SQLSELECT 1
health check for SQLAlchemy 2.0 - Explicitly set
DEBUG
config option based off theFLASK_DEBUG
env var so the intent is clear
- Update
Python
to3.11.3
- Update
Node
to18.15.0
- Update
Postgres
to15.3
- Update
Redis
to7.0.11
- Replace
psycopg2
withpsycopg
(3.1.9) - Update
Flask-SQLAlchemy
to3.0.3
- Update
Flask-Static-Digest
to0.3.0
- Update
Flask
to2.3.2
- Update
SQLAlchemy-Utils
to0.41.1
- Update
SQLAlchemy
to2.0.13
- Update
alembic
to1.10.4
- Update
black
to23.3.0
- Update
flake8
to6.0.0
- Update
isort
to5.12.0
- Update
psycopg2
to2.9.6
- Update
pytest-cov
to4.0.0
- Update
pytest
to7.3.1
- Update
redis
to4.5.5
- Update
werkzeug
to2.3.4
- Update
autoprefixer
to10.4.14
- Update
esbuild
to0.17.19
- Update
postcss-import
to15.1.0
- Update
postcss
to8.4.23
- Update
tailwindcss
to3.3.2
set -o nounset
fromrun
script since it's incompatible with Bash 3.2 (default on macOS)
- Correctly append
_test
database name to database URI when using query strings - Ensure Flake8, Black and isort all use 79 as the max line length
0.10.0 - 2022-09-08
set -o nounset
torun
script to exit if there's any undefined variables
- Replace
FLASK_ENV
withFLASK_DEBUG
(FLASK_ENV
will be deprecated in Flask 2.3) - Switch Docker Compose
env_file
toenvironment
forpostgres
to avoid needless recreates on.env
changes - Replace override file with Docker Compose profiles for running specific services
- Update Github Actions to use Ubuntu 22.04
- Enable BuildKit by default in the
.env.example
file
- Update
Python
to3.10.5
- Update
Node
to16.15.1
- Update
PostgreSQL
to14.5
- Update
Redis
to7.0.4
- Update
Flask
to2.2.2
- Update
SQLAlchemy-Utils
to0.38.3
- Update
SQLAlchemy
to1.4.40
- Update
alembic
to1.8.1
- Update
black
to22.6.0
- Update
celery
to5.2.7
- Update
flake8
to5.0.4
- Update
jinja
to2.1.2
- Update
redis
to4.3.4
- Update
werkzeug
to2.2.2
- Update
autoprefixer
to10.4.8
- Update
esbuild
to0.15.2
- Update
postcss
to8.4.16
- Update
tailwindcss
to3.1.8
- Docker Compose
env_file
property forredis
to avoid needless recreates on.env
changes - Drop support for Docker Compose v1 (mainly to use profiles in an optimal way, it's worth it!)
0.9.0 - 2022-05-15
yarn cache clean
afteryarn install
inDockerfile
(Hadolint warning)--no-cache-dir
flag topip3 install
command inbin/pip3-install
(Hadolint warning)- esbuild-copy-static-files plugin to drastically improve how static files are copied (check
assets/esbuild.config.js
)
- Update Bash shebang to use
#!/usr/bin/env bash
inpip3-install
anddocker-entrypoint-web
- Refactor
/up/
endpoint into its own view and add/up/databases
as a second URL
- Update
Python
to3.10.4
- Update
Node
to16.14.2
- Update
PostgreSQL
to14.2
- Update
Redis
to7.0.0
- Update
Flask
to2.1.2
- Update
SQLAlchemy-Utils
to0.38.2
- Update
SQLAlchemy
to1.4.36
- Update
alembic
to1.7.7
- Update
black
to22.3.0
- Update
celery
to5.2.6
- Update
flask-debugtoolbar
to0.13.1
- Update
jinja2
to3.1.1
- Update
psycopg2
to2.9.3
- Update
pytest
to7.1.2
- Update
redis
to4.3.1
- Update
werkzeug
to2.1.1
- Update
autoprefixer
to10.4.7
- Update
esbuild
to0.14.39
- Update
postcss-import
to14.1.0
- Update
postcss
to8.4.13
- Update
tailwindcss
to3.0.24
COPY --chown=node:node ../ ../
has been fixed to beCOPY --chown=node:node . ..
0.8.0 - 2021-12-25
- Lint Dockerfile with https://github.com/hadolint/hadolint
/node_modules/.bin
to$PATH
to easier access Yarn installed binariesyarn:build:js
andyarn:build:css
run script commands
- Update
assets/tailwind.config.js
based on the new TailwindCSS v3 defaults - Replace all traces of Webpack with esbuild
- Move JS and CSS from
assets/app
toassets/js
andassets/css
- Rename
webpack
Docker build stage toassets
- Copy all files into the
assets
build stage to simplify things - Replace
cp -a
withcp -r
in Docker entrypoint to make it easier to delete older assets - Rename
run hadolint
torun lint:dockerfile
- Rename
run flake8
torun lint
- Rename
run black
torun format
- Rename
run pytest
torun test
- Rename
run pytest-cov
torun test:coverage
- Rename
run bash
torun shell
- Update
Node
to16.13.1
- Update
PostgreSQL
to14.1
and switch to Debian Bullseye Slim - Update
Redis
to switch to Debian Bullseye Slim
- Update
SQLAlchemy-Utils
to0.38.1
- Update
SQLAlchemy
to1.4.29
- Update
alembic
to1.7.5
- Update
celery
to5.2.1
- Update
flake8
to4.0.1
- Update
psycopg2
to2.9.2
- Update
py
to1.11.0
- Update
redis
to4.0.2
- Update
werkzeug
to2.0.2
- Update
autoprefixer
to10.4.0
- Update
postcss
to8.4.5
- Update
tailwindcss
to3.0.7
- Deleting old assets in the Docker entrypoint (it's best to handle this out of band in a cron job, etc.)
0.7.0 - 2021-10-10
- Use f string for
db
variable inconfig/settings.py
- Update
Python
to3.10.0
and switch to Debian Bullseye Slim - Update
PostgreSQL
to14.0
- Update
Redis
to6.2.6
- Update
Flask-DB
to0.3.2
- Update
Flask
to2.0.2
- Update
SQLAlchemy-Utils
to0.37.8
- Update
SQLAlchemy
to1.4.25
- Update
alembic
to1.7.4
- Update
celery
to5.1.2
- Update
psycopg2
to2.9.1
- Update
pytest-cov
to3.0.0
- Update
pytest
to6.2.5
- Update
@babel/core
to7.15.8
- Update
@babel/preset-env
to7.15.8
- Update
@babel/register
to7.15.3
- Update
autoprefixer
to10.3.7
- Update
copy-webpack-plugin
to9.0.1
- Update
css-loader
to6.4.0
- Update
css-minimizer-webpack-plugin
to3.1.1
- Update
mini-css-extract-plugin
to2.4.2
- Update
postcss-loader
to6.1.1
- Update
postcss
to8.3.9
- Update
tailwindcss
to2.2.16
- Update
webpack-cli
to4.9.0
- Update
webpack
to5.58.1
0.6.0 - 2021-05-27
hello/initializers.py
now exists to define frequently used imports, variables, etc.
- Use the Docker Compose spec in
docker-compose.yml
(removesversion:
property) - Update Tailwind from
2.1.0
to2.1.2
- Update all Webpack related dependencies to their latest versions
- Update Flask from
1.1.2
to2.0.1
- Update Celery from
5.0.5
to5.1.0
- Update Alembic from
1.5.8
to1.6.4
- Update SQLAlchemy from
1.4.11
to1.4.15
- Update SQLAlchemy-Utils from
0.37.0
to0.37.4
- Update Redis from
6.0.10
to6.2.3
- Update pytest from
6.2.2
to6.2.4
- Update pytest-cov from
2.11.1
to2.12.0
- Use the new Flask 2.0
.get
decorator
0.5.0 - 2021-04-24
bin/rename-project
script to assist with renaming the project- Use Black to format Python code
- Switch
OptimizeCSSAssetsPlugin
withCssMinimizerPlugin
for Webpack 5 - Replace deprecated Webpack 5
file-loader
withasset/resource
- Avoid using multi-line imports with commas or parenthesis
- Update SQLAlchemy from
1.3.23
to1.4.11
- Update SQLAlchemy-Utils from
0.36.8
to0.37.0
- Update Flask-SQLAlchemy from
2.4.4
to2.5.1
- Update gunicorn from
20.0.4
to20.1.0
- Update Alembic from
1.5.4
to1.5.8
- Update flake8 from
3.8.4
to3.9.1
- Update TailwindCSS to
2.1.0
and enable the JIT compiler - Replace
APP_NAME
inrun
script withPOSTGRES_USER
for connecting to psql
hello/blueprints/
namespace has been removed- Unused
webpack
import in Webpack config - Remove Webpack's cache since the JIT compiler is pretty speedy as is
- Code styling issues in the Webpack config (single quotes, semi-colons, etc.)
- Set an empty ENTRYPOINT for the worker to avoid race conditions when copying static files
- Fix
run
script error for unbound variable in older versions of Bash on macOS
0.4.0 - 2021-03-02
PORT
env variable to be compatible with more hosting providersCELERY_LOG_LEVEL
env variable to configure Celery's log level (defaults toinfo
)run cmd
to run any command you want in the web container, ie.run cmd python3 --version
- Rename
DOCKER_WEB_PORT
toDOCKER_WEB_PORT_FORWARD
- Refactor
run
script so all web container commands use the newcmd
function - Replace
##
comments with#
in therun
script
- Ability to customize gunicorn bind host, it's hard coded to
0.0.0.0
now curl
andlibpq-dev
apt dependencies from the webpack image (they're not needed)- Remove unnecessary
mkdir
for the pip cache dir and chown'ing/home/python
- Define
PYTHONPATH="."
env var in the Dockerfile so thatflask db migrate
works - Update Flask-DB to
0.3.1
which makes surealembic.ini.new
gets properly initalized - Commit
public/.keep
and make sure the.keep
file is never removed
0.3.0 - 2021-02-20
run pip3:outdated
task to show outdated Python dependenciesrun yarn:outdated
task to show outdated Node dependencies
- Update PostgreSQL from
13.1
to13.2
- Update Redis from
6.0.9
to6.0.10
- Update Python from
3.9.1
to3.9.2
- Update Node from
14.15.1
to14.5.5
- Update all Python and Node packages to their latest stable releases
- Import
Redis
more efficiently inhello/extensions.py
- Disable Flask tip about
python-dotenv
when running anyflask
CLI command - Refactor
run
script to remove a lot of duplication by introducing helper functions
terser-webpack-plugin
frompackage.json
since it comes with Webpack 5 by default
0.2.0 - 2020-12-27
- Use
REDIS_URL
to configure connections for Redis directly and Celery - Add Redis
PING
check to the/up
health check endpoint
- Unnecessary
CELERY_TASK_LIST
comment inhello/app.py
, this was a left over copy / paste mishap
0.1.0 - 2020-12-24
- Everything!