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, the following outlines appear on the PyCon TalkIdeas wiki page.
"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, such as installing/uninstalling an egg, list what eggs are installed at the moment, switch between the versions of an egg and test install an egg to see if it would work?
- 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?
"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?