pjf / exobrain

Automate your life with Exobrain
218 stars 25 forks source link

Reduce dependency requirements #17

Open pjf opened 10 years ago

pjf commented 10 years ago

Exobrain has an incredible number of dependencies. While they all install cleanly on a fresh ubuntu box when following the install instructions, that still takes a very long time.

We'd like to reduce these somewhat. Some dependencies aren't actually used (eg, the WIP xmpp server, which brings in all of AnyEvent), and others shouldn't be used unless the user actually wants to use that component. (Why install the Facebook deps if the user isn't using a Facebook source/sink?)

So we should:

Part of splitting Exobrain into components can be converting existing executable files into classes (#26). They can still be managed via Ubic, but they're much cleaner to handle, can provide their own meta-data to Exobrain (if we want that), are easier to test, and don't clutter up the user's bin directory.

We may also consider using Carton, Shipwright, PAR, or some other packaging system to provide a single "exobrain in a box" download.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/1401325-reduce-dependency-requirements?utm_campaign=plugin&utm_content=tracker%2F347315&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F347315&utm_medium=issues&utm_source=github).
pjf commented 10 years ago

We need a way for pluggable components to provide:

pjf commented 10 years ago

We also need to think about actions. Some can be bundled with a distribution, but if an action has multiple dependencies, where should it be placed?

pjf commented 10 years ago

The new Exobrain 1.00 framework is working a treat here, with Exobrain::Twitter now being its own component that can be downloaded independently from the cpan.