Releases: lumicks/embedded_python
Releases · lumicks/embedded_python
v1.9.1
- Fixed an issue where calling CMake with
-DPython_EXECUTABLE=<system_python>
created conflicts with the embedded Python (either a loud version error, or silently passing the wrong library paths). Some IDEs would pass this flag implicitly and it would hijack thefind_package(Python)
call used internally by this recipe. Now, we specifically protect against this since there should be no traces of system Python in a project that wishes to embed it. - Provided an alternative to
embedded_python_tools.symlink_import()
. For dev builds, it's now possible to pointPyConfig::home
to the contents ofbin/.embedded_python(-core).home
to avoid needing to copy the entire Python environment into the build tree every time the project is reconfigured.
v1.9.0
- Added support for Conan v2.
- Added support for Python 3.12.
- Updated default recipe options to
pip
v24.0,setuptools
v69.5.1,wheel
v0.43.0, andpip-licenses
v4.4.0 for compatibility with Python 3.12. - Dropped support for Python versions older than 3.11.5 in order to avoid maintaining both
openssl
v1 and v3. - Removed the obsolete
openssl_variant
option. - Removed redundant
embedded_python:version
option. Useembedded_python-core:version
.
v1.8.2
v1.8.1
- Fixed packaging and runtime errors caused by conflicts with an incompatible system Python installation or
pip
packages installed in the user's home directory. The embedded Python now always runs in isolated mode regardless of command line flags. - Fixed packaging error on Windows when the Conan cache path contains spaces.
- Fixed Python include dirs being added twice (didn't cause any issues, just noise on the command line).
- Fixed
openssl
v3 mistakenly being enabled for Python 3.10. While 3.10 has preliminary support foropenssl
v3, Python 3.11 is the real minimum requirement for full support. - Bumped default
openssl
to 1.1.1w for Python < 3.11 and v3.1.2 for Python >= 3.11.
v1.8.0
- Added support for building with
openssl
v3 for Python 3.10 and newer. openssl
v3.0.8 is now the default for Python >= 3.10 andopenssl
v1.1.1u is the default for Python 3.9.- The
openssl_variant
is now obsolete. The flag is still there for backwards compatibility but it no longer does anything. - The
EmbeddedPython_EXECUTABLE
CMake variable is now defined and points to the executable that's aware of the full embedded Python environment withpip
packages.Python_EXECUTABLE
points to thecore
executable that's only aware of the standard library. This split ensures that we compile and link againstcore
in order to avoid rebuilding the world when only the Python environment packages change but the version/headers/libs stay the same.
v1.7.0
- Recipe build performance and Conan cache usage have been improved further (on top of the improvements in v1.6.0) by optimizing the way licenses are gathered. The recipe now takes advantage of a new feature in
pip-license
v4.2.0 to gather licenses from an external environment. This way, we don't need to re-install packages just to gather licenses, thus cutting both build time and Conan cache usage in half. - Reduced package size for Python >= 3.10 on macOS and Linux by removing the
libpython*.a
static library. This brings these platforms in line with the existing package for Windows. Only shared libraries are included.
v1.6.0
- Added support for Python 3.11 and set minimum supported Python version to 3.9.8.
- Recipe build performance has been improved significantly and Conan cache usage has been reduced:
- In cases where only the
packages
option changes, the recipe no longer requires CPython to be re-compiled (Linux, macOS) or re-downloaded (Windows) every single time. Instead, we take advantage of the Conan cache: the newembedded_python-core
package contains all baseline binaries (without anypip
packages).embedded_python
builds on top of-core
by adding thepip
packages and can reuse any compatible-core
package from the cache. - The Python packages are now installed directly into the
package
folder instead of going via thebuild
folder. This speeds up the packaging and reduces space usage since there's no more file duplication. - With Python >= 3.11, the recipe now makes use of the new
./configure --disable-test-modules
option to avoid building and packaging CPython's internal tests. - On macOS and Linux, the Python standard library is now stored in a
.zip
file to reduce package size (as was already the case on Windows). This is controlled by theembedded_python-core:zip_stdlib
option which can have the values ofno
,stored
, ordelflated
.
- In cases where only the
- Updated default recipe options to
pip
v23.1.2,setuptools
v67.8.0, andwheel
v0.40.0 to improve compatibility with the latest PyPI packages. - Updated default
pip_licenses_version
to v4.3.2 for compatibility with Python 3.11. - Fixed a bug where deleting the recipe
build
folder would make the package unusable because thepackage
folder accidentally contained symlinks to files in thebuild
folder. - Fixed a bug on Windows where
pip install
would fail for packages that needed to build a wheel from source (e.ggit
requirements). - Fixed a bug on Windows where
embedded_python_tools
would fail when the source and destination were on different network drives. It will now fall back tofiles.copy()
in caseCreateJunction()
is not possible.