Hi Brian, thanks for the reply.

I'm definitely excited about Pants. I see there's a pants-users group now, but it's currently empty (as in zero posts - crickets and tumbleweeds :) ). Would that be a good place to ask questions when I get around to playing with Pants?

It also looks like Pants development is very active right now. Would you suggest waiting a while before diving into the docs and code? I don't really need Pants to be super easy to use (your suggested one year period), just to be able to understand it and maybe write a few modules I need. I guess I'm asking if the core is stable enough for semi-serious plugin development.

Cheers!

On 16.04.2014 19:32, Brian Wickman wrote:
Pants can definitely do what you want, but you're probably right in that it requires significant up-front investment. It's not strictly tied to PEX files (it can recursively generate setup.py-based projects from a transitive closure of BUILD dependencies) but the learning curve is non-trivial and most attention is given to the Java/Scala backends. Python support will improve over time but it may be a year or more before this is really easy to adopt.

~brian



On Wed, Apr 16, 2014 at 12:18 PM, Tin Tvrtković <[email protected] <mailto:[email protected]>> wrote:

    Hello packaging community,

    I'm investigating ways of setting up Python projects at my
    workplace. We're predominantly a Java shop, but we might be
    dipping our toes in Python waters (finally!) due to a fortuitous
    project and my multi-year insistence, so I'm contemplating how to
    set up our Python build system to minimize workflow differences
    for other developers (well, and myself).

    I've actually written uš a lengthy description of Maven and why we
    use it but I'll spare you for now. :) To keep the story short, I'm
    interested in options for setting up a multi-module Python
    project. By 'multi-module' I don't mean a single setuptools-based
    project with several .py files inside, but a way of triggering a
    complex build process with a single command that would build all
    sub-modules (essentially sub-projects) and produce a number of end
    artifacts - just like Maven. Imagine a repository containing 30
    separate Django apps, packaged independently, 10 utility
    libraries, 10 Django projects combining those app, and 10 RPM
    building projects for packaging it all up for deployment.

    As far as I know, just using setuptools isn't adequate for a
    workflow like this - setuptools deals with the build process
    (testing, packaging, etc) of a single project only. Solutions that
    come to mind are: a hierarchy of Makefiles, shell scripts, or
    maybe Twitter's Pants, which sort of looks like Maven for Python
    but would probably need contributions to do what we want, and
    looks predisposed to building PEX files which, while very
    interesting, I'm not looking to do right now. None of these
    solutions are really ideal, especially if I want to support
    development on Windows (which I absolutely want).

    I've even thought about actually using Maven, but that's just a
    Pandora's box of problems waiting to happen.

    I'd appreciate insight on this from anyone who's thought about
    (and maybe solved) problems like this. I'm also willing to engage
    and contribute to improving the situation, especially if there's
    low hanging fruit to be picked. How do other companies handle
    large Python repositories with a lot of subcomponents?

    Kind regards,
    Tin
    _______________________________________________
    Distutils-SIG maillist  - [email protected]
    <mailto:[email protected]>
    https://mail.python.org/mailman/listinfo/distutils-sig



_______________________________________________
Distutils-SIG maillist  -  [email protected]
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to