Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release planning for 0.14 #1623

Closed
76 of 85 tasks
uellue opened this issue Apr 10, 2024 · 17 comments
Closed
76 of 85 tasks

Release planning for 0.14 #1623

uellue opened this issue Apr 10, 2024 · 17 comments
Milestone

Comments

@uellue
Copy link
Member

uellue commented Apr 10, 2024

We have quite a good set of changes in the current master, in particular fixing CoM descan error compensation for live processing, enabled by valid data masking, and supporting EMPAD files saved in search mode. For that reason we can think about releasing soon. This would also enable valid data masking and descan error compensation in iCoM, relevant for Dan.

Should we first release a new version of blobfinder to include #1600 in 0.14, or defer that?

If you agree, I can start reviewing the open issues and PRs, addressing or kicking them down the line as needed.

Release checklist

Issues and pull requests to be considered for this release:

Step 0: before cutting the release candidate

  • Review open issues and pull requests
  • Confirm that pull requests and issues are handled as intended, i.e. milestoned and merged
    in appropriate branch.
  • License review: no import of GPL code from MIT code
    pydeps --only "libertem" --show-deps --noshow src\libertem | python scripts\licensecheck.py
  • Run full CI pipeline, including slow tests, on Azure DevOps and run the Thorough workflow on GitHub Actions
  • Handle deprecation, search the code base for DeprecationWarning
    that are supposed to be removed in that release.
  • GUI dependency update with npm install Update node deps #1626
  • Review https://github.com/LiberTEM/LiberTEM/security/dependabot and update dependencies
  • Full documentation review and update, including link check using
    sphinx-build -b linkcheck "docs/source" "docs/build/html" Misc. docs changes #1638
  • Update the expected version in notes on changes, i.e. from 0.3.0.dev0
    to 0.3.0 when releasing version 0.3.0.
  • Update and review change log in docs/source/changelog.rst, merging
    snippets in docs/source/changelog/*/ as appropriate. Release 0.14 changelog + docs #1636
  • Edit pytest.ini to exclude flaky tests temporarily from release
    builds, if there are currently any flaky tests
  • Update the JSON files in the packaging/ folder with author and project information Add cigdem to contributors #1639

Step 1

  • Create a release candidate using scripts/release. See
    scripts/release --help for details. Example command:
    ./scripts/release bump v0.3.0rc1 --tag, then push to GitHub
  • Confirm that wheel, tar.gz, and AppImage are built for the release candidate on
    GitHub
  • Confirm that a new version with the most recent release candidate is created on
    Zenodo.org that is ready for submission.

Step 2: using the release candidate package

  • Run tests for related packages w/ new LiberTEM version
    • LiberTEM-live
    • LiberTEM-holo
    • LiberTEM-blobfinder
    • ptychography40
    • LiberTEM-iCoM
  • Run complete test suite, including slow tests that are deactivated by default
    and tests that require sample files or CUDA support.
  • Install release candidate packages in a clean environment
    (for example:
    python -m pip install 'libertem==0.2.0rc11')
  • Test the release candidate docker image
  • Quick GUI QA: open in an incognito window to start from a clean slate
    • Correct version info displayed in info dialogue?
    • Link check in version info dialogue
    • Test GUI without internet access
    • Make sure you have test files of all supported types available
      • Include floats, ints, big endian, little endian, complex raw data
    • Open each test file
      • Are parameters recognized correctly, as far as implemented?
      • Any bad default values?
      • Does the file open correctly?
      • Have a look at the dataset info dialogue. Reasonable values?
    • Perform all analyses on each test file.
      • Does the result change when the input parameters are changed?
      • All display channels present and looking reasonable?
      • Reasonable performance?
      • Use pick mode.
    • Re-open all the files
      • Are the files listed in "recent files"?
      • Are the parameters filled from the cache correctly?
    • Try opening all file types with wrong parameters
      • Proper understandable error messages?
    • Pick one file and confirm keyboard and mouse interaction for all analyses
      • Correct bounds check for keyboard and mouse?
    • Check what happens when trying to open non-existent files or directories in the GUI.
      • Proper understandable error message?
      • Possible to continue working?
    • Shut down libertem-server while analysis is running
      • Shut down within a few seconds?
      • All workers reaped?
    • Run libertem-server on Windows, connect to a remote dask cluster running on Linux,
      open all file types and perform an analysis for each file type.
    • Use the GUI while a long-running analysis is running
      • Still usable, decent response times?
  • Check what happens when trying to open non-existent files by scripting.
    • Proper understandable error message? TODO automate?
  • Check what happens when opening all file types with bad parameters by scripting
    • Proper understandable error message? TODO automate?

Step 3: bump version and let release pipeline run

  • Final version bump: ./scripts/release bump v0.3.0 --tag, push to github
  • After pipeline finishes, write minimal release notes for the release and publish the GitHub release

Step 4: after releasing on GitHub

  • Confirm that all release packages are built and release notes are up-to-date
  • Install release package
  • Confirm correct version info
  • Confirm package upload to PyPI
  • Confirm images and tags on https://ghcr.io/libertem/libertem
  • Publish new version on zenodo.org
  • Update documentation with new links, if necessary
  • Conda packaging: review PRs on https://github.com/conda-forge/libertem-feedstock/pulls
  • Send announcement message on mailing list
  • Edit pytest.ini to include flaky tests again
  • Bump version in master branch to next .dev0 (./scripts/release bump v0.X.0.dev0 --commit)
  • Add to institutional publication databases
  • Add the current LiberTEM version to CVL - add both the singularity and the .desktop file!
@uellue uellue added this to the 0.14 milestone Apr 10, 2024
@sk1p
Copy link
Member

sk1p commented Apr 11, 2024

We have quite a good set of changes in the current master, in particular fixing CoM descan error compensation for live processing, enabled by valid data masking, and supporting EMPAD files saved in search mode. For that reason we can think about releasing soon. This would also enable valid data masking and descan error compensation in iCoM, relevant for Dan.
If you agree, I can start reviewing the open issues and PRs, addressing or kicking them down the line as needed.

Agreed!

IMHO:

Should we first release a new version of blobfinder to include #1600 in 0.14, or defer that?

Yes, include (blobfinder release is almost done)

Postpone

See review

@sk1p
Copy link
Member

sk1p commented Apr 11, 2024

Manual "thorough" run of GitHub Actions successful: https://github.com/LiberTEM/LiberTEM/actions/runs/8644927225

@sk1p
Copy link
Member

sk1p commented Apr 11, 2024

Data tests, including slow ones, ran successfully: https://dev.azure.com/LiberTEM/LiberTEM/_build/results?buildId=2740&view=results

@sk1p
Copy link
Member

sk1p commented Apr 11, 2024

I've moved the remaining issues from the 0.14 milestone to 0.15, as I don't think any of them are directly solvable: https://github.com/LiberTEM/LiberTEM/milestone/21

@sk1p
Copy link
Member

sk1p commented Apr 18, 2024

Before cutting an RC, I think I'll adjust the release script a bit, to match what we have done for blobfinder (and maybe include some changes to also put the rc on the "real" pypi, as that removes some of the complexity)

@sk1p sk1p pinned this issue Apr 18, 2024
@sk1p
Copy link
Member

sk1p commented Apr 18, 2024

For the UI testing, main focus should be on the snoozing feature, I don't think we had substantial changes other than that. I'll also re-check the libertem-live-server CoM + valid data masking stuff, to make sure we hit the goal there.

@sk1p
Copy link
Member

sk1p commented Apr 25, 2024

There is some instability with our tests, for example this run here or this one, seemingly hanging. Doesn't seem to be limited to notebook tests, but that's where I've seen it the first time. Might be something to look into before the release.

@matbryan52
Copy link
Member

There is some instability with our tests, for example this run here or this one, seemingly hanging. Doesn't seem to be limited to notebook tests, but that's where I've seen it the first time. Might be something to look into before the release.

Not much to go on in those logs, is it just the /data tests that you've noticed this for? Could it be network or load on the runner?

@sk1p
Copy link
Member

sk1p commented Apr 29, 2024

Not much to go on in those logs, is it just the /data tests that you've noticed this for?

Yeah, no recent hangs on GitHub Actions.

Could it be network or load on the runner?

Unclear, couldn't properly debug this last time, I just kicked the agent containers, which one has to do from time to time.

@sk1p
Copy link
Member

sk1p commented Apr 30, 2024

I'll also re-check the libertem-live-server CoM + valid data masking stuff, to make sure we hit the goal there.

The valid data mask and related changes in CoMUDF look good. Once #1633 lands, we are ready to build a release candidate.

@sk1p
Copy link
Member

sk1p commented May 16, 2024

rc1 is baking: https://github.com/LiberTEM/LiberTEM/actions/runs/9108024491

@sk1p
Copy link
Member

sk1p commented May 16, 2024

Hmm, git revision does not display in the about dialog of the GUI (seen while testing the docker image) - I'll investigate.

@sk1p
Copy link
Member

sk1p commented May 16, 2024

Hmm, git revision does not display in the about dialog of the GUI (seen while testing the docker image) - I'll investigate.

_baked_revision.py is present in the wheel, but not in the docker image. I think the proper fix is to use hatchling to build the package, like we are already doing for LiberTEM-{live,blobfinder,...}. I'll open an issue for this, to be solved for next release.

@sk1p
Copy link
Member

sk1p commented May 16, 2024

@sk1p
Copy link
Member

sk1p commented May 16, 2024

Zenodo is err'ing out with a 404 here, I'll try if a re-run as rc3 fixes things https://github.com/LiberTEM/LiberTEM/actions/runs/9115164958/job/25061353503#step:7:3405

@sk1p
Copy link
Member

sk1p commented May 18, 2024

Conda-forge PR should be ready to go: conda-forge/libertem-feedstock#7

@sk1p
Copy link
Member

sk1p commented Jun 3, 2024

As CVL seems to be under-maintained for now, I'm going to delay adding the new version until there is activity again (see open PR for previous two releases). With this, the post release items are all checked and I'm going to close the milestone.

@sk1p sk1p closed this as completed Jun 3, 2024
@sk1p sk1p unpinned this issue Jun 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants