mz-automation / libiec61850

Official repository for libIEC61850, the open-source library for the IEC 61850 protocols
http://libiec61850.com/libiec61850
GNU General Public License v3.0
828 stars 444 forks source link

Draft: Build and release python wheels #476

Open nrontsis opened 9 months ago

nrontsis commented 9 months ago

This PR demonstrates the use of a github action to automatically build and publish binary wheels for libiec61850 and its python bindings.

As a result of this, on any linux distro with x86_64, i686, or aarch64 architecture, it's now possible to do:

> python3 -m pip install pyiec61850==1.5.2a1

and them immediately use libiec61850 via Python, e.g:

> wget https://raw.githubusercontent.com/nrontsis/libiec61850/v1.5/pyiec61850/test_pyiec61850.py
> python test_pyiec61850.py
[0.0, 0]
[10.0, 0]
client ok

The automatic generation and publishing of cross-platform python wheels is achieved via https://github.com/pypa/cibuildwheel.

Obviously this is currently a draft (e.g. it only supports Linux), but at this point, I am interested to hear if there would be appetite for accepting such a PR?

sonarcloud[bot] commented 9 months ago

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information