Giter VIP home page Giter VIP logo

cpanminus's Introduction

NAME

Menlo - A CPAN client

DESCRIPTION

Menlo is a code name for cpanm 2.0, developed with the goal to replace cpanm and its backend with a more flexible, extensible and easier to use APIs.

COMPATIBILITY

Menlo is developed within cpanm git repository at the menlo branch. It keeps the developer test suite intact, which means all of the features implemented as of cpanm 1.7032 are supposed to work in Menlo with cpanm-menlo command line tool and its backend, Menlo::CLI::Compat.

Menlo::CLI::Compat started off as a copy of App::cpanminus::script, but will go under a big refactoring to extract all the bits out of it. Hopefully the end result will be just a shim and translation layer to interpret command line options.

A new client, possibly called menlo, and object oriented APIs will be added later in the development phase.

MOTIVATION

cpanm has been a popular choice of CPAN package installer for many developers, because it is lightweight, fast, and requires no configuration in most environments.

Meanwhile, the way cpanm has been implemented (one God class, and all modules are packaged in one script with fatpacker) makes it difficult to extend, or modify the behaviors at a runtime, unless you decide to fork the code or monkeypatch its hidden backend class.

cpanm also has no scriptable API or hook points, which means you have to work around its behavior by writing a shell wrapper, or parsing the output of its standard out or a build log file.

Menlo will keep the best aspects of cpanm, which is dependencies free, configuration free, lightweight and fast to install CPAN modules. At the same time, it's impelmented as a standard perl module, available on CPAN, and you can extend its behavior by either using its modular interfaces, or writing plugins to hook into its behaviors.

FAQ

  • Dependencies free? I see many prerequisites in Menlo.

    Right now, Menlo is in the development phase and is released as a standard perl module distribution, and has a few runtime dependencies. Actually most of these modules were consumed by cpanm as well, and they aren't new.

    When I decide it's ready for production and to replace cpanm, I'll make a fatpacked version of the script, which will bundle all the dependencies into one file, just like cpanm does.

  • Is Menlo a new name for cpanm?

    Right now it's just a code name, but I'm comfortable calling this a new package name for cpanm 2's backend.

AUTHOR

Tatsuhiko Miyagawa [email protected]

COPYRIGHT

2010- Tatsuhiko Miyagawa

LICENSE

This software is licensed under the same terms as Perl.

SEE ALSO

cpanm

cpanminus's People

Contributors

miyagawa avatar xaicron avatar charsbar avatar gfx avatar ilmari avatar kraih avatar garu avatar autarch avatar haarg avatar doy avatar kahlil-hodgson avatar yannk avatar benkasminbullock avatar midlifexis avatar xdg avatar jandubois avatar oalders avatar melo avatar skaji avatar tokuhirom avatar chromatic avatar moznion avatar ghedo avatar arodland avatar ashb avatar wchristian avatar dana avatar goodell avatar dsteinbrunner avatar preaction avatar

Watchers

James Cloos avatar Mark Flickinger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.