Maintainers instructions¶
Packaging¶
This section provides instructions for maintainers who need to create binary packages and Python wheels.
Ubuntu 24.04¶
Requirements:
- Docker
- just
sudo apt-get install dpkg-dev fakeroot nvidia-container-toolkit
To build a release binary, see the build instructions:
just pydev
just release
To build a .deb
Debian installable package for development (with C headers and shared libraries):
just deb
To test the .deb
package in an isolated Docker container:
just testdeb
To build a manylinux
wheel (using manylinux_2_28_x86_64
, based on AlmaLinux 8):
# Build Datoviz in the manylinux container.
just buildmany
# Build a Python wheel in that container (saved in dist/).
just wheelmany
To test the manylinux
wheel:
just testwheel
macOS (arm64)¶
Requirements:
- Homebrew
- just
To build a release binary, see the build instructions:
just pydev
just release
To build a .pkg
macOS installable package for development (with C headers and shared libraries):
just pkg
To build a macOS Python wheel:
just wheel
To test the macOS package in an isolated environment:
-
Install sshpass:
brew install sshpass
-
Install UTM.
- Create a new macOS virtual machine (VM) with at least 64 GB storage (for Xcode).
- Install macOS in the virtual machine. For simplicity, use your
$USER
as the login and password. - Once installed, find the IP address in the VM macOS system preferences and write it down (for example,
192.168.64.4
). - Set up remote access via SSH in the VM macOS system preferences to set up a SSH server.
-
Open a terminal in the VM and type:
type: xcode-select --install
Go back to the host machine and type:
# Test the .pkg installation in an UTM virtual machine, using the IP address you wrote down earlier.
just testpkg 192.168.64.4
The virtual machine should show the Datoviz demo in a window.
To test the macOS wheel, you can either test in a virtual Python environment, or in a virtual machine using UTM.
To test the macOS wheel in a virtual Python environment:
just testwheel
To test the macOS wheel in a virtual machine, set up the virtual machine as indicated above, then run (replacing the IP address with your virtual machine's IP):
just testwheel 192.168.64.4
macOS (Intel x86-64)¶
Requirements:
- Homebrew
- just
To build a release binary, see the build instructions:
just pydev
just release
To build a .pkg
macOS installable package for development (with C headers and shared libraries):
just pkg
To build a macOS Python wheel:
just wheel
Windows¶
Requirements:
To build a release binary, see the build instructions:
just release
To build a Windows Python wheel, open a Git Bash and type:
# see https://stackoverflow.com/a/36530750/1595060
echo "alias python='winpty python.exe'" >> ~/.bash_profile
just pydev
just wheel
To test the wheel in a Python virtual environment:
just testwheel
Release checklist¶
- Build in release mode with
just release
. - Run the C testing suite with
just test
. - Run the Python testing suite with
just pytest
. - Write the
CHANGELOG.md
. - Bump to the new version with
just bump x.y.z
. - Commit and tag.
- Build and test packages.
- Linux
just release
just deb
just testdeb
just manylinux
just testwheel
- Wheel is in
dist/
- macOS ARM & Intel
just release
just pkg
just wheel
just testwheel
- Wheel is in
dist/
- Windows
just release
just wheel
just testwheel
- Wheel is in
dist/
- Upload packages.
- Bump to the new development version with
just bump a.b.c-dev
. - Announcement.