dss-extensions / DSS-Python

Native, "direct" Python bindings (interface) and misc tools for a custom implementation of OpenDSS (EPRI Distribution System Simulator). Based on CFFI, DSS C-API, aiming for full COM API-level compatibility on Windows, Linux and MacOS, while providing various extensions.
https://dss-extensions.org/DSS-Python/
BSD 3-Clause "New" or "Revised" License
58 stars 4 forks source link

Restore Anaconda packages for Windows #26

Closed PMeira closed 3 years ago

PMeira commented 4 years ago

conda-build packages are currently disabled.

Lately, conda-build doesn't like AppVeyor's environment. Python 3.8 support for Anaconda is also lacking at the moment.

Since the number of downloads for the conda packages is very small compared to the PyPI packages, this is a low priority item.

If you need support for conda packages, let your voice be heard here and I'll handle it manually for the time being.

PMeira commented 4 years ago

Conda packages restored on Linux and macOS.

Building conda packages for Windows still has issues on AppVeyor (and some of my local Windows installations). To fix this, it would probably take more time than I'm willing to invest right now.

Note that normal PyPI/pip wheels are working normally if it wasn't clear by the message on the original post.

PMeira commented 3 years ago

It's a good idea to revisit this later, providing a conda-forge recipe. Conda-forge dropped 32-bit packages a while ago, but providing DSS_Python and OpenDSSDirect.py on conda-forge is valuable. The 32-bit packages would still be available on PyPI (they're useful especially for testing).

For me, conda itself has been kind of a letdown the past few years. I imagined the commercial interest doesn't align well with it. The Anaconda.org repositories frequently have issues, reported both for DSS_Python (most people download it from PyPI anyway) and NILMTK (the recommended install method is conda due to the dependencies).

Conda-build, specifically, is really bad on Windows. Even if I can build normal/wheel packages easily on Windows, conda-build craps itself on the minimum unexpected thing that Anaconda didn't expect. There are many unresolved tickets with no useful feedback, some for multiple years.

Some third-party projects like Mamba (replaces the conda installation tool) and Boa (replaces conda-build) might help things.

To alleviate things and save my time, I'll investigate conda-forge tooling and settings since it should reduce the maintenance of conda-packages here. If successful, might be worth to officially submit the packages to the conda-forge repository. Conda-forge also supports ARM64 and (limited) PyPy, which the official conda repos don't.

Docs: https://conda-forge.org/docs/maintainer/adding_pkgs.html

Since we decoupled DSS C-API builds from DSS_Python a while ago, shouldn't be too hard. Before submitting the new packages to conda-forge, it's better to provide some basic tests in DSS_Python too.

About PyPy:

PMeira commented 3 years ago

The main task was done for v0.10.7. Moved the conda-forge part to #33.