It's be great to talk with Jonathan-- feel free to connect us. Thanks.

The bug I mentioned manifested itself like this:

    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/gevent/greenlet.py", line 327, in run
        result = self._run(*self.args, **self.kwargs)
      File "/vagrant/inbox/mailsync/backends/imap/generic.py", line 190, in _run
        fail_classes=self.retry_fail_classes)
      File "/vagrant/inbox/util/concurrency.py", line 120, in retry_and_report_killed
        **reset_params)()
      File "/vagrant/inbox/util/concurrency.py", line 73, in wrapped
        return func(*args, **kwargs)
      File "/vagrant/inbox/mailsync/backends/imap/generic.py", line 217, in _run_impl
        self.state = self.state_handlers[old_state]()
      File "/vagrant/inbox/util/concurrency.py", line 73, in wrapped
        return func(*args, **kwargs)
      File "/vagrant/inbox/mailsync/backends/imap/generic.py", line 270, in initial_sync
        self.initial_sync_impl(crispin_client)
      File "/vagrant/inbox/mailsync/backends/imap/generic.py", line 293, in initial_sync_impl
        remote_uids = crispin_client.all_uids()
      File "/vagrant/inbox/crispin.py", line 489, in all_uids
        fetch_result = self.conn.search(['ALL', 'UID'])
      File "/usr/local/lib/python2.7/dist-packages/imapclient/imapclient.py", line 588, in search
        return self._search(normalise_search_criteria(criteria), charset)
      File "/usr/local/lib/python2.7/dist-packages/imapclient/imapclient.py", line 621, in _search
        for item in parse_response(data):
      File "/usr/local/lib/python2.7/dist-packages/imapclient/response_parser.py", line 46, in parse_response
        return tuple(gen_parsed_response(data))
      File "/usr/local/lib/python2.7/dist-packages/imapclient/response_parser.py", line 56, in gen_parsed_response
        for token in src:
      File "/usr/local/lib/python2.7/dist-packages/imapclient/response_lexer.py", line 118, in __iter__
        for tok in self.read_token_stream(iter(source)):
      File "/usr/local/lib/python2.7/dist-packages/imapclient/response_lexer.py", line 149, in __iter__
        return PushableIterator(six.iterbytes(self.src_text))
      File "/usr/local/lib/python2.7/dist-packages/imapclient/six.py", line 597, in iterbytes
        return (ord(byte) for byte in buf)
    TypeError: 'NoneType' object is not iterable
    <FolderSyncEngine at 0x5e4e550> failed with TypeError

But turns out Tom fixed it here. I don't think it's yet on PyPI.

From: Menno Smits <menno@freshfoo.com>
Sent: Wednesday, May 27, 2015 2:41 AM
To: Michael Grinich
Cc: Christine Spang
Subject: Re: Thoughts
Hi Michael,
No problems about the delay. I know what it's like.
Another interesting development: after our call I put out my feelers to see if any of the developers that I know and trust would be interested in tackling this work, and I got a bite from a former colleague and good friend, Jonathan Hartley (http://tartley.com/). He's one of the smartest developers I know - with huge amounts of experience with Python - and is highly disciplined about testing and code quality. On top of that, he's in the process of arranging a move to the US (his wife his American) so that could work well too. He has no experience with IMAP or Go, but these are things I'm confident he could quickly pick up. Due to the pending move to the US, he currently on a short contract so could be available on fairly short notice.
Are you interested in talking to him? He could give you a full 5 days a week working on IMAPClient and related bits.
- Menno
p.s. Can you give me details on the bug that you found today?
On Wed, 27 May 2015, at 06:59, Michael Grinich wrote:

> Hi Menno,
> Sorry for the delay.
> Having you work dedicated 1 day a week for Nylas would be fantastic. We already have several low-hanging IMAPclient projects we need help with, and there are many places in our sync engine codebase that I think you could make huge contributions to.
> So in short, yes. We'd be ready to get started immediately. (Already had a bug come up today where IMAPclient fails when folders have no items in them...)
> --Michael

> > On May 21 2015, at 7:44 pm, Menno Smits <menno@freshfoo.com> wrote:

> > Hi Michael,

> > It was great to talk to you and Christine earlier this week.

> > I've been thinking about ways that we could make this work. I'm really
> > not ready to leave my current position at Canonical but I'd be prepared
> > to consider dropping my hours to work for Nylas part-time. Would you
> > consider having me work for Nylas one full day a week if I could
> > negotiate my hours down to 4 days a week at Canonical? I think they
> > might be open to that (any less could be a struggle).

> > I realise this is probably less of a commitment from me than you'd
> > probably like but one day a week would give me much more time to work on
> > IMAPClient than I have now. You'll get you the features you need much
> > sooner. If this seems workable to you I can start the conversation with
> > my managers.

> > I'm also writing to a couple top notch developers that I trust about the
> > possibility of working with you on this (they're both in London). I
> > believe that one in particular could be thinking about leaving his
> > current role.

> > Cheers,
> > Menno