Since I last wrote about it, Bunch has received a lot of updates. It remains my favorite thing to do between 5:30 and 8am.

Everything is still happening in the Bunch Beta releases, but I’ve redirected all Bunch web traffic to the new site where the beta download is the prominent button, so hopefully new users are more likely to be on the 1.4 beta than on the (now seriously behind) stable channel. I swear I’m very close to releasing the Beta as the public release, but I keep adding things that I want tested. The plan is to draw a line today, test existing features, then make a public 1.4 release in the next week or two. The beta will continue to be where I release new features, and you can stay on the beta channel indefinitely. I’ll make stable releases more often, so those who don’t choose the cutting edge won’t end up a year behind. Which is, of course, how betas are supposed to work.

A Bunch of New Stuff

(Sorry, I will probably always use that pun.)

Among the new features is an entire syntax for conditional logic, which can run Bunch items based on tests like “weekday is before Wednesday,” “OtherBunch is Open,” “Variable_1 contains This Text,” and a dozen other permutations. Bunch’s ability to set both local and global variables is expanded, and you can set variables using shell script output, multiple choice dialogs, or external files. Then you can use those variables to affect snippets, branch Bunch execution, and even affect other Bunches. Of course, if your needs are basic, the simple way you’ve always used Bunch is still fully functional.

Bunch can also now create Single Site Browsers, run shell scripts with a configurable task monitor, and interact with even more great Mac apps. Seriously, it would take a few blog posts just to list all the new stuff. I don’t expect even avid users to be on top of all the changes. I just try to keep as detailed a changelog as I can, replete with links to documentation of new features.

I do keep the documentation very complete. I even wrote a Jekyll plugin that puts recently-updated documentation pages in a summary at the top of the changelog with every release. Now that my official day job is “Technical Writer” for a Developer Relations team, I can consider writing Bunch documentation to be honing my abilities. Which is cool, I really like writing Bunch Documentation.

To Pay or Not to Pay

Like I said, I’ve officially redirected all Bunch links on this site to point to bunchapp.co, the new official home of Bunch. I’ve decided to keep Bunch free (er, donationware) for the foreseeable future. Now that I have a full-time job, Marked support to handle, and nvUltra on the horizon, adding another commercial app seems like asking for trouble. So it will continue to be a labor of love. Donations are always welcome and are a great way to show your appreciation, but I’m not stretching to make ends meet these days. Your bug reports and ideas are valuable on their own.

As far as longevity, I obviously can’t make promises, but that would be true even if it were a commercial app. In this case, not going commercial doesn’t really impact my vision of Bunch’s future. If it ever gets to a point where any decisions about its fate are based on commercial viability, I’ll weigh the options again. But for now, my own enjoyment of coding it, the occasional donations, and interested community are enough to drive further development.

Better Bunch With Sublime Text

You can edit a Bunch file in any text editor. I imagine most of its users are coders in some fashion, and are editing them in something more advanced than TextEdit (though that totally works). Personally, I use Sublime Text.

I got tired of not being able to easily comment out lines in a Bunch file when editing in Sublime, and thus began the Bunch Package for Sublime Text. It offers syntax highlighting, easy ⌘/ commenting, and snippets for various commands (including the more complex display command with its dozen options). It even has auto-completion for app names and snippet fragments, plus snippet navigation with ⌘r.

I’ve submitted the package to Package Control, but I have no idea how long inclusion takes these days. It was pretty fast years ago when I released MarkdownEditing, but it’s been a while since I tried. In the meantime, you can download the package manually on GitHub and stick it in Packages/User/Bunch and just start using it now.

For those not using Sublime Text, there’s a good chance you’re on VS Code. I don’t have the time (or motivation, really) right now to port this package to VS Code, but if you’re interested, please feel free to help. I’ll link it from the site with full credit to you. My scope names in the syntax file are terrible, but the regexes should be clear enough. The Python scripts for completion are very simple, and the snippets should port without much effort. But again, I haven’t really tried. I’d love it if someone took the time, though.

I have literally zero idea how to make a syntax for Vim, so if you’re using Vim you’re on your own unless I get a real bug to learn how to make a Vim package.

That’s all I’ll write for now. When I do finally release 1.4 to the stable channel, there will probably be a more epic post about the 100+ new features, but it’s also the kind of thing you can just look up as you hit “I wonder if it can do X” points in your usage. Thanks for coming along for the ride!