Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
970a004
commit b6e7fd7
Showing
1 changed file
with
80 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
--- | ||
title: "Seven Years Under A Palm Tree" | ||
date: 2016-04-24 | ||
--- | ||
|
||
The last time I wrote on this blog was June 2013 as I geared up to launch | ||
Capistrano v3 which was a complete ground-up rewrite. The rewrite had been | ||
"finished" and working for a while, but given that it was a ground-up rewrite | ||
in the spirit of Capistrano, but shared nary a single line of code with it's | ||
forebear the release dragged up a bunch of mixed emotions, was Tom and I being | ||
frauds writing new software and releasing it under an existing "brand name", or | ||
was it a - what right did we have to make that decision in any case? | ||
|
||
Today I'm reflecting at the end of a weekend where many things seem to be | ||
aligning. My son is 18 months old today, my company [Harrow.io][1] (more below) | ||
will release it's Capistrano integration on Monday, and one of the most | ||
significant releases of Capistrano since the rewrite in 2013 will be released. | ||
|
||
Serendipitously this also marks seven years to the week since my first commit | ||
in Capistrano core landed, [trivial as it was][2]. Before I ever had code in | ||
Capistrano I'd spent countless hours working to help people in IRC, and on the | ||
then infantile StackOverflow (it was less than a year out of beta!), I'd also | ||
written the tremendously popular `capistrano-handbook` which I finally uploaded | ||
to Github on the same day that my code landed in Capistrano. I don't recall | ||
those two miletones being related, apparently it was just a coincidence! | ||
|
||
Capistrano 3.x, as brutally different thought it may have been was incredibly | ||
well received, through the rewrite we lost thousands of lines of custom DSL | ||
code, gained a lot in speed and pluggability and an immeasurable amount in | ||
*maintainability*. Of course we also quietly dropped some seldom used features | ||
and added them back as people identified a will to upgrade but noticed | ||
something lacking. | ||
|
||
So, tomorrow (2016-04-25) I'm [releasing Capistrano 3.5][3] which includes | ||
tonnes of new features, nearly all community contributed and some that will | ||
really, really help us to deliver more, better improvements in the future and | ||
help us clean up some of the lingering issues about inaccurately written | ||
documentation that predates Capistrano 3.x which confuses people. Matt's [`cap | ||
doctor`][4] command will report unused variables, out of date plugins, list the | ||
resolved variables for a given stage, etc. We're excited about this, it was | ||
great achievement of Matt's to get that into 3.5! | ||
|
||
Another huge part of Matt's work is the change to [the default Capistrano | ||
output formatter][5]. This will likely be as controversial as the original | ||
rewrite, it's inarguably better looking, more concise and easier to pick the | ||
important information out of, but people can be resistant to change, so it's | ||
super easy to set back to the previous `pretty` formatter! | ||
|
||
Another important part of the 3.5 release is the integration with | ||
[Harrow.io][1]. Harrow is platform/service/company that I founded with some | ||
friends to make my work on Capistrano more sustainable by making it into my day | ||
job. We built something that you can understand as being a "Continuous | ||
Integration" tool but with a really distinctly different design to anything | ||
else you migth have come across. It's designed to feel like a web-enabled | ||
extension of Capistrano's principles. With stages, and sets of environment | ||
variables, designed to make the tooling it wraps better, faster, and easier to | ||
use. Like most things I've thought about doing with Capistrano over the years, | ||
not least rewriting it from scratch, the decision to promote Harrow from within | ||
Capistrano was not taken lightly, it's important to strike the right balance | ||
between offering people a better experience with their software, without | ||
forcing them into something they might come to resent. | ||
|
||
The current scope of the Capistrano+Harrow integration is a simple in-terminal | ||
prompt (well behaved, presuming "no" if no answer is given within a few seconds | ||
or no facility to prompt is available) when running `$ cap install` which | ||
happens once and only once per project. We may expand the scope of this | ||
integration in the medium-term future depending on the community feedback. | ||
|
||
Capistrano will always remain open source and [liberally licensed][6]. Harrow | ||
is closed-source (for now) platform with a cloud subscription model, and an | ||
on-premise "enterprise" version which are offered as paid commercial services. | ||
|
||
--- | ||
|
||
[1]: https://www.harrow.io/ | ||
[2]: https://github.com/capistrano/capistrano/commit/0713ae6d4d2b5b0cb801d494123af5cf6199b717 | ||
[3]: https://github.com/capistrano/capistrano/milestones/3.5.0 | ||
[4]: https://github.com/capistrano/capistrano/pull/1642 | ||
[5]: https://github.com/mattbrictson/airbrussh | ||
[6]: https://github.com/capistrano/capistrano/blob/master/LICENSE.txt |