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.
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