Releases: talmolab/sleap
SLEAP v1.5.1
What's Changed
SLEAP v1.5.1 – Bug fixes & Documentation Improvements
This release focuses on a few bug fixes in the training pipeline, improving installation instructions, and updating documentation for a smoother user experience.
Note: Starting with SLEAP v1.5+, all deep learning functionality is powered by the PyTorch-based
sleap-nn
backend. TensorFlow models (withUNet
backbones) from earlier versions are still supported for inference. Refer Migrating to 1.5+ docs for more details!
How to install?
You can now install SLEAP quickly using uv
Step 1: Install uv
- an ultra-fast Python package manager
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Step 2: Install sleap
# Windows/ Linux (CUDA)
uv tool install "sleap[nn]" --index https://download.pytorch.org/whl/cu128 --index https://pypi.org/simple
# Windows/ Linux (CPU)
uv tool install "sleap[nn]" --index https://download.pytorch.org/whl/cpu --index https://pypi.org/simple
# macOS
uv tool install "sleap[nn]"
Check the full installation guide for platform-specific instructions and advanced options.
Once you've installed SLEAP, run the below command from anywhere in your terminal
sleap-label
The GUI should open up!
Highlights
- Improved installation:
- Platform-specific dependency groups for sleap installation with CUDA support.
- Fixed CUDA installation issues on Windows.
- Updated installation instructions and options for clarity.
- Documentation updates:
- Fixed typos and broken links.
- Improved CLI docs with new options and guidance on legacy CLIs.
- Fixed MkDocs versioning and improved doc site structure.
- Error handling: sleap-nn import errors are now handled gracefully with clear user guidance.
- Bug fixes: Minor fixes across CLI and docs to improve stability.
Full Changelog: v1.5.0...v1.5.1
SLEAP v1.5.0
What's New in SLEAP 1.5
SLEAP 1.5 represents a major milestone with significant architectural improvements, performance enhancements, and new installation methods. Here are the key changes:
Major Changes
Updated dependencies
We have now updated to support Python 3.12+ and support many new versions of the many libraries that SLEAP uses. This should make it much easier to install on modern platforms, support new architectures, and make development much easier.
UV-Based Installation
SLEAP 1.5+ now uses uv for installation, making it much faster than previous methods. Get up and running in seconds with our streamlined installation process.
PyTorch Backend
Neural network backend switched from TensorFlow to PyTorch via sleap-nn
, providing:
- Much faster training and inference speeds: Up to 2.5x faster training and inference times.
- Modern deep learning capabilities: PyTorch with upcoming integrations with a whole slew of modern deep learning models and packages.
- Improved developer experience: Check out the dedicated backend repo at https://github.com/talmolab/sleap-nn
- Multi-GPU training: Full support for using multiple GPUs for accelerated and larger scale training.
- Backwards compatibility: You are able to use your existing trained SLEAP models from v1.4.1 for the UNet backend with no changes (see notes below).
Refreshed Documentation Websites
- The new landing page is now live at: https://sleap.ai
- The new documentation is now live at: https://docs.sleap.ai
- The old docs (v1.4.1) are will remain available at: https://legacy.sleap.ai
Standalone Libraries
SLEAP GUI is now supported by two new packages for modular workflows:
SLEAP-IO
I/O backend for handling labels, processing .slp
files, and data manipulation. Essential for any SLEAP workflow and can be used independently for data processing tasks.
SLEAP-NN
PyTorch-based neural network backend for training and inference. Perfect for custom training pipelines, remote processing, and headless server deployments.
Torch Backend Changes
New Backbones
SLEAP 1.5 introduces three powerful new backbone architectures (check here for more details):
- UNet - Classic encoder-decoder architecture for precise pose estimation
- SwinT - Swin Transformer for state-of-the-art performance
- ConvNeXt - Modern convolutional architecture with improved efficiency
Legacy Support
We've maintained full backward compatibility:
- GUI Support: SLEAP now uses a new YAML-based config file structure, but you can still upload and work with old SLEAP JSON files in the GUI. For details on converting legacy SLEAP 1.4 config/JSON files to the new YAML format, see our conversion guide.
- TensorFlow Model Inference: Continue to support running inference on old TensorFlow models (UNet backbone only). Check using legacy models for more details.
SLEAP v1.4.1
SLEAP 1.4.1 releases many new changes since the last big release 1.3.3. We hope users enjoy these long awaited new features and fixes!
From 1.3.2+, to install SLEAP through pip use pip install sleap[pypi]
to ensure all dependencies are gathered.
As a reminder:
The 1.3.1 dependency update requires Mamba for faster dependency resolution. If you already have anaconda installed, then you can set the solver to libmamba in the base environment:
conda update -n base conda conda install -n base conda-libmamba-solver conda config --set solver libmamba
Any subsequent
mamba
commands in the docs will need to be replaced withconda
if you choose to use your existing Anaconda installation.Otherwise, follow the recommended installation instruction for Mamba.
Quick install
mamba
(Windows/Linux/GPU):
mamba create -y -n sleap -c conda-forge -c nvidia -c sleap/label/dev -c sleap -c anaconda sleap=1.4.1
mamba
(Mac):
mamba create -y -n sleap -c conda-forge -c anaconda -c sleap sleap=1.4.1
pip
(any OS except Apple Silicon):
pip install sleap[pypi]==1.4.1
Highlights
- Add options to set background color when exporting video by @scott-yj-yang in #1328
- Add resize/scroll to training GUI by @KevinZ0217 in #1565
- Highlight instance box on hover by @talmo in #2055
- Enable touchpad pinch to zoom by @talmo in #2058
- Do not always color skeletons table black by @roomrys in #1952
- Make status bar dependent on UI mode by @7174Andy in #2063
- Graceful failing with seeking errors by @talmo in #1712
- Import DLC with uniquebodyparts, add Tracks by @getzze in #1562
- Fix GUI crash on scroll by @roomrys in #1883
Full Changelog
Enhancements
- Add options to set background color when exporting video by @scott-yj-yang in #1328
- Increase range on batch size by @roomrys in #1513
- Add resize/scroll to training GUI by @KevinZ0217 in #1565
- support loading slp files with non-compound types and str in metadata by @lambdaloop in #1566
- change inference pipeline option to tracking-only by @shrivaths16 in #1666
- Only propagate Transpose Tracks when propagate is checked by @vaibhavtrip29 in #1748
- Add batch size to GUI for inference by @shrivaths16 in #1771
- Add ZMQ support via GUI and CLI by @shrivaths16 in #1780
- Change menu name to match deleting predictions beyond max instance by @shrivaths16 in #1790
- Adding ragged metadata to
info.json
by @shrivaths16 in #1765 - Add option to export to CSV via sleap-convert and API by @eberrigan in #1730
- Add
normalized_instance_similarity
method by @gitttt-1234 in #1939 - Update installation docs 1.4.1 by @roomrys in #1810
- Option for Max Stride to be 128 by @MweinbergUmass in #1941
- Allow csv and text file support on sleap track by @emdavis02 in #1875
- Added Three Different Cases for Adding a New Instance by @7174Andy in #1859
- Generate suggestions using max point displacement threshold by @gqcpm in #1862
- Add object keypoint similarity method by @getzze in #1003
- Allowing inference on multiple videos via
sleap-track
by @emdavis02 in #1784 - Add
Keep visualizations
checkbox to training GUI by @hajin-park in #1824 - Menu option to open preferences directory and update to util functions to pathlib by @shrivaths16 in #1843
- Add tracking score as seekbar header options by @talmo in #2047
- Don't mark complete on instance scaling by @talmo in #2049
- Add check for instances with track assigned before training ID models by @talmo in #2053
- Add menu item for deleting instances beyond frame limit by @shrivaths16 in #1797
- Highlight instance box on hover by @talmo in #2055
- Make node marker and label sizes configurable via preferences by @talmo in #2057
- Enable touchpad pinch to zoom by @talmo in #2058
- Separate the video name and its filepath columns in
VideoTablesModel
by @7174Andy in #2052 - Make status bar dependent on UI mode by @7174Andy in #2063
Fixes
- Graceful failing with seeking errors by @talmo in #1712
- Fix IndexError for hdf5 file import for single instance analysis files by @shrivaths16 in #1695
- Import DLC with uniquebodyparts, add Tracks by @getzze in #1562
- Make the hdf5 videos store as int8 format by @lambdaloop in #1559
- Scale new instances to new frame size by @ssrinath22 in #1568
- Fix package export by @talmo in #1619
- View Hyperparameter nonetype fix by @shrivaths16 in #1766
- Set selected instance to None after removal by @roomrys in #1808
- Fix zmq inference by @roomrys in #1800
- Remove no module named work error by @roomrys in #1956
- Use
tf.math.mod
instead of%
by @roomrys in #1931 - Do not always color skeletons table black by @roomrys in #1952
- Do not apply offset when double clicking a
PredictedInstance
by @roomrys in #1888 - Fix typo to allow rendering videos with mp4 (Mac) by @roomrys in #1892
- Fix GUI crash on scroll by @roomrys in #1883
- Handle case when no frame selection for trail overlay by @roomrys in #1832
- Fix COCO Dataset Loading for Invisible Keypoints by @felipe-parodi in #2035
- Fix import PySide2 -> qtpy by @talmo in #2065
Dependencies
- Replace imgaug with albumentations by @talmo in #1623
- Fix out of bounds albumentations issues and update dependencies by @eberrigan in #1724
- Update to new TensorFlow conda package by @eberrigan in #1726
- Fix conda builds by @eberrigan in #1776
- Handle skeleton encoding internally by @eberrigan in #1970
- Handle skeleton decoding internally by @roomrys in #1961
- Add imageio dependencies for pypi wheel by @roomrys in #1950
- Add missing imageio-ffmpeg to meta.ymls by @roomrys in #1943
- Manually handle
Instance.from_predicted
structuring when notNone
by @roomrys in #1930 - Refactor
LossViewer
to use matplotlib by @eberrigan in #1899 - Replace all Video structuring with Video.cattr() by @roomrys in #1911
- Use positional argument for exception type by @roomrys in #1912
- Remove unsupported |= operand to prepare for PySide6 by @roomrys in #1910
- Replace QtDesktop widget in preparation for PySide6 by @roomrys in #1908
- Use | instead of + in key commands by @roomrys in #1907
- Use
Video.from_filename
when structuring videos by @roomrys in #1905 - Refactor video writer to use imageio instead of skvideo by @eberrigan in #1900
- Pin ndx-pose<0.2.0 by @talmo in #1978
Documentation
- Add bonsai guide for sleap docs by @croblesMed in #2050
- Add channels for pip conda env by @roomrys in #2067
Refactors
SLEAP v1.3.4
SLEAP 1.3.4 has no changes to the SLEAP source code, but adds constraints to the attrs
and opencv
versions being pulled in.
From 1.3.2+, to install SLEAP through pip use pip install sleap[pypi]
to ensure all dependencies are gathered.
As a reminder:
The 1.3.1 dependency update requires Mamba for faster dependency resolution. If you already have anaconda installed, then you can set the solver to libmamba in the base environment:
conda update -n base conda conda install -n base conda-libmamba-solver conda config --set solver libmamba
Any subsequent
mamba
commands in the docs will need to be replaced withconda
if you choose to use your existing Anaconda installation.Otherwise, follow the recommended installation instruction for Mamba.
Quick install
mamba
(Windows/Linux/GPU):
mamba create -y -n sleap -c conda-forge -c nvidia -c sleap -c anaconda sleap=1.3.4
mamba
(Mac):
mamba create -y -n sleap -c conda-forge -c anaconda -c sleap sleap=1.3.4
pip
(any OS except Apple Silicon):
pip install sleap[pypi]==1.3.4
Full Changelog
- Constrain attrs (mac) and opencv (linux) in 1.3.4 #1927
SLEAP v1.4.1a2
SLEAP v1.4.1a2 is a pre-release. See 1.3.3 for the latest stable release. The crucial change here is Fix zmq inference by @roomrys in #1800 since inference was not working in the pre-release v1.4.1a1 due to the addition of zmq port options for training in #1780 that were not being used for inference.
Quick install
mamba
(Windows/Linux/GPU):
mamba create -y -n sleap_v1.4.1a2 -c conda-forge -c nvidia -c sleap/label/dev -c anaconda sleap=1.4.1a2
mamba
(Mac):
mamba create -y -n sleap_v1.4.1a2 -c conda-forge -c anaconda -c sleap/label/dev sleap=1.4.1a2
pip
(any OS except Apple Silicon):
pip install sleap[pypi]==1.4.1a2
What's Changed
Fixes
Workflow Changes
- Fix windows conda package upload and build ci by @eberrigan in #1792
- Bump to v1.4.1a2 by @eberrigan in #1835
Enhancements and Refactors
- Set selected instance to None after removal by @roomrys in #1808
- Add
InstancesList
class to handle backref toLabeledFrame
by @roomrys in #1807
Full Changelog: v1.4.1a1...v1.4.1a2
SLEAP v1.4.1a1
SLEAP v1.4.1a1 is a pre-release. See 1.3.3 for the latest stable release. There are many changes to dependencies in this pre-release: if you are having installation issues with v1.3.3, you should try this version instead.
Quick install
mamba
(Windows/Linux/GPU):
mamba create -y -n sleap_v1.4.1a1 -c conda-forge -c nvidia -c sleap/label/dev -c anaconda sleap=1.4.1a1
mamba
(Mac):
mamba create -y -n sleap_v1.4.1a1 -c conda-forge -c anaconda -c sleap/label/dev sleap=1.4.1a1
pip
(any OS except Apple Silicon):
pip install sleap[pypi]==1.4.1a1
What's Changed
Enhancements
- Add options to set background color when exporting video by @scott-yj-yang in #1328
- Increase range on batch size by @roomrys in #1513
- Add resize/scroll to training GUI by @KevinZ0217 in #1565
- support loading slp files with non-compound types and str in metadata by @lambdaloop in #1566
- change inference pipeline option to tracking-only by @shrivaths16 in #1666
- Only propagate Transpose Tracks when propagate is checked by @vaibhavtrip29 in #1748
- Add batch size to GUI for inference by @shrivaths16 in #1771
- Add ZMQ support via GUI and CLI by @shrivaths16 in #1780
- Change menu name to match deleting predictions beyond max instance by @shrivaths16 in #1790
- Adding ragged metadata to
info.json
by @shrivaths16 in #1765 - Add option to export to CSV via sleap-convert and API by @eberrigan in #1730
Refactors
- Set default callable for
match_lists_function
by @roomrys in #1520 - Allow passing in
Labels
toapp.main
by @roomrys in #1524 - Replace (broken)
--unrag
with--ragged
by @roomrys in #1539 - Add function to create app by @roomrys in #1546
- Refactor
AddInstance
command by @roomrys in #1561
Fixes
- Graceful failing with seeking errors by @talmo in #1712
- Fix IndexError for hdf5 file import for single instance analysis files by @shrivaths16 in #1695
- Import DLC with uniquebodyparts, add Tracks by @getzze in #1562
- Make the hdf5 videos store as int8 format by @lambdaloop in #1559
- Scale new instances to new frame size by @ssrinath22 in #1568
- Fix package export by @talmo in #1619
- View Hyperparameter nonetype fix by @shrivaths16 in #1766
Dependency Changes
- Replace imgaug with albumentations by @talmo in #1623
- Fix out of bounds albumentations issues and update dependencies by @eberrigan in #1724
- Update to new TensorFlow conda package by @eberrigan in #1726
- Fix conda builds by @eberrigan in #1776
Workflow Changes
- Fix CI on macosx-arm64 by @talmo in #1734
- Upgrade build actions for release by @eberrigan in #1779
- Fix website build and remove build cache across workflows by @eberrigan in #1786
- Bump to 1.4.1a1 by @eberrigan in #1791
Website Changes
New Contributors
- @scott-yj-yang made their first contribution in #1328
- @lambdaloop made their first contribution in #1559
- @ssrinath22 made their first contribution in #1568
Full Changelog: v1.3.3...v1.4.1a1
SLEAP v1.4.1a0
What's Changed
- Add options to set background color when exporting video by @scott-yj-yang in #1328
- Increase range on batch size by @roomrys in #1513
- Set default callable for
match_lists_function
by @roomrys in #1520 - Allow passing in
Labels
toapp.main
by @roomrys in #1524 - Replace (broken)
--unrag
with--ragged
by @roomrys in #1539 - Add function to create app by @roomrys in #1546
- Refactor
AddInstance
command by @roomrys in #1561 - Import DLC with uniquebodyparts, add Tracks by @getzze in #1562
- Make the hdf5 videos store as int8 format by @lambdaloop in #1559
- Scale new instances to new frame size by @ssrinath22 in #1568
- Fix package export by @talmo in #1619
- Add resize/scroll to training GUI by @KevinZ0217 in #1565
- support loading slp files with non-compound types and str in metadata by @lambdaloop in #1566
- change inference pipeline option to tracking-only by @shrivaths16 in #1666
- Add ABL:AOC 2023 Workshop link by @roomrys in #1673
- Graceful failing with seeking errors by @talmo in #1712
- Fix IndexError for hdf5 file import for single instance analysis files by @shrivaths16 in #1695
- Replace imgaug with albumentations by @talmo in #1623
- Fix out of bounds albumentations issues and update dependencies by @eberrigan in #1724
- Update to new TensorFlow conda package by @eberrigan in #1726
- Fix CI on macosx-arm64 by @talmo in #1734
- Add option to export to CSV via sleap-convert and API by @eberrigan in #1730
- Only propagate Transpose Tracks when propagate is checked by @vaibhavtrip29 in #1748
- View Hyperparameter nonetype fix by @shrivaths16 in #1766
- Adding ragged metadata to
info.json
by @shrivaths16 in #1765 - Add batch size to GUI for inference by @shrivaths16 in #1771
- Fix conda builds by @eberrigan in #1776
- Upgrade build actions for release by @eberrigan in #1779
New Contributors
- @scott-yj-yang made their first contribution in #1328
- @lambdaloop made their first contribution in #1559
- @ssrinath22 made their first contribution in #1568
Full Changelog: v1.3.3...v1.4.1a0
SLEAP v1.4.0a0
What's Changed
- Add options to set background color when exporting video by @scott-yj-yang in #1328
- Increase range on batch size by @roomrys in #1513
- Set default callable for
match_lists_function
by @roomrys in #1520 - Allow passing in
Labels
toapp.main
by @roomrys in #1524 - Replace (broken)
--unrag
with--ragged
by @roomrys in #1539 - Add function to create app by @roomrys in #1546
- Refactor
AddInstance
command by @roomrys in #1561 - Import DLC with uniquebodyparts, add Tracks by @getzze in #1562
- Make the hdf5 videos store as int8 format by @lambdaloop in #1559
- Scale new instances to new frame size by @ssrinath22 in #1568
- Fix package export by @talmo in #1619
- Add resize/scroll to training GUI by @KevinZ0217 in #1565
- support loading slp files with non-compound types and str in metadata by @lambdaloop in #1566
- change inference pipeline option to tracking-only by @shrivaths16 in #1666
- Add ABL:AOC 2023 Workshop link by @roomrys in #1673
- Graceful failing with seeking errors by @talmo in #1712
- Fix IndexError for hdf5 file import for single instance analysis files by @shrivaths16 in #1695
- Replace imgaug with albumentations by @talmo in #1623
- Fix out of bounds albumentations issues and update dependencies by @eberrigan in #1724
- Update to new TensorFlow conda package by @eberrigan in #1726
- Fix CI on macosx-arm64 by @talmo in #1734
- Add option to export to CSV via sleap-convert and API by @eberrigan in #1730
- Only propagate Transpose Tracks when propagate is checked by @vaibhavtrip29 in #1748
- View Hyperparameter nonetype fix by @shrivaths16 in #1766
- Adding ragged metadata to
info.json
by @shrivaths16 in #1765 - Add batch size to GUI for inference by @shrivaths16 in #1771
- Fix conda builds by @eberrigan in #1776
New Contributors
- @scott-yj-yang made their first contribution in #1328
- @lambdaloop made their first contribution in #1559
- @ssrinath22 made their first contribution in #1568
Full Changelog: v1.3.3...v1.4.0a0
SLEAP v1.3.3
This is a brown-bag release following insufficient restrictions on allowable tensorflow
versions for the "pypi" extra sleap[pypi]
in 1.3.2. While the conda packages for 1.3.2 were not affected (since tensorflow
is pulled in from anaconda), the PyPI only package installed via pip install sleap[pypi]
had conflicts between the version of tensorflow
and the version of keras
. See 1.3.0, 1.3.1, and 1.3.2 for previous notable changes.
From 1.3.2+, to install SLEAP through pip use pip install sleap[pypi]
to ensure all dependencies are gathered.
As a reminder:
The 1.3.1 dependency update requires Mamba for faster dependency resolution. If you already have anaconda installed, then you can set the solver to libmamba in the base environment:
conda update -n base conda conda install -n base conda-libmamba-solver conda config --set solver libmamba
Any subsequent
mamba
commands in the docs will need to be replaced withconda
if you choose to use your existing Anaconda installation.Otherwise, follow the recommended installation instruction for Mamba.
Quick install
mamba
(Windows/Linux/GPU):
mamba create -y -n sleap -c conda-forge -c nvidia -c sleap -c anaconda sleap=1.3.3
mamba
(Mac):
mamba create -y -n sleap -c conda-forge -c anaconda -c sleap sleap=1.3.3
pip
(any OS except Apple Silicon):
pip install sleap[pypi]==1.3.3
Full Changelog
Fixes
- Do not try to remove item if already deleted by @roomrys in #1498
- Set
LD_LIBRARY_PATH
on mamba activate by @roomrys in #1496 - Reset
LD_LIBRARY_PATH
on deactivate by @roomrys in #1502
Dependencies
- Add version restirctions to tensorflow for pypi by @roomrys in #1485
- Remove
imageio
pin by @roomrys in #1501
Full Changelog: v1.3.2...v1.3.3
SLEAP v1.3.2
SLEAP 1.3.2 adds some nice usability features thanks to both the community ideas and new contributors! See 1.3.0 and 1.3.1 for previous notable changes.
From 1.3.2+, to install SLEAP through PyPI use pip install sleap[pypi]
to ensure all dependencies are gathered.
As a reminder:
The 1.3.1 dependency update requires Mamba for faster dependency resolution. If you already have anaconda installed, then you can set the solver to libmamba in the base environment:
conda update -n base conda conda install -n base conda-libmamba-solver conda config --set solver libmamba
Any subsequent
mamba
commands in the docs will need to be replaced withconda
if you choose to use your existing Anaconda installation.Otherwise, follow the recommended installation instruction for Mamba.
Quick install
mamba
(Windows/Linux/GPU):
mamba create -y -n sleap -c conda-forge -c nvidia -c sleap -c anaconda sleap=1.3.2
mamba
(Mac):
mamba create -y -n sleap -c conda-forge -c anaconda -c sleap sleap=1.3.2
pip
(any OS except Apple Silicon):
pip install sleap[pypi]==1.3.2
Highlights
- Limit max tracks via track-local queues by @shrivaths16 and @talmo in #1447
- Add option to remove videos in batch by @gitttt-1234 in #1382 and #1406
- Add shortcut to export analysis for current video by @KevinZ0217 in #1414 and #1444
- Add video path and frame indices to metrics by @roomrys in #1396
- Add a button for copying model config to clipboard by @KevinZ0217 in #1433
- Add Option to Export CSV by @gitttt-1234 in #1438
Full Changelog
Enhancements
- Add option to remove videos in batch by @gitttt-1234 in #1382 and #1406
- Add
Track
when addInstance
by @roomrys in #1408 - Add
Video
to cache when addingTrack
by @roomrys in #1407 - Add shortcut to export analysis for current video by @KevinZ0217 in #1414 and #1444
- Add video path and frame indices to metrics by @roomrys in #1396
- Improve error message for detecting video backend by @roomrys in #1441
- Add a button for copying model config to clipboard by @KevinZ0217 in #1433
- Add Option to Export CSV by @gitttt-1234 in #1438
- Limit max tracks via track-local queues by @shrivaths16 and @talmo in #1447
Fixes
- Minor fix in computation of OKS by @shrivaths16 in #1383 and #1399
- Fix
Filedialog
to work across (mac)OS by @roomrys in #1393 - Fix panning bounding box by @gitttt-1234 in #1398
- Fix skeleton templates by @roomrys in #1404
- Fix labels export for json by @roomrys in #1410
- Correct GUI state emulation by @roomrys in #1422
- Update status message on status bar by @shrivaths16 in #1411
- Fix error thrown when last video is deleted by @shrivaths16 in #1421
- Add model folder to the unzip path by @roomrys in #1445
- Fix drag and drop by @talmo in #1449
Dependencies
New Contributors
- @shrivaths16 made their first contribution in #1383
- @gitttt-1234 made their first contribution in #1382
- @KevinZ0217 made their first contribution in #1414
Full Changelog: v1.3.1...v1.3.2