This is a list of steps to complete when making a new release.
System prereqs:
- Ubuntu 16.04:
sudo apt update
,sudo apt install build-essential
,pip3 install maturin twine
,cargo install cargo-deb
,sudo apt install snapcraft
. - Centos 7:
yum update
,yum install gcc gcc-c++ make
,cargo install cargo-rpm
,yum install rpm-build
. - Windows: Install Visual Studio Community, and Wix.
cargo install cargo-wix
Ubuntu
below shall refer to Ubuntu 16.04. Builds tend to be more forward-compatible
than backwards.
- Review the commit and PR history since last release. Ensure that all relevant
changes are included in
CHANGELOG.md
- Ensure the readme and homepage website reflects API changes. This includes changing the download links to reflect the latest version.
- Run
python update_version.py v.v.v
. - Update Rust tools:
rustup update
- Run
cargo test
,cargo fmt
- Run
cargo clippy -- -W clippy::pedantic -W clippy::nursery -W clippy::cargo
- Commit and push the repo
- Check that CI pipeline passed
- Run
cargo build --release
on Windows and Ubuntu. - Run
cargo deb
on Ubuntu. - Run
cargo rpm build
on Centos 7. Remove the unnecessary-1
in the filename. (This allows easy installation for Red Hat, Fedora, and CentOs. Also note that the standalone Linux binary may not work on these distros.) users, and binaries built on other OSes appear not to work on these due to OpenSSL issues. - Run
cargo wix
on Windows. - Zip the Windows
.exe
, along withREADME.md
andLICENSE
. - Run
maturin build
on Windows and Ubuntu. - Run
snapcraft
on Ubuntu.
- Run
cargo package
andcargo publish
(Any os). - Run
snapcraft login
, thensnapcraft push --release=stable pyflow_x.x.x_amd64.snap
on Ubuntu. - For the Windows and Ubuntu wheels, run
twine upload (wheelname)
. - Add a release on Github, following the format of previous releases.
- Upload the following binaries to the release page: zipped Windows binary (This is all
Scoop
needs), Linux binary, Msi, Deb, Rpm.
Note on buildling python binaries for the Pybin repo:
Install, copy the file from Appdata/Local/programs/python, and match the filename/compression format with existing entries
Download source. Run these:
./configure --prefix=$HOME/python_built
make
sudo make install