public
Description: A a hyper-lightweight dependency tracking and project installation system
Homepage:
Clone URL: git://github.com/masak/proto.git
proto /
name age message
file .gitignore Sat May 09 14:30:38 -0700 2009 [.gitignore] .pir files [masak]
file AUTHORS Thu May 21 12:50:51 -0700 2009 [AUTHORS] added PerlJam [masak]
file LICENSE Tue Feb 17 01:09:52 -0800 2009 added AUTHORS and LICENCE; referred from README [masak]
file PIONEER Tue Jun 02 12:56:20 -0700 2009 [PIONEER] slight rewording [masak]
file README Tue Jun 02 05:08:30 -0700 2009 [README] grammar-o [masak]
file create-new-project Thu May 21 12:50:36 -0700 2009 [create-new-project] shebang s/sh/bash/ Thanks... [masak]
file dotty-progress Thu May 14 15:43:52 -0700 2009 [dotty-progress] added usage information [masak]
file installer Mon May 11 09:12:47 -0700 2009 moved dispatching code into Installer.pm The m... [masak]
directory lib/ Mon Nov 02 14:28:18 -0800 2009 [Installer] pass the required named, not positi... [masak]
directory logotype/ Thu May 21 15:03:34 -0700 2009 [logotype/proto.svg] further simplifications [masak]
file projects.list Wed Nov 04 13:16:12 -0800 2009 [projects.list] added irc-client and http-clien... [masak]
file proto Thu Nov 05 14:47:55 -0800 2009 [proto] now runs off (locally) installed rakudo [masak]
file tab-completion.sh Mon Sep 28 04:52:38 -0700 2009 [tab-completion.sh] Tab-complete the project na... [carlin]
README
Proto -- making your life slightly easier

Proto is (C) Copyright 2009 by the Proto contributors (as listed in
AUTHORS). The license is Artistic 2.0; see LICENCE.

Proto is a hyper-lightweight dependency tracking and module installation
system. Its only purpose is to help you set up a running environment where
you can play with Perl 6 modules with as little hassle and as few questions
as possible. It is not to be taken seriously in any way. It is not a full-
fledged module installation system. It is a prototype; in fact, its very name
was chosen to indicate this fact. The conditions under which it can work are
temporary -- the mechanism by which it ties together modules is a short-term
hack in Rakudo Perl 6. Nothing lasts forever, but that holds especially true
for this installer.

Proto is terse, clear and no-nonsense. It doesn't spew output all over your
terminal when building things. It doesn't have a lot of different flags. It
tries to do one thing, and do it well: handle the dependencies between your
projects.

What proto will do for you:

1. Install Parrot
2. Install Rakudo
3. Install and test Perl 6 modules
4. Create new modules (in projects, with tests)
5. Help Perl 6 code use all these modules

To install Parrot and Rakudo, type the following at the prompt:

  % ./proto

Installation of Parrot and Rakudo is merely a convenience; what proto was
really built for is installing modules. The command

  % ./proto install <module>

will look among its list of registered modules for <module>, and download and
build whatever it finds.

Should the downloaded module happen to explicitly depend on other modules,
these will be downloaded and built before the dependent module is built. And so
on, until it all bottoms out.

The update command

  % ./proto update <module>

will check the module <module> and all that depend on it for updates, and
rebuild them in the required order. Omit the name of the module, and all your
installed modules will be updated.

See the file PIONEER for how to set up your project with proto, or let the
create-new-project script make one semi-automatically.

Removing a module is as simple as

  % ./proto uninstall <module>

If a dependency cycle is detected during the download process, the install
is aborted and the dependency cycle is described. It might still be possible
to install all modules despite the cycle, but the mere fact that there's a
cycle merits human attention.

There are many things which proto does not do. Even so, it is the hope of its
authors that it might be of some use, and make Perl 6 poets bold in splitting
up their work into logical independent units.