Skip to content

cyfaust 0.0.4 release

Latest
Compare
Choose a tag to compare
@shakfu shakfu released this 31 Jan 19:18
· 29 commits to main since this release

The fourth release of cyfaust, a cython wrapper of the faust interpreter with rtaudio, now adds Windows to its list of supported platforms (OSX, Linux).

Key Changes

  • Added Windows support (MSVC): both dynamic and static variants can now be built on Windows with 100% tests passing (only WASAPI audio has been tested so far).

  • Added manage.py, a cross-platform python build management script for cyfaust, which consolidates and replaces all prior build-related scripts. It is used by the Makefile frontend and can also be used on its own to facilitate cross-platform build operations.

  • Added enhancements to gen_htmldoc.py python script and makefile target, make docs, to generate api docs in html for both build variants.

  • Added thirdparty licenses to docs/licenses

  • Added infrastructure for additional rtaudio audio driver support

  • Added cyfaust github workflows:

    • Added several working github workflows:

      • cyfaust-test: to test individual build case,

      • cyfaust-test-all: to test all builds,

      • cyfaust-wheel: to test and produce a wheel release,

      • cyfaust-wheel-all: to test and produce wheels across supported platforms.

    • Fixed github action wheel building issue (thanks to @henryiii for the solution. This means that cyfaust workflows are now working as expected.

    • Added caching to github workflows using actions/cache@v4: this means that libfaust dynamic/static libs keyed by runner-os are now cached (across all workflows) between runs which greatly reduces workflow run times. As a case in point,cyfaust-test which previously ran for 32 mins now runs in 5.2 mins if a cached lib is available.

    • Changed workflow actions, as nodejs 16 actions are deprecated, to latest versions: actions/checkout@v4, actions/setup-python@v5, and actions/upload-artifact@v4

    • Fixed issue with upload artifact which caused an error in wheel building. Now artifact names are properly differentiated as per the new actions/upload-artifact@v4 requirements.

Wheels

The default wheel packages the cyfaust compiled wrapper modules, libfaust.dylib, libfaust.so or faust.dll, and the faust standard libraries and architectures, whereas the static variant (with the '-static' suffix) packages a single compiled wrapper module which has been statically linked against libfaust.a or libfaust.lib as well the faust standard libraries and architectures.

There are many more wheels and wheel variations in this release than in the prior one, as the release effort benefited from the new github workflow capabilities highlighted above and also the introducion of Windows support.

Compared to the prior release, the supported platform architectures are amd64/x86_54 for Windows, x86_64 and arm64 for macOS, and x86_64 and aarch64 for Linux and python versions 3.9 to 3.12

If you have any issues with this release please report the problem in the project's issue tracker.