Package lea better (*)

Issue #43 on hold
Jens Finkhaeuser created an issue
  • for a definition thereof.

I don't want to be critical, and am offering help here. But it took me a while to get a project structure going that was doing well under various criteria. So I'm creating this issue to discuss, and I can create a PR to reference this issue later.

The current packaging is a tad awkward for a few reasons:

  • The project can't currently be referenced as a repository requirement, e.g. by specifying -e hg+http://hg.myproject.org/MyProject/#egg=MyProject - the requirement works, but lea can't peer-import then.
  • Project dependencies should be part of setup.py so that pypi tracks them well. This applies as well to 'extra' (optional) dependencies such as sympy, etc.
  • Everything should still work for pip, i.e. requirements.txt, so that tox environments can be configured well.
  • Ideally it should be easy to use setup.py to create a wheel.

I have a bunch of projects set up to work like that, and wouldn't mind creating a PR - but it's enough effort that I'd want to know first if there's interest in that.

Comments (5)

  1. Pierre Denis repo owner

    Hi Jens,

    Well, I must admit that I'm far to be up-to-date on the matter of Python packaging. I've been helped in the past by Paul Moore, who made great contributions on the topics of testing and packaging.

    Your help is most wanted, no doubt! Especially if it can make installation of Lea easier and more standard. The only restraint is that I would like that optional packages (sympy, pandas, matplotlib) remain ... optional! So Lea can keep its "lightweight" nature.

    So, I would be grateful if you can help on that topic. :)

  2. Paul Moore

    I'm happy to help if needed - feel free to ping me if you want me to review something. Although I have to say I'm not entirely sure what needs doing here (beyond distributing a wheel as well as a source distribution, but that's more about project admin than how the setup.py is written).

    I agree with @piedenis that we don't want the default install to pull in optional packages, being able to just do pip install lea and have the basic functionality fast is a big advantage to me.

  3. Jens Finkhaeuser reporter

    Actually, I'm done with this already, and yes those packages will remain extra. I just haven't opened a PR because I based it off the branch of pull request #4, which has me a little stumped and I had no time to dig into it. I think I will have the time today.

  4. Log in to comment