Eggs are important to Python and will become more so over the next few years, if understood and embraced by the community. They are a key competitive feature - I've been asked so many times what is the Python equivalent to CPAN and finally we're developing an answer.
At PyCon 2007 we need a solid set of talks about eggs, broken down into just using them, how to build and distribute them, and then an advanced talk on some of the more exotic aspects of eggs. At PyCon 2006, essentially the 3rd talk I mention above was given to a standing-room-only audience, and then repeated against an hour later as people in the hall could not get in. But missing were the first two talks - many people were not ready for advanced material but sought an introduction.
Who in our community is building eggs on a frequent basis, and is good at explaining how they work?
Below are three talk outlines I've sketched out, along with the slides from a talk I tossed together for the Dallas Pythoneers group. They need polish and I'm donating them to the cause.
Will someone please step forward and address this critical need?
For revision, links to the three wiki outline pages appear on: http://us.pycon.org/TX2007/TalkIdeas
--- Python Eggs - Using and Installing Them
* What is so cool about eggs? Wow me. * What problem were they intended to solve? * What is their relation to distutils? * So how does distutils work then? * How do they compare to CPAN and RPM approaches? * Sound good, how do I enable eggs on my system? * How do I accomplish common operations? o install an egg o test install an egg, to see if it would work o uninstall an egg o list what eggs are installed at the moment o switch between the versions of an egg * I don't trust eggs - how can I partially install one, examine it and then finish the installation? * How do I find out what eggs exist, and their names? * What about py2exe and droplets? Competing approaches? * Show me a walkthru of the cheeseshop - how to find a package. * How do I figure out the author of an egg I'm having trouble with?
--- Python Eggs - Creating and Distributing Them
* Where does distutils fit in? * What do I need to add to setup.py to package my software as an egg? * How does it work re path configuration files? * What are the issues with zipped eggs; how can my code access my data? * How do I produce cross-platform eggs? * How do I produce platform-specific eggs? * How do I get my eggs registered on the cheeseshop? * How do I upload my eggs, source and binaries? * How can I volunteer as a packager for non-egg authors? * Some eggs are broken in the cheeseshop - how can I help?
(Keep this talk simple and focused on _just_ getting your vanilla egg packaged and uploaded. Defer the advanced egg issues to the third talk).
--- Python Eggs - Advanced Packaging
* What are entry points? * How does dynamic discovery/plugins work? * I hear Trac uses them - how? * What are extras? They sound nifty! * What is a namespace package? When and how do I use them? * How can I have multiple distribution versions? * I hear eggs can detect files under CVS/subversion control - how does that work? * Also eggs have support for units tests - how? * Where do the egg experts hang out?
An Old Talk of mine about Eggs (from which to borrow slides/ideas):
* Attach:2006-03-25-AboutPythonEggs.odt * Attach:2006-03-25-AboutPythonEggs.pdf
-Jeff Co-Chair PyCon 2007