On 18 Nov 2009, at 19:16, Gerd Knops wrote:
I am somewhat confused about what the best practices are to use and develop bundles theses days.
What I used to do was to have a checkout of the subversion directory in "/Library/Application Support/TextMate". That allowed me to easily apply fixes and commit them. And when I wanted to use a bundle from "Review" I just created a symlink of that bundle to "~/ Library/Application Support/TextMate/Bundles".
Now we have some bundles left in subversion, many bundles migrated to github. We got Allan's "bl" tool (not sure what to do with "Managed", I made "Pristine Copy" a symlink to it), and we got Hans' "GetBundles" which seems rather nice too.
I guess gone are the days where a single "svn update" would get you the latest of all bundles.
The ‘bl’ tool is still WIP but when officially released this should be the tool used to install bundles (perhaps via a UI) and ‘bl update’ takes care of updating all installed bundles (including Support folder and it may also handle plug-ins and themes).
Bundle authors will be able to run their own indexes which users can add as sources to ‘bl’, thereby also handling updating these.
I think for 99% of users it should solve 99% of their needs.
I am btw regularly pushing new builds of ‘bl’ to http://updates.textmate.org/bl.bz2 — if you just run ‘bl’ it lists the commands/options with minimal info about each.
I am also not sure how to develop/change bundles that are hosted on github. My current approach is:
- Delete the bundle from "Pristine Copy" (if it is there)
- Create a fork on github (or if it is a new bundle create a new
repository)
- Clone that fork to "Pristine Copy"
- Make changes, push and send a "pull request" to the owner of the
original bundle.
What are the recommended/best working workflows?
Clone the bundle to ~/Library/Application Support/TextMate/Bundles, make your changes in TextMate, and then commit + push.
If you already have the bundle installed it is a good idea to remove (from Pristine Copy etc.) before cloning — in 2.0 it no longer merges bundles unless the info.plist in the “local” bundle is a delta file, I am considering back-porting this behavior, but I fear this is more involved than a simple change.