Heat

Latest version: v1.5.0

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

2.0

In the following, we assume we are about to release Heat v1.5.0.

**PRE-REQUISITES:**

- You need [PyPi](https://pypi.org/), [Test.PyPi](https://test.pypi.org/) account
- All intended PRs are merged, all tests have passed, and the `main` branch is ready for release.

1. We will release all new features in the development branch `main`. Branch off `main` to create a new release branch, e.g.:

bash
git checkout main
git pull
git checkout -b release/1.5.x


2. Update `heat/core/version.py` like this:

python
"""This module contains Heat's version information."""

major: int = 1
"""Indicates Heat's main version."""
minor: int = 4 <-- update to 5
"""Indicates feature extension."""
micro: int = 2 <-- update to 0
"""Indicates revisions for bugfixes."""
extension: str = "dev" <-- set to None
"""Indicates special builds, e.g. for specific hardware."""


3. Commit and push new `version.py` in `release/1.5.x`

4. Draft release notes:

- Go to the GitHub repo's [Releases](https://github.com/helmholtz-analytics/heat/releases) page.
- The release notes draft is automated. Click on Edit Draft
- Select the new tag: v1.3.0. Modify Target branch: `release/1.5.x`
- Edit release notes as needed (see older releases)
- Click on Save but do not publish yet

5. Update `CITATION.cff` if needed, i.e. add names of non-core contributors (they are included in the Release notes draft you just created). Push to the release branch.

6. Build wheel in your local `heat/` directory, make sure you are on branch `release/1.5.x`.

bash
rm -f dist/*
python -m build


You might have to install the `build` package first (i.e. with `conda install build` or `pip install build`)

7. Upload to Test PyPI and verify things look right. You need to install `twine` first.

bash
twine upload -r testpypi dist/*


`twine` will prompt for your username and password.

8. When everything works, upload to PyPI:

bash
twine upload dist/*


9. Go back to the Release Notes draft and publish them. The new release is out!

- Make sure the CHANGELOG.md got updated, if not, call JuanPedroGHM.
- Check our [Zenodo page](https://zenodo.org/doi/10.5281/zenodo.2531472) to make sure a DOI was created for the release.

10. Check status of our conda-forge recipe: (Need to be listed as maintainer, either ClaudiaComito, mrfh92, JuanPedroGHM)
- Go to https://github.com/conda-forge/heat-feedstock
- A new PR should have been automatically created.
- Changes can be pushed to the PR.
- Make sure the version number is correct.
- Make sure the SHA points to the correct PyPI release.
- Make sure dependencies match.
- Once the PR is done, wait for the CI checks to finish and merge.
- Refer to the conda-forge docs if there are any issues: https://conda-forge.org/docs/maintainer/updating_pkgs.html#pushing-to-regro-cf-autotick-bot-branch

11. Now we want to update `main` to include the latest release, we want to modify the version on main so that `minor` is increased by 1, and `extension` is "dev". In this example we want the version on `main` to be:`1.4.0-dev`.

bash
git checkout main
git pull
git checkout -b workflows/update-version-main
git merge release/1.5.x --no-ff --no-commit


Modify `version.py` so that `extension` is `"dev"`. Commit and push the changes.

12. Create a PR with `main` as the base branch.

13. Get approval and merge. You're done!

Patch release

1.4.2

Not secure
Changes

Maintenance

- [1467](https://github.com/helmholtz-analytics/heat/pull/1467), [#1525](https://github.com/helmholtz-analytics/heat/pull/1525) Support PyTorch 2.3.1 (by mtar)
- [1535](https://github.com/helmholtz-analytics/heat/pull/1535) Address test failures after netCDF4 1.7.1, numpy 2 releases (by ClaudiaComito)

1.4.1

Not secure
Changes

Bug fixes
- 1472 DNDarrays returned by `_like` functions default to same device as input DNDarray (by mrfh92, ClaudiaComito)

Maintenance
- 1441 added names of non-core members in citation file (by mrfh92)

1.4.0

Not secure
Changes

Documentation

- 1406 New tutorials for interactive parallel mode for both HPC and local usage (by ClaudiaComito)

🔥 Features

- 1288 Batch-parallel K-means and K-medians (by mrfh92)
- 1228 Introduce in-place-operators for `arithmetics.py` (by LScheib)
- 1218 Distributed Fast Fourier Transforms (by ClaudiaComito)

Bug fixes

- 1363 `ht.array` constructor respects implicit torch device when copy is set to false (by JuanPedroGHM)
- 1216 Avoid unnecessary gathering of distributed operand (by samadpls)
- 1329 Refactoring of QR: stabilized Gram-Schmidt for split=1 and TS-QR for split=0 (by mrfh92)

Interoperability

- 1418 and 1290: Support PyTorch 2.2.2 (by mtar)
- 1315 and 1337: Fix some NumPy deprecations in the core and statistics tests (by FOsterfeld)

1.3.1

Not secure
1. Check that all intended branches have been merged to the release branch you want to upgrade, in this example `release/1.3.x`. Branch off from `release/1.3.x` and create a new branch:

bash
git checkout release/1.3.x
git pull
git checkout -b minor-version-update


2. Update `heat/core/version.py` like this:

python
"""This module contains Heat's version information."""

major: int = 1
"""Indicates Heat's main version."""
minor: int = 3
"""Indicates feature extension."""
micro: int = 0 <-- update to 1
"""Indicates revisions for bugfixes."""
extension: str = None
"""Indicates special builds, e.g. for specific hardware."""


3. Commit and push new `version.py` in `minor-version-update`

4. Create a pull request from `minor-version-update` to `release/1.3.x`

- Remember to get a reviewers approval.
- Wait for the test to finish.
- Squash and merge.


5. Draft release notes:

- Go to the GitHub repo's [Releases](https://github.com/helmholtz-analytics/heat/releases) page.
- The release notes draft is automated. Click on Edit Draft
- Select the new tag: `v1.3.1`
- Edit release notes as needed (see older releases)
- Save the changes to the release notes WITHOUT PUBLISHING!!

6. Build wheel in your local `heat/` directory, make sure you are on branch `release/1.3.x`.

bash
rm -f dist/*
python -m build


You might have to install the `build` package first (i.e. with `conda install build` or `pip install build`)

7. Upload to Test PyPI and verify things look right. You need to install `twine` first.

bash
twine upload -r testpypi dist/*


`twine` will prompt for your username and password.

- Look at the testpypi repository and make sure everything is correct (version number, readme, etc.)

8. When everything works, upload to PyPI:

bash
twine upload dist/*


9. Update conda-forge recipe (Need to be listed as maintainer, either ClaudiaComito, mrfh92, JuanPedroGHM)
- Go to https://github.com/conda-forge/heat-feedstock
- A new PR should have been automatically created.
- Changes can be pushed to the PR.
- Make sure the version number is correct.
- Make sure the SHA points to the correct PyPI release.
- Make sure dependencies match.
- Once the PR is done, wait for the CI checks to finish and merge.
- Refer to the conda-forge docs if there are any issues: https://conda-forge.org/docs/maintainer/updating_pkgs.html#pushing-to-regro-cf-autotick-bot-branch


10. Go back to the Release Notes draft and publish them. The new release is out!
- Make sure the CHANGELOG.md got updated in the release branch, in this case `release/1.3.x`, if not, call JuanPedroGHM.
- Check Zenodo to make sure a DOI was created for the release.

11. Now we want to update `main` to the latest version, and we want the version on `main` to be `1.4.0-dev`.
- Create a new branch from `release/1.3.x`, for example `merge-latest-release-into-main`
- Merge `main` into `merge-latest-release-into-main`, resolve conflicts and push.
- Create a PR from `merge-latest-release-into-main`, base branch must be `main`
- Make sure the version number in `merge-latest-release-into-main` is correct (i.e., it matches that in `main`).
- Make sure the CHANGELOG.md in `merge-latest-release-into-main` matches that in the latest release branch, in this example`release/1.3.x`.
- Get a reviewers approval, wait for the CI checks to pass, and merge.

1.3.0

Not secure
This release includes many important updates (see below). We particularly would like to thank our enthusiastic [GSoC2022](https://summerofcode.withgoogle.com/programs/2022) / tentative GSoC2023 contributors Mystic-Slice neosunhan Sai-Suraj-27 shahpratham AsRaNi1 Ishaan-Chandak 🙏🏼 Thank you so much!

Highlights
- 1155 Support PyTorch 2.0.1 (by ClaudiaComito)
- 1152 Support AMD GPUs (by mtar)
- 1126 [Distributed hierarchical SVD](https://helmholtz-analytics.github.io/heat/2023/06/16/new-feature-hsvd.html) (by mrfh92)
- 1028 Introducing the `sparse` module: Distributed Compressed Sparse Row Matrix (by Mystic-Slice)
- Performance improvements:
- 1125 distributed `heat.reshape()` speed-up (by ClaudiaComito)
- 1141 `heat.pow()` speed-up when exponent is `int` (by ClaudiaComito coquelin77 )
- 1119 `heat.array()` default to `copy=None` (e.g., only if necessary) (by ClaudiaComito neosunhan )
- 970 [Dockerfile and accompanying documentation](https://github.com/helmholtz-analytics/heat/tree/release/1.3.x/docker) (by bhagemeier)

Changelog

Array-API compliance / Interoperability

- 1154 Introduce `DNDarray.__array__()` method for interoperability with `numpy`, `xarray` (by ClaudiaComito)
- 1147 Adopt [NEP29](https://numpy.org/neps/nep-0029-deprecation_policy.html), drop support for PyTorch 1.7, Python 3.6 (by mtar)
- 1119 `ht.array()` default to `copy=None` (e.g., only if necessary) (by ClaudiaComito)
- 1020 Implement `broadcast_arrays`, `broadcast_to` (by neosunhan)
- 1008 API: Rename `keepdim` kwarg to `keepdims` (by neosunhan)
- 788 Interface for [DPPY](https://github.com/IntelPython/DPPY-Spec) interoperability (by coquelin77 fschlimb )

New Features
- 1126 [Distributed hierarchical SVD](https://helmholtz-analytics.github.io/heat/2023/06/16/new-feature-hsvd.html) (by mrfh92)
- 1020 Implement `broadcast_arrays`, `broadcast_to` (by neosunhan)
- 983 Signal processing: fully distributed 1D convolution (by shahpratham)
- 1063 add __eq__ to Device (by mtar)

Bug Fixes

- 1141 `heat.pow()` speed-up when exponent is `int` (by ClaudiaComito)
- 1136 Fixed PyTorch version check in `sparse` module (by Mystic-Slice)
- 1098 Validates number of dimensions in input to `ht.sparse.sparse_csr_matrix` (by Ishaan-Chandak)
- 1095 Convolve with distributed kernel on multiple GPUs (by shahpratham)
- 1094 Fix division precision error in `random` module (by Mystic-Slice)
- 1075 Fixed initialization of DNDarrays communicator in some routines (by AsRaNi1)
- 1066 Verify input object type and layout + Supporting tests (by Mystic-Slice)
- 1037 Distributed weighted `average()` along tuple of axes: shape of `weights` to match shape of input (by Mystic-Slice)

Benchmarking

- 1137 Continous Benchmarking of runtime (by JuanPedroGHM)

Documentation

- 1150 Refactoring for efficiency and readability (by Sai-Suraj-27)
- 1130 Reintroduce Quick Start (by ClaudiaComito)
- 1079 A better README file (by Sai-Suraj-27)


Linear Algebra

- 1126, 1160 [Distributed hierarchical SVD](https://helmholtz-analytics.github.io/heat/2023/06/16/new-feature-hsvd.html) (by mrfh92 ClaudiaComito )

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.