-
Notifications
You must be signed in to change notification settings - Fork 33
Release Checklist
One way of using this checklist is to copy it to another page for a specific release and then go through the checkboxes.
- Tests pass on all platforms.
- Basic user testing on all platforms.
- Performance tests (FFT during live acquisition).
- Memory tests (leaks during live acquisition).
- Camera and Scan tests pass on all platforms.
- Camera and Scan memory leaks have been checked (overnight).
- Essential applications tested (tuning, click-to-shift, eels-analysis, zlp-measurement, drift-measurement).
- Basic frame rate and latency tests have passed.
- Import nionlib works and runs basic tests.
- Run a test on Run Script dialog to make sure imports and threading works.
- Release notes and versioning.
- Tag all releases in svn and git.
- Update user guide with any new features.
- Facade updated, documented, tested, versioning.
- Generate typeshed files and ensure it imports cleanly. (api_tool)
- Generate quick-ref files. (api_tool)
- Generate API documentation files (website). Requires typeshed update first. (api_tool)
- Generate proxy files for connection. (api_tool: Classes.py)
- Generate FacadeQueued file (see notes in file; copy from nionlib). (api_tool)
- Tag any open source packages to PyPI.
- Push any tagged open source packages to conda.
- Tag nionui-launcher for builds on Travis.
- Update website with download instructions.
- Upload versions to website.
- Download and test or check checksums of online versions.
- Tag and build stable readthedocs documentation (explicit build seems to be required).
- Send email to mailing list announcing new version.
The Python packages and the launchers (NionUI, NionSwift) are built on Travis (macOS, Linux) and AppVeyor (Windows). Tagged Python library releases are uploaded automatically to PyPI (configured in the .travis.xml
file). Tagged launchers are uploaded to GitHub (configured in .travis.xml
and appveyor.xml
).
The general procedure for releases is to make the changes, then update the version in the various places (typically: setup.py
, meta.yaml
, CHANGES
, etc.), then commit and let travis build. When the build succeeds, tag the release and push the tags. When that build succeeds, use a conda-build
environment to conda build .
and then upload to the Anaconda website to make the build available via conda.
Releasing the launchers is more complex. First make the changes, update the versions, let the build run, and finally tag the version, which will upload it to GitHub.
Next the launchers must be manually downloaded to the tool directory on each platform and conda build .
on the tool (be sure to update the versions in the tool too). The conda build .
must be done for each version of Python. There are launchers/tools for both NionUI and NionSwift.
Some tests are difficult to automate. These are instructions for those tests.
- Remove profiles and clear application settings
- Launch and make sure New Project dialog appears
- Set
project_reference
toNone
inApplication.start
. - Launch Swift and hit Cancel in choose project window. Application should quit.