view README.txt @ 11:28133fa9e0ac

note
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 23 Apr 2013 16:09:14 -0700
parents 75e651ddd631
children a5020570dfa9
line wrap: on
line source

IntentMadeManifest
==================

/python workflow engine via directed graph/

As risen from the stillborn ashes:
http://k0s.org/mozilla/hg/MozbaseWorkflow/
[TODO: port ^that^ -> this document]


Intents
-------

"Software [...] is communication"
-- David "Whit" whitfield Morris

/What is a directed graph?/

Several systems take the form of a directed graph:

- dependencies
- workflow

IntentMadeManifest *utilizes* directed graphs. A framework is provided
along with instances to form a library:

- VCS: git, hg, etc.
- decorators: actions

http://k0s.org/hg/WSGraph is built upon for interface.


Potential Uses
--------------

* dependency curation:
  - DEPS: Dependency Extraction and Processing System;
    http://deps.alioth.debian.org/ ,
    http://vasks.debian.org/projects/deps/
  - Extraction of Attribute Dependency Graph from Database Applications
    http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6130680&contentType=Conference+Publications
  - MAKAO, reverse engineering build systems :
    http://mcis.polymtl.ca/~bram/makao/
  - ceve, utility to parse package dependencies as set of constraints
  - edos, building Linux distributions;
    http://www.mancoosi.org/edos/

* workflow construction, execution, and curation:
  - edit+create+export workflow TTW

* hybrid:  of course, since IRL
  `workflow = DAG; dependencies = DAG => ...` ,
  Since a `transition` is causal but necessarily with the `t`
  of spacetime, indeed from the above: `workflow == dependency processing`.
  You can do some crazy things:
  - actions: a class with method dependencies noted by decorators
    (see actions.py)
  - control workflow via .ini files (see `examples/github.ini`)

Meta:
- A Formal Definition of Data Flow Graph Models
  http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1676696&contentType=Journals+%26+Magazines


Links
-----

/Links to software and other communiques/


Python packages:

* https://pypi.python.org/pypi/finite
  Yet another finite state automaton

* https://pypi.python.org/pypi/fluidity-sm
  State machine implementation for Python objects.

* https://pypi.python.org/pypi/fysom
  pYthOn Finite State Machine

* https://pypi.python.org/pypi/luigi
  Workflow mgmgt + task scheduling + dependency resolution
  ^ REALLY worth looking in to

* https://pypi.python.org/pypi/workflow/1.01
  Simple workflows for Python;
  Not sure if this is really what's needed. And....1.01???

* https://pypi.python.org/pypi/xworkflows
  A library implementing workflows (or state machines) for Python projects.


node.js:

Those node.js people seem to know what they are doing.

* conductor: http://howtonode.org/step-of-conductor
  https://github.com/creationix/conductor
  Looks (maybe?) like what IntentMadeManifest is supposed to be (???)

* step:
  https://github.com/creationix/experiments/blob/master/step.js
  same author as conductor; again, impressive

* composer: https://github.com/tmpvar/composer
  totally the WSGraph of node (!)


State Machines:

Workflow == state machines, so an understanding from either
perspective is the same apropos the other.

* http://en.wikipedia.org/wiki/Finite-state_machine

----

Jeff Hammel
k0scist@gmail.com