Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Packaging] Please publish a PyPI-hosted stable release. #23

Closed
leycec opened this issue Oct 26, 2021 · 6 comments
Closed

[Packaging] Please publish a PyPI-hosted stable release. #23

leycec opened this issue Oct 26, 2021 · 6 comments

Comments

@leycec
Copy link

leycec commented Oct 26, 2021

On paper, pyEIT seems stellar. In practice, pyEIT has yet to publish a stable release to either PyPI or conda-forge. That's less stellar, because it means that:

  • Users without low-level CLI Git[Hub] experience cannot install pyEIT. I mean, all of us can, of course – but we're all open-source Pythonistas here. Meanwhile, the main audience is biotech researchers. They typically lack that same UNIX-oriented coder skillset.
  • No other project can depend on pyEIT. This includes projects like:
    • OpenEIT, which (despite being pretty much dead now) could have benefited from just depending on pyEIT for its image reconstruction analysis.
    • py-dbar, Python's first and only D-bar EIT implementation. Did you know py-dbar even existed? I didn't. It looks awesome though, right? py-dbar even references pyEIT in its introduction: "This package implements the Dbar method for Electrical impedance tomography and follows up on the pyEIT presented in https://github.com/liubenyuan/pyEIT." Sadly, py-dbar can't even import pyEIT (e.g., to conform to the same public API), because pyEIT isn't hosted on PyPI and thus can't be referenced from the setup.py or pyproject.toml files of downstream projects that are hosted on PyPI.

Are there any significant roadblocks to publication? There probably are, because it hasn't happened yet. But if there aren't, it'd be really swell if pyEIT 2.0.0 (or whatever the current version is) could be officially released as soon as feasible. We'd all love to begin hacking around with this wonderful thing.

Thanks for all the tireless volunteerism, @liubenyuan, et al. EIT is tough stuff. Let's see if we can change that together. 😄

@liubenyuan
Copy link
Collaborator

Thank you for your support :)

I've been using conda these days and try to publish on conda-forge first, you can help me by commiting some PRs!

pyEIT is a starting code for us EIT users. Currently I do not think it is production ready as a python package (It is yet lacking a clear and clean API interfaces for both EIT algorithm development and EIT application GUIs). I am working on this improvement these days and learned a lot from other fem packages.

@leycec
Copy link
Author

leycec commented Oct 27, 2021

Oh, sure! That's great to hear. EIT is such an exciting scientific endeavour – and pyEIT is at the vanguard of that endeavour in the Python space.

Please do take your time to stabilize a well-designed public API. I'm sure everyone will leap on-board once pyEIT kicks out its first stable release. And thanks again. 😄

@leycec
Copy link
Author

leycec commented Nov 2, 2021

Uh-oh. I've got some good news and I've got bad news, @liubenyuan. The good news is that I'm currently packaging both pyEIT and py-dbar for Gentoo Linux, because both projects are awesome and deserve greater visibility.

The bad news is that py-dbar requires pyEIT as a mandatory runtime dependency. Moreover, I was both astonished and frightened to find that py-dbar actively imports from pyEIT's unstable API for various meshing and FEM-related functionality: e.g.,

# In "py_dbar/sim.py":
import pyeit.mesh as mesh
from pyeit.mesh import quality
from pyeit.eit.utils import eit_scan_lines
from pyeit.eit.fem import Forward

😨 😱

@liubenyuan
Copy link
Collaborator

Sorry for the late delay. I am now manage (actually start to learn how) to publish pyeit on pypi and conda-forge.

@liubenyuan
Copy link
Collaborator

@leycec it can now be installed via

$ pip install pyeit

the conda-forge recipes PR has been submitted too.
conda-forge/staged-recipes#18025

@leycec
Copy link
Author

leycec commented Feb 14, 2022

Big congratulations! Incredibly proud of your hard work, @liubenyuan. Thanks so much for investing into the conda-forge ecosystem, too. This makes pyEIT so much easier to integrate for everyone involved.

We can't wait to see where you take pyEIT next. 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants