jam - glue between pinto and scm

Pinto is great and helps create custom repositories of cpan packages, tune dependencies and get vital information about your distributions. One thing I lack is to propagate changes in source control as new distributions in pinto stacks and also new distributions for production servers. So this why I have created tool named "jam". Now it's in prototype stage, but it give a sense the way of automation.

One have list of code sources with changes get pulled from scm triggering new distributions holding changes and new distribution of application, dependent on those new ones. This processes get automated by jam. All you need - install pinto and jam, checkout sources and set configuration file:

git clone https://github.com/melezhik/jam.git
cd jam && bundle install
mkdir my-app/
svn co http://you-svn-repo/apps/app/trunk my-app/sources/app
svn co http://you-svn-repo/apps/lib-one my-app/sources/lib-one
svn co http://you-svn-repo/apps/lib-two my-app/sources/lib-two
pinto new my-app-pinto-stack

cat my-app/jam.sjon
"stack" : "my-app-pinto-stack",
"application": "sources/app",
"sources": [

When setup is done you may build you application:

export PINTO_EDITOR=cat
export PINTO_REPOSITORY_ROOT=/home/pinto/repo/
./jam.rb -p ./my-app

Check out more detailed information on https://github.com/melezhik/jam


As I recall, "jam" was the name miyagawa was thinking about using for a CPAN tool. I don't know if he abandoned that.

Perforce Jam is an open-source build system...

Leave a comment

About melezhik

user-pic Dev & Devops --- Then I beheld all the work of God, that a man cannot find out the work that is done under the sun: because though a man labour to seek it out, yet he shall not find it; yea further; though a wise man think to know it, yet shall he not be able to find it. (Ecclesiastes 8:17)