Continuous Deployment Style Build System for Python (Requesting Feedback)
Please take a look and let us know what you think. Please include feedback on any confusion or errors in the docs too, so we can fix them. =========================================== Defend Against Fruit is focused on providing a pragmatic, continuous deployment style build system for Python. Current Python build systems do not properly account for the needs of effective continuous deployment. This package extends the Python tooling to add the missing pieces. With an eye to agile development principles and fast-feedback, we want a build system which satisfies the following goals: * Every SCM change-set committed should result in a potentially shippable release candidate. * When a defect is introduced, we want to immediately detect and isolate the offending SCM change-set. This is true even if the defect was introduced into a library we depend upon. * Library management should be so easy as to never impede code changes, even in multi-component architecture. More details available at: http://teamfruit.github.io/defend_against_fruit/ License: Apache Public License v2 Authors: James Carpenter jcarpenter621 at yahoo.com LinkedIn: http://www.linkedin.com/in/jamescarpenter1 Matthew Tardiff mattrix at gmail.com LinkedIn: http://www.linkedin.com/in/matthewtardiff
Very interesting! The next draft of the metadata 2.0 spec is probably a couple of weeks away from broader public consumption, at which time I'll be interested in hearing whether or not that better meets DAF's needs (especially for transitive dependency tracking). (I haven't been putting the interim PEP 426 updates on python.org as they're currently a somewhat incoherent mixture of the first draft of the new JSON based interchange format and the rationale for the last version that still used the old key:value format) Cheers, Nick.
I haven't read PEP 426, but one of the things I would keep in mind is to
consider moving to or additionally supporting a Maven style repository
layout. It isn't that a Maven layout is necessary better than layout X. It
is just that the Maven artifact repository managers are far more mature
than anything we saw in PyPI land and probably will be for years to come.
https://github.com/teamfruit/defend_against_fruit/wiki/Survey-of-Existing-Py...
This is probably largely orthogonal to how your dependency meta-data is
maintained. The only real constraint would be to ensure the meta-data file
is published alongside the artifact (similar to ivy.xml or pom.xml files).
Otherwise, the only efficient way to navigate the meta-data is to bake the
functionality into the repository and expose a web service. That isn't
necessary wrong in theory, but in practice it would mean you couldn't just
use a mature Maven derived repository manager like Nexus, Artifactory, or
Archiva. In both Maven and Ivy the repository can be rather stupid since
the dependency resolution mechanisms are baked into the build tool instead
of the repository.
On Thu, May 16, 2013 at 4:23 PM, Nick Coghlan
Very interesting!
The next draft of the metadata 2.0 spec is probably a couple of weeks away from broader public consumption, at which time I'll be interested in hearing whether or not that better meets DAF's needs (especially for transitive dependency tracking).
(I haven't been putting the interim PEP 426 updates on python.org as they're currently a somewhat incoherent mixture of the first draft of the new JSON based interchange format and the rationale for the last version that still used the old key:value format)
Cheers, Nick.
You will be astonished to learn exactly how dumb the index is. Most of the
metadata used for package discovery is in the file names. Then whole
packages are downloaded and executed to produce their metadata. Improving
this is a major goal.
On May 16, 2013 7:35 PM, "James Carpenter"
I haven't read PEP 426, but one of the things I would keep in mind is to consider moving to or additionally supporting a Maven style repository layout. It isn't that a Maven layout is necessary better than layout X. It is just that the Maven artifact repository managers are far more mature than anything we saw in PyPI land and probably will be for years to come. https://github.com/teamfruit/defend_against_fruit/wiki/Survey-of-Existing-Py...
This is probably largely orthogonal to how your dependency meta-data is maintained. The only real constraint would be to ensure the meta-data file is published alongside the artifact (similar to ivy.xml or pom.xml files). Otherwise, the only efficient way to navigate the meta-data is to bake the functionality into the repository and expose a web service. That isn't necessary wrong in theory, but in practice it would mean you couldn't just use a mature Maven derived repository manager like Nexus, Artifactory, or Archiva. In both Maven and Ivy the repository can be rather stupid since the dependency resolution mechanisms are baked into the build tool instead of the repository.
On Thu, May 16, 2013 at 4:23 PM, Nick Coghlan
wrote: Very interesting!
The next draft of the metadata 2.0 spec is probably a couple of weeks away from broader public consumption, at which time I'll be interested in hearing whether or not that better meets DAF's needs (especially for transitive dependency tracking).
(I haven't been putting the interim PEP 426 updates on python.org as they're currently a somewhat incoherent mixture of the first draft of the new JSON based interchange format and the rationale for the last version that still used the old key:value format)
Cheers, Nick.
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig
participants (4)
-
Daniel Holth
-
James Carpenter
-
James Carpenter
-
Nick Coghlan