[Python-Dev] Status of packaging in 3.3 (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Fri Jun 22 08:29:55 CEST 2012
- Previous message: [Python-Dev] Status of packaging in 3.3
- Next message: [Python-Dev] Status of packaging in 3.3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Jun 22, 2012 at 3:20 PM, Donald Stufft <donald.stufft at gmail.com> wrote:
I don't want to argue over implementation details as I think that is premature right now, so this concept has a big +1 from me. RPM, deb, etc has a long history and a lot of shared knowledge so looking at them and adapting it to work cross platform is likely to be huge win.
Right, much of what I wrote in that email should be taken as "this is one way I think it could work", rather than "this is the way I think it should work". In particular, any realistic attempt should also look at what Debian based systems do differently from RPM based systems.
I think the key elements are recognising that:
- an "sdist" contains three kinds of file:
- package metadata
- files to be installed directly on the target system
- files needed to build other files
- a "bdist" also contains three kinds of file:
- package metadata
- files to be installed directly on the target system
- files needed to correctly install and update other files
That means the key transformations to be defined are:
- source checkout -> sdist
- need to define contents of sdist
- need to define where any directly installed files are going to end up
- sdist -> bdist
- need to define contents of bdist
- need to define how to create the build artifacts
- need to define where any installed build artifacts are going to end up
- bdist -> installed software
- need to allow application developers to customise the installation process
- need to allow system packages to customise where certain kinds of file end up
The one anti-pattern I think we really want to avoid is a complex registration system where customisation isn't as simple as saying either:
- run this inline piece of code; or
- invoke this named function or class that implements the appropriate interface
The other main consideration is that we want the format to be easy to read with general purpose tools, and that means something based on a configuration file standard. YAML is the obvious choice at that point.
Cheers, Nick.
-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message: [Python-Dev] Status of packaging in 3.3
- Next message: [Python-Dev] Status of packaging in 3.3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]