These are the steps that we follow for creating a new Mathesar release.
The release owner is in charge of carrying out the steps to create a release and coordinating with the rest of the team as needed.
In a branch off master
, update the version number in the repo in mathesar/__init__.py
0.1.0
and upcoming releases should be 0.1.x
where x
is incremented.Also update the version number in install.sh
if needed.
github_tag
variable. For example, for version 0.0.3
, you’d putgithub_tag=${1-"0.0.3"}
Clear out your docker containers, images, and volumes:
docker rm -f $(docker ps -a | awk '{print $1}')
docker rmi $(docker image ls | awk '{print $3}')
docker volume rm $(docker volume ls | awk '{print $2}')
This is just to ensure that the below validation starts from a known state.
Create local builds of the prod and caddy Docker images (no need for multiplatform at this stage):
docker build --build-arg PYTHON_REQUIREMENTS=requirements-prod.txt -t mathesar/mathesar-prod:latest .
docker build -t mathesar/mathesar-caddy:latest -f Dockerfile.caddy .
Push your branch to github, and run install.sh
on the commit you’ve made and make sure everything works.
./install.sh <your_branch_name>
Do a quick smoke test on the product – ensure you can
Modify the docs to use the correct install script for this tag. For example, if the version is 0.0.3 (and so the tag is 0.0.3), use:
bash <(curl -sL https://raw.githubusercontent.com/centerofci/mathesar/0.0.3/install.sh)
Merge the branch to master
Note that after merging the documentation change, if someone is using the docs off of the
master
branch, they’ll get a 404 until the tag actually exists. Therefore, avoid going to lunch while things are in this state.
cd
to repository, check out the commit that you’ve tagged.<version_number>
with the actual version:docker buildx create --name container --driver=docker-container
docker buildx build -t mathesar/mathesar-caddy:<version_number> -t mathesar/mathesar-caddy:latest --builder=container --platform=linux/amd64,linux/arm64 --push -f Dockerfile.caddy .
docker buildx build -t mathesar/mathesar-prod:<version_number> -t mathesar/mathesar-prod:latest --builder=container --platform=linux/amd64,linux/arm64 --push --build-arg PYTHON_REQUIREMENTS=requirements-prod.txt .