Skip to content

Releases: tonybaloney/CSnakes

v1.0.25

14 Jan 05:44
Compare
Choose a tag to compare

What's Changed

  • Use system mutex in RedistributableLocator during installation by @atifaziz in #330
  • reduce package installer noise in logs by @tonybaloney in #335

Full Changelog: v1.0.24...v1.0.25

v1.0.24

13 Jan 05:20
Compare
Choose a tag to compare

What's Changed

CSnakes now has the ability to install packages using uv instead of pip, which is significantly faster and improves app startup times.

Installing dependencies with uv

uv is an alternative to pip that can also install requirements from a file like requirements.txt or pyproject.toml. UV has a major benefit in a 10-100x speedup over pip, so your CSnakes applications will be faster to start.

To use uv to install packages:

...
services
    .WithPython()
    .WithVirtualEnvironment(Path.Join(home, ".venv"))
    .WithUvInstaller("requirements.txt"); // Optional - give the name of the requirements file, or pyproject.toml

Some other important notes about this implementation.

  • Only uses uv to install packages and does not use uv to create projects or virtual environments.
  • Must be used with WithVirtualEnvironment(), as pip requires a virtual environment to install packages into.
  • Will use the UV_CACHE_DIR environment variable to cache the packages in a directory if set.
  • Will disable the cache if the UV_NO_CACHE environment variable is set.

Features

Bug Fixes

  • Fix RedistributableLocator install when special folder is missing by @atifaziz in #329

Other Updates

  • Reduce logging noise and move pip/env output to debug logs by @tonybaloney in #325
  • Reuse computed installation lock file path by @atifaziz in #328

Full Changelog: v1.0.23...v1.0.24

v1.0.23

10 Jan 04:54
Compare
Choose a tag to compare

What's Changed

This release has a new method for making it easier to distribute .NET packages which use a Python component by fetching Python for you, removing the need to install Python (or specify where it is).

You can replace all FromXXX() locators with a single FromRedistributable() and it will download Python 3.12, put it into %APP_DATA%/CSnakes and use that for all of the integration.

https://tonybaloney.github.io/CSnakes/reference/#redistributable-locator

In future, we will allow overriding the major Python version (to say, 3.13)

Major Improvements

  • Add a new Locator that downloads and installs Python for you by @tonybaloney in #323
  • Allow support for Conda environments being a different version of Python than Conda by @tonybaloney in #321
  • Generate doc summaries with references to Python function by @atifaziz in #293

Bug Fixes

  • Improved handling of name generation with single-character segments by @jozefhornik in #320

Other Changes

New Contributors

Full Changelog: v1.0.21...v1.0.22

v1.0.22

10 Jan 04:49
c15577a
Compare
Choose a tag to compare

What's Changed

This release has a new method for making it easier to distribute .NET packages which use a Python component by fetching Python for you, removing the need to install Python (or specify where it is).

You can replace all FromXXX() locators with a single FromRedistributable() and it will download Python 3.12, put it into %APP_DATA%/CSnakes and use that for all of the integration.

https://tonybaloney.github.io/CSnakes/reference/#redistributable-locator

In future, we will allow overriding the major Python version (to say, 3.13)

Major Improvements

  • Add a new Locator that downloads and installs Python for you by @tonybaloney in #323
  • Allow support for Conda environments being a different version of Python than Conda by @tonybaloney in #321
  • Generate doc summaries with references to Python function by @atifaziz in #293

Bug Fixes

  • Improved handling of name generation with single-character segments by @jozefhornik in #320

Other Changes

New Contributors

Full Changelog: v1.0.21...v1.0.22

v1.0.21

15 Oct 09:01
586bb13
Compare
Choose a tag to compare

What's Changed

Major improvements

  • Added support for Hot Reload of Python code whilst debugging

Other changes

  • Consolidate patterns for IPyBuffer by @atifaziz in #266
  • Make type name patterns explicit where typing. qualification is optional by @atifaziz in #267
  • Make generated signature tests stricter by @atifaziz in #268
  • Add reload module functionality and connect generated classes to Hot Reload by @tonybaloney in #259
  • Immortalising -1, 0 and 1 by @aaronpowell in #274

Full Changelog: v1.0.20...v1.0.21

v1.0.20

11 Oct 07:45
efd03f8
Compare
Choose a tag to compare

What's Changed

  • Skip Python traceback if runtime is finalised by @atifaziz in #242

Full Changelog: v1.0.19...v1.0.20

v1.0.19

11 Oct 04:15
0754331
Compare
Choose a tag to compare

What's Changed

Major Changes

Bug fixes and Dev Changes

  • Update README.md by @jamesmontemagno in #229
  • Add github to docs page by @tonybaloney in #222
  • Remove second package from aspire demo and fix warning on insecure ve… by @tonybaloney in #223
    4
  • Use invariant culture when converting float constant to string by @atifaziz in #245
  • Pre-allocate list based on source length by @atifaziz in #206
  • Improve Aspire sample using large data set and Pandas. Use buffer protocol in kmeans demo by @tonybaloney in #230
  • Fix test for NuGetLocator when NUGET_PACKAGES is defined by @atifaziz in #233
  • Refactor PythonConstant types into a true union by @atifaziz in #234
  • Generate fields per function instead of dictionary by @atifaziz in #236
  • Bump System.Text.Json from 8.0.4 to 8.0.5 in /samples/Aspire/CSnakesAspire.AppHost by @dependabot in #246
  • Use 3.13 GA by @tonybaloney in #247
  • Bump versions by @RussKie in #252
  • Fixing how the assemblies are referenced in NuGet by @aaronpowell in #253
  • Have generated module interfaces inherit from IDisposable by @atifaziz in #249
  • Consolidate redundant patterns in MethodReflection.FromMethod by @atifaziz in #248
  • Fix GIL acquisition during Python runtime finalization by @atifaziz in #239

New Contributors

Full Changelog: v1.0.18...v1.0.19

v1.0.18

24 Sep 02:32
9dd9947
Compare
Choose a tag to compare

Main Changes

  • Raised Exceptions support InnerException where the Python exception has a __cause__ property
  • Converged to a single package, CSnakes.Runtime
  • Support .NET 9
  • Support for Buffer protocol

What's Changed

New Contributors

Full Changelog: v1.0.17...v1.0.18

v1.0.17

30 Aug 01:46
a8f35a9
Compare
Choose a tag to compare

What's Changed

Internals

Full Changelog: v1.0.16...v1.0.17

v1.0.16

21 Aug 05:39
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.0.15...v1.0.16