Heat

Latest version: v1.4.1

Safety actively analyzes 629959 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.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
Bug fixes
- 1259 Bug-fix for `ht.regression.Lasso()` on GPU (by mrfh92)
- 1201 Fix `ht.diff` for 1-element-axis edge case (by mtar)

Changes

Interoperability

- 1257 Docker release 1.3.x update (by JuanPedroGHM)

Maintenance

- 1274 Update version before release (by ClaudiaComito)
- 1267 Unit tests: Increase tolerance for `ht.allclose` on `ht.inv` operations for all torch versions (by ClaudiaComito)
- 1266 Sync `pre-commit` configuration with `main` branch (by ClaudiaComito)
- 1264 Fix Pytorch release tracking workflows (by mtar)
- 1234 Update sphinx package requirements (by mtar)
- 1187 Create configuration file for Read the Docs (by mtar)

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 )

1.2.2

Not secure
Changes

Communication

- 1058 Fix edge-case contiguity mismatch for Allgatherv (by ClaudiaComito)

Contributors

ClaudiaComito, JuanPedroGHM

1.2.1

Not secure
Changes

- 1048 Support PyTorch 1.13.0 on branch release/1.2.x (by github-actions)

๐Ÿ› Bug Fixes

- 1038 Lanczos decomposition `linalg.solver.lanczos`: Support double precision, complex data types (by ClaudiaComito)
- 1034 `ht.array`, closed loophole allowing `DNDarray` construction with incompatible shapes of local arrays (by Mystic-Slice)

Linear Algebra

- 1038 Lanczos decomposition `linalg.solver.lanczos`: Support double precision, complex data types (by ClaudiaComito)

๐Ÿงช Testing

- 1025 mirror repository on gitlab + ci (by mtar)
- 1014 fix: set cuda rng state on gpu tests for test_random.py (by JuanPedroGHM)

Page 1 of 3

ยฉ 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.