Get CI working after 2 years of dormancy. Part of that journey meant updating almost all dependencies; we're updating the release version to 1.0.0 after the merge. This tag has no functional differences from the previous version, but it signals this library is now stable. Unfortunately, many updates to the tooling mean we need to deprecate a few things.
No support for Python < 3.8
No support for Rust < 2018 edition
No support for pure Javascript (WASM is the dominant variant)
No support for building on Windows (at this time). We may re-add support in the future.
Breaking:
There is a breaking change in the import structure for published python packages in 1.0.0. We simplify the importing logic to remove the complexity between the development environment and the published wheels. See the code for an example. This means if you used the previously published python packages < 1.0.0, you will need to update your import paths.
New improvements:
Bazel 6.0.0
Go 1.17+
Python 3.8+
Rust 2018+
Wasm (emsdk 3.1.28)
Future direction
Supporting a polyglot library introduces risk for users if the versions of the supported languages differ. To mitigate risk, we will begin work to publish packages using CD; however, this is a larger effort and not all languages have corresponding publish logic implemented. Python is the only one that is automated. Others will follow in future iterations.
We publish packages where applicable when a release is triggered and all CI tests pass. Today, we auto-publish packages for:
[x] Python
[ ] Javascript (WASM)
[ ] Rust
Eventually, we will publish arm64 distributions automatically, but today everything is x86_64 mainly because CI environments are not available on arm.
Affected Dependencies
PJC has a new fork to capture upstream changes. The only difference is the dependencies inside that repo have been changed to support this project.
We silence warnings when compiling dependencies because Clang and GCC versions have different flags that are not compatible with each other. Maintaining a set list of mutable warnings for both compilers is difficult and hard to gauge value when we have passing CI tests.
Description
Get CI working after 2 years of dormancy. Part of that journey meant updating almost all dependencies; we're updating the release version to
1.0.0
after the merge. This tag has no functional differences from the previous version, but it signals this library is now stable. Unfortunately, many updates to the tooling mean we need to deprecate a few things.Breaking:
1.0.0
. We simplify the importing logic to remove the complexity between the development environment and the published wheels. See the code for an example. This means if you used the previously published python packages <1.0.0
, you will need to update your import paths.New improvements:
Future direction
Supporting a polyglot library introduces risk for users if the versions of the supported languages differ. To mitigate risk, we will begin work to publish packages using CD; however, this is a larger effort and not all languages have corresponding publish logic implemented. Python is the only one that is automated. Others will follow in future iterations.
We publish packages where applicable when a
release
is triggered and all CI tests pass. Today, we auto-publish packages for:Eventually, we will publish
arm64
distributions automatically, but today everything isx86_64
mainly because CI environments are not available on arm.Affected Dependencies
How has this been tested?
Checklist