background preloader

Devstructure

Facebook Twitter

Richard Crowley devstructure at Duck Duck Go. Richard Crowley: Dependency management for grown ups — Richard Crowley’s blog. Sprouting a package manager seems to be a rite of passage for programming languages. Perl has CPAN. PHP has PEAR and PECL. Python has setuptools/distribute and PyPI. Ruby has RubyGems. Node.js has npm. Go has goinstall. Haskell has Cabal. They each bring to the table a subtly different command-line grammar, novel new rules for dependency resolution (“~>”, for example) and a new set of repositories to fail. The fatal flaw in every single case is the systemic inability of each of these package managers to fully describe the dependencies of their packages. I will not be endorsing a utopian future in which Debian and Red Hat have unified their package naming scheme such that RubyGems could programmatically specify and satisfy these dependencies in a portable manner. A new tool appears to be the only pragmatic way forward and others seem to agree.

The answer is invariably the installation isolation they can each provide. Run the file with puppet apply example.pp. DevStructure Blog - faster dev, smarter ops.