One thing that I like to do is ensure I am using the best practices I can even (especially) in my personal projects. Kotoba is no different.
One thing that has bothered me with Rails is the myriad of ways to get external components into a project. Gems are, of course, a great way to get system-wide control of gems, but then you need to manage them a bit more explicitly to ensure that your system configuration does not change from under your feet when a newer version gets installed afterwards. You can just import it directly from a source repository. Quick. Dirty. Bad. Bad. Bad. Did I mention it is bad? Yes. Bad.
While some of the projects I am using are located on Git repositories (more on this later), there are a few that are using subversion much as I am. While svn
has the concept of externals, this can be a whole lot of messy when you have multiple externals, each of which gets interrogated every time you do an update. Ultimately, svn-externals require more work than they are often worth. Why do something when you can be lazy and let a tool do it for you?
Solution? Piston. [1, 2, 3]. Both Robby and Chris make good points about how difficult svn-externals can become. Piston just makes it simple.
To import a project from svn:
piston install svn-url vendor/plugins/project_name
To lock to the specific version of a project:
piston lock vendor/plugins/project_name
To unlock and update then:
piston unlock vendor/plugins/project_name
piston update vendor/plugins/project_name
To see that status of your Piston managed projects:
piston status
And what about Git and Piston? 1.9.1. Alternatively, here. Unfortunately, as of tonight I have not been able to get this to work. But I have not given up.