Hacker News new | past | comments | ask | show | jobs | submit login

I've been pushing for this to be done for a while :)

There's no point open-sourcing the crappy old parts of our architecture which we wouldn't advise new projects to use (like our Perl framework. There are so many Perl frameworks these days, and many of them better than ours) - but Overture is high quality stuff. Enjoy!




So I opened my fastmail account for about a year. I have to say ever blog post, chock full of technical content, your dedication to showing up front your patched versons of Cyrus IMAP, and other stuff you brongondwana and the company at large do, are very badass. I give you often as an example of transparency in the marketplace and I love what you guys do.

Thank you for taking me away from Google! I have had no downtime, but your work has gotten me interested in many mail clients I have tried and I intend to host my own Cyrus IMAP instance to learn more about email in general. Thanks for that too!


I'm hoping to be able to release Cyrus 2.5 soon. We just rebased the FastMail branch on top of the current master tree and rolled it to 2% of our users with no issue - it was months behind until recently. Planning to roll that out to everyone very soon. I've been testing it just with a few of my own users and patching issues for the last month.


What Git workflow do you have? Is it the something simple like testing, staging, production or is it much more customized for your needs? Recently I got very interested in that, since we evaluated Phabricator and Gerrit[1] (we choose Gerrit btw.). Ok this had to be asked: Do you send commits via mail too? :)

--

[1] https://code.google.com/p/gerrit/


We build two separate Debian packages: cyrus-fastmail for production, and cyrus-future for testing.

Git workflow - we push branches named fastmail and future to our git repo. They are pretty aggressively rebased on the upstream master branch.

We have unit tests and a couple of more comprehensive test suites we run against code before it hits future. Future runs on a single store with one real user (my personal account) and a bunch of users that the functional tests run against. Once we're happy, we push that same branch to fastmail and rebuild.

There's a commit hook which sends a diff against the previous build tag to the mailing list so you can easily see what is being rolled out, both for future and for fastmail.

We do some horrible things to git for the rest of our system too. Our pushback tooling that builds squashed feature branches onto host branches is pretty crazy. It mostly does what we need though.


Speaking of Cyrus - are there OSS push IMAP servers these days?


Thank you for the open sourcing of that lib. It looks great.

> There's no point open-sourcing the crappy old parts of our architecture which we wouldn't advise new projects to use

Well, there is an educational point to be made about this... :)

I think too many people in open source focus on "if it's open source, it must be great, look great" etc. I for one put every crappy project I start and never complete on Github along with the good ones I'm proud of. Because I like my "learning process" being out in the open as well. I don't publish my hello-worlds of course but I don't specifically hide stuff people "I believe should not use". Warnings in the readme are as far as it goes.

My company systematically opens its entire process to the public. All the code is on Github, all the issues are there too. Our internal discussion/design process is on IRC, Google Docs and the Github wiki and they are all public and archived. Only client work under NDA remains private.

Google has a similar-ish model for some open source projects it released. I wish more companies would adopt a model like this. Well, of course, open sourcing important frameworks and useful stuff remains a higher priority... but I don't believe there is any harm in it, and it actually holds the employees to a subconscious "higher standard".

I'd love to talk more about it but I think I'm getting off-topic here. Once again, congratulations on the release!


The other side is that it does take a not-insignificant amount of time and effort to prepare a fifteen-year-old codebase for the public. There's got to be some benefit to the business to make it worth that.

The old web framework that we use is good for what it is, and we understand it, but its not state-of-the-art by any stretch, it does some weird things that aren't good practice in "modern" Perl, its still fairly heavily tied to Apache2/mod_perl and other parts of our internal libs, and so on. We don't use it for new code ourselves and we're actively migrating everything written in it onto Overture-based UI.

So given that even we don't want to use it and the off-the-shelf Perl web frameworks are generally better, it really doesn't help anyone to make it open source.

That's not to say there's nothing in our system not worth open-sourcing. For example, we've deliberately written our CalDAV/CardDAV libs in a nice clean modular way because we've planned to release them from the very beginning. Its just some things, like the web framework, that have no particular value.


I'm really enjoying looking through the source, this is some nice javascript - thanks!


Thanks for sharing, looks good.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: