Upgraded the limedriver subproject to the newest commit hash for
enhanced stability and performance improvements. This update ensures
compatibility with the latest hardware revisions and resolves known
issues identified in the previous version.
process
Reflecting a shift toward dynamic library usage, the build system has
been updated to omit hard-coded links to the HDF5 libraries. This change
simplifies dependency management and increases flexibility in various
build environments. It's important to ensure dependent projects are
aware of this change, as they might need to explicitly link HDF5 if they
don't dynamically load it.
Commented out the hardcoded compiler environment setting in the setup
script to allow for greater flexibility in users' build environments.
Letting the user or the system decide the appropriate C++ compiler
prevents potential conflicts with predefined environment configurations.
Updated the `BuildExtCommand` class in `setup.py` to append `rpath`
flags and link against `hdf5` libraries when building extensions. This
ensures that the shared libraries are correctly located at runtime and
resolves potential linkage issues with HDF5-related extensions for a
smoother installation and deployment process.
Enhanced the build process by specifying the library directories in
setup.py. This ensures the linker can locate all relevant libraries for
the 'limedriver.binding' extension, preventing potential build issues on
systems where libraries are not in the default search path.
Optimized the build process by removing the unnecessary 'hdf5_cpp'
library from the extension module configuration. This change simplifies
linkage and can potentially reduce compile-time and binary size.
Ensured that liblimesuite-dev package is installed as part of the
dependencies for our GitHub Actions workflow. This is to address missing
development headers required for interfacing with LimeSuite in our
Python package build process.
Extended the include directories for the limedriver binding in setup.py
to address linking issues with HDF5 serialization. This is a temporary
workaround to ensure compatibility and successful building of the
extension, as indicated by the 'TODO' comment highlighting the need for
a cleaner solution. Further refinement is required to integrate HDF5 in
a more elegant manner.
hdf5_cpp library
Enabled the use of shell in 'git submodule' commands to ensure
cross-platform compatibility in the setup process. Also revised the
linked libraries for the 'limedriver.binding' extension, replacing
'hdf5' with 'hdf5_cpp' to properly utilize the C++ HDF5 library
interface. This change is expected to enhance compatibility and
performance when interacting with HDF5 files.
binding
Extended the library dependencies for the limedriver binding in setup.py
to include the hdf5 library, ensuring compatibility with data handling
features that require HDF5 support. This change addresses the need for
advanced data storage and management capabilities within the limedriver
interface.
Ensure the Python version is specified as a string in the Ubuntu
workflow configuration to prevent potential parsing issues by the
setup-python GitHub Action. This update aligns with the recommended
practices for YAML file consistency and compatibility.
Upgraded the GitHub Actions workflow to explicitly set up Python 3.10.
Simplified the installation process by using pip to upgrade and install
necessary Python packages such as h5py, setuptools, wheel, and build,
rather than installing individual Python and pip packages via apt-get.
This ensures a more standardized and up-to-date environment for CI
processes. Removed explicit python3 references in favor of the
actions/setup-python environment, aligning with the GitHub Actions best
practices.
build step
Modified the build command in the CI workflow to explicitly call Python
3 to ensure compatibility and avoid potential conflicts with systems
where Python 2 is the default. This change aligns the build process with
modern Python practices and reduces ambiguity in environments where
multiple Python versions are available.
alias
Enhanced the GitHub Actions workflow for the Ubuntu environment by
including python3-venv to facilitate virtual environment management.
Additionally, established python-is-python3 to standardize the Python
command, ensuring consistency and avoiding potential versioning issues
across different setups.
Upgraded our GitHub Actions CI Python package workflow for Ubuntu by
including the `python3-build` package during the dependency installation
phase. This addition ensures compatibility with projects that require
this specific package for building Python applications.
token, update submodule
Introduced a new GitHub Actions workflow to automate Python package
builds on Ubuntu environments upon push or pull request events. This
addition ensures the compatibility of the package on the Ubuntu platform
and streamlines the continuous integration process.
Updated the limedriver submodule to the latest commit, keeping the
project in sync with recent upstream changes and maintaining the
integrity of external dependencies.
dependencies
Upgraded the limedriver subproject to bring in latest enhancements and
fixes. Added 'h5py' and 'matplotlib' to the list of Python project
dependencies, ensuring the availability of necessary libraries for data
handling and plotting functionalities within our project.
Updated .gitignore to exclude distribution directories, preventing accidental inclusion in the repository. Added MANIFEST.in to specify additional files for source distribution, ensuring that necessary Cython and C source files are packaged correctly.
- Standardized the C++ compiler across build environments by setting it in `setup.py`, ensuring consistent compilation of Cython extensions.
- Transitioned to using `setuptools.build_meta` as the build backend in `pyproject.toml` for enhanced package build processes.
- Modified the extension module path in `setup.py` to align with the new Python binding structure.
- Introduced Python property decorators to `PyLimeConfig` class in `limedriver.pyx` for getter methods, enhancing the Pythonic interface of the Cython module.
- Facilitated direct import of the binding in `__init__.py`, streamlining the usage of the `limedriver` package.
The .gitignore file now ignores C++ build artifacts alongside existing ones. In setup.py, the build configuration for 'limedriver' was modified to include a new C++ source file, indicating a shift to or expansion of C++ code usage within the project. This change prepares the build process to handle and compile C++ code, potentially for performance improvements or new functionality that leverages C++ capabilities.
The limedriver submodule has been updated to incorporate the latest enhancements and bug fixes, ensuring improved stability and performance for the dependent projects. This change aligns with ongoing efforts to maintain up-to-date dependencies and leverage recent improvements in external libraries.