Skip Menu |

This queue is for tickets about the Net-IMAP-Simple CPAN distribution.

Report information
The Basics
Id: 89296
Status: resolved
Worked: 5 min
Priority: 0/
Queue: Net-IMAP-Simple

People
Owner: jettero [...] cpan.org
Requestors: holborn-bitcard [...] drav.net
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 1.2202
Fixed in: (no value)



Subject: top command fails with: warning unknown return string (id=4):
Using Net-IMAP-Simple-1.2202 v5.10.1 (*) built for x86_64-linux-gnu-thread-multi Ubuntu (Lucid Lynx) - Linux mail3.tuskerdirect.com 2.6.32-46-server #108-Ubuntu SMP Thu Apr 11 16:11:15 UTC 2013 x86_64 GNU/Linux my $imap = Net::IMAP::Simple->new('localhost', port => 993, use_ssl => 1, debug => 1) || die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n"; if(!$imap->login(USER, PASS)) { print STDERR "Login failed: " . $imap->errstr . "\n"; exit(64); } my $folder = "shared.general.testing"; my $nm = $imap->select($folder); die "Failed to open folder $folder: ", $imap->errstr, "\n" if($imap->errstr); for(my $i = 1; $i <= $nm; $i++) { my $uid = $imap->uid($i); die "UID Err for $i in $folder: " , $imap->errstr, "\n" if $imap->errstr; my @top = $imap->top($i); die "TOP Err for $i in $folder: " , $imap->errstr, "\n" if $imap->errstr; }
Subject: debug.txt
DEBUG: [...l/5.10.1/Net/IMAP/Simple.pm line 132 in sub _connect] connecting to localhost:993 [...l/5.10.1/Net/IMAP/Simple.pm line 132 in sub _connect] connected, returning socket [./build_state.pl line 40 in sub new] waiting for socket ready [./build_state.pl line 40 in sub new] looking for greeting [./build_state.pl line 40 in sub new] got a greeting: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=LOGIN AUTH=PLAIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5 SASL-IR] mail3 server ready\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1183 in sub _send_cmd] 0 LOGIN user "passwd"\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 264 in sub _process_cmd] 0 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SORT SORT=MODSEQ SORT=DISPLAY THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY LOGINDISABLED AUTH=LOGIN AUTH=PLAIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5 COMPRESS=DEFLATE IDLE] User logged in SESSIONID=<mail3-20524-1381146131-1>\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] 0 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SORT SORT=MODSEQ SORT=DISPLAY THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY LOGINDISABLED AUTH=LOGIN AUTH=PLAIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5 COMPRESS=DEFLATE IDLE] User logged in SESSIONID=<mail3-20524-1381146131-1>\r\n Connected to IMAP. [...l/5.10.1/Net/IMAP/Simple.pm line 1183 in sub _send_cmd] 1 STATUS "shared.general.testing" (UIDVALIDITY)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 360 in sub _process_cmd] * STATUS shared.general.testing (UIDVALIDITY 1380818268)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * STATUS shared.general.testing (UIDVALIDITY 1380818268)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 360 in sub _process_cmd] 1 OK Completed\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] 1 OK Completed\r\n No Validity, build index for folder shared.general.testing [...l/5.10.1/Net/IMAP/Simple.pm line 1183 in sub _send_cmd] 2 SELECT "shared.general.testing"\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * 2 EXISTS\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * 2 EXISTS\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * 0 RECENT\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * 0 RECENT\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * OK [UNSEEN 1] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * OK [UNSEEN 1] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * OK [UIDVALIDITY 1380818268] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * OK [UIDVALIDITY 1380818268] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * OK [UIDNEXT 3] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * OK [UIDNEXT 3] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * OK [HIGHESTMODSEQ 9] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * OK [HIGHESTMODSEQ 9] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] * OK [URLMECH INTERNAL] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * OK [URLMECH INTERNAL] Ok\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 412 in sub _process_cmd] 2 OK [READ-WRITE] Completed\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] 2 OK [READ-WRITE] Completed\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1183 in sub _send_cmd] 3 UID SEARCH 1\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 612 in sub _process_cmd] * SEARCH 1\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] * SEARCH 1\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 612 in sub _process_cmd] 3 OK Completed (1 msgs in 0.000 secs)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] 3 OK Completed (1 msgs in 0.000 secs)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1183 in sub _send_cmd] 4 FETCH 1 RFC822.HEADER\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 516 in sub _process_cmd] * 1 FETCH (RFC822.HEADER {925}\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [0] Return-Path: <fff@yyy.com>\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [1] Received: from mail3.yyy.com (localhost [127.0.0.1])\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [2] by mail3 with LMTPA;\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [3] Thu, 03 Oct 2013 17:50:50 +0100\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [4] X-Sieve: CMU Sieve 2.4\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [5] Received: from [10.1.129.211] (port=57082)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [6] by mail3.yyy.com (mail3.yyy.com [10.1.0.2]:465)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [7] with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [8] id 1VRm70-00068O-Ln (Exim build-3) for testing@yyy.com\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [9] (return-path <fff@yyy.com>); Thu, 03 Oct 2013 17:50:50 +0100\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [10] Message-ID: <524DA06A.2070000@yyy.com>\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [11] Date: Thu, 03 Oct 2013 17:50:50 +0100\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [12] From: David <fff@yyy.com>\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [13] Organization: yyy Ltd\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [14] User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [15] MIME-Version: 1.0\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [16] To: testing@yyy.com\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [17] Subject: test 1\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [18] Content-Type: multipart/alternative;\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [19] boundary="------------010001050006010903040408"\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [20] Lines: 195\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1197 in sub _read_multiline] [21] \r\n [...l/5.10.1/Net/IMAP/Simple.pm line 516 in sub _process_cmd] )\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] )\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1149 in sub _seterrstr] warning unknown return string (id=4): )\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 516 in sub _process_cmd] 4 OK Completed (0.000 sec)\r\n [...l/5.10.1/Net/IMAP/Simple.pm line 1203 in sub _cmd_ok] 4 OK Completed (0.000 sec)\r\n TOP Err for 1 in shared.general.testing: warning unknown return string (id=4): )
I just constructed a test, t/80_top.t ... and it totally works for me with dovecot. What imap server is that? I may need to reproduce the problem. https://github.com/jettero/net--imap--simple/blob/master/t/80_top.t Oh, nevermind. I think the problem might be your code rather than a bug in top(). $imap->errstr will nearly always be true. There's all sorts of messages that the module doesn't attempt to process, so it's always tagging them unknown. my @top = $imap->top(1) or die $imap->errstr; On Mon Oct 07 07:47:52 2013, holborn-bitcard@drav.net wrote: Show quoted text
> Using Net-IMAP-Simple-1.2202 > v5.10.1 (*) built for x86_64-linux-gnu-thread-multi > Ubuntu (Lucid Lynx) - Linux mail3.tuskerdirect.com 2.6.32-46-server > #108-Ubuntu SMP Thu Apr 11 16:11:15 UTC 2013 x86_64 GNU/Linux > > > my $imap = Net::IMAP::Simple->new('localhost', port => 993, use_ssl => > 1, debug => 1) || die "Unable to connect to IMAP: > $Net::IMAP::Simple::errstr\n"; > > if(!$imap->login(USER, PASS)) { > print STDERR "Login failed: " . $imap->errstr . "\n"; > exit(64); > } > > my $folder = "shared.general.testing"; > > my $nm = $imap->select($folder); > die "Failed to open folder $folder: ", $imap->errstr, "\n" if($imap-
> >errstr);
> > for(my $i = 1; $i <= $nm; $i++) { > my $uid = $imap->uid($i); > die "UID Err for $i in $folder: " , $imap->errstr, "\n" if $imap-
> >errstr;
> my @top = $imap->top($i); > die "TOP Err for $i in $folder: " , $imap->errstr, "\n" if $imap-
> >errstr;
> }
-- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
From: holborn-bitcard [...] drav.net
This was a very quick and dirty hack to get it working (it looks like Cyrus IMAP that we use spits out FETCH as a parenthesis list).
Subject: patch.txt
$ diff blib/lib/Net/IMAP/Simple.pm /usr/local/share/perl/5.10.1/Net/IMAP/Simple.pm 1156c1156 < my ( $self, $sock, $count ) = @_; --- > my ( $self, $sock, $list, $count ) = @_; 1171a1172,1186 > if($list and $lines[-1] !~ /\)/) { > $self->_debug( caller, __LINE__, '_read_multiline', "Looking for ending parenthsis match..." ); > > my $unmatched = 1; > while( $unmatched ) { > if( defined( my $line = $sock->getline ) ) { > push @lines, $line; > $unmatched = 0 if($line =~ /\)/); > } else { > $self->_seterrstr( "error reading $count bytes from socket" ); > last; > } > } > } > 1172a1188 > my $count=0; 1174c1190,1191 < $self->_debug( caller, __LINE__, '_read_multiline', "[$i] $lines[$i]" ); --- > $count += length($lines[$i]); > $self->_debug( caller, __LINE__, '_read_multiline', "[$i] ($count) $lines[$i]" ); 1195a1213,1217 > my $count = $1; > my $list; > > $list = 1 if($res =~ /\(/); > 1197c1219 < foreach( $self->_read_multiline( $sock, $1 ) ) { --- > foreach( $self->_read_multiline( $sock, $list, $count ) ) {
The path applies cleanly and most of the tests pass. I do need ot chance down one possible bug regarding uninitialized values, but I suppose I shall release 1.2203 on the CPAN shortly. On Mon Oct 07 11:26:21 2013, holborn-bitcard@drav.net wrote: Show quoted text
> This was a very quick and dirty hack to get it working (it looks like > Cyrus IMAP that we use spits out FETCH as a parenthesis list).
-- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
I posted the new version to http://jettero.pl/perl/Net-IMAP-Simple-1.2203.tar.gz You wanna try it before I post it to the CPAN? On Mon Oct 07 11:46:12 2013, JETTERO wrote: Show quoted text
> The path applies cleanly and most of the tests pass. > > I do need ot chance down one possible bug regarding uninitialized > values, but I suppose I shall release 1.2203 on the CPAN shortly. > > On Mon Oct 07 11:26:21 2013, holborn-bitcard@drav.net wrote:
> > This was a very quick and dirty hack to get it working (it looks like > > Cyrus IMAP that we use spits out FETCH as a parenthesis list).
-- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
From: holborn-bitcard [...] drav.net
a slighlty better implicit look for the closing brace, and only debug when debugging!
Subject: patch2.txt
1156c1156 < my ( $self, $sock, $count ) = @_; --- > my ( $self, $sock, $list, $count ) = @_; 1171a1172,1186 > if($list and $lines[-1] !~ /^\)[\r\n]*$/) { > $self->_debug( caller, __LINE__, '_read_multiline', "Looking for ending parenthsis match..." ) if($self->{debug}); > > my $unmatched = 1; > while( $unmatched ) { > if( defined( my $line = $sock->getline ) ) { > push @lines, $line; > $unmatched = 0 if($line =~ /\)/); > } else { > $self->_seterrstr( "error reading $count bytes from socket" ); > last; > } > } > } > 1172a1188 > my $count=0; 1174c1190,1191 < $self->_debug( caller, __LINE__, '_read_multiline', "[$i] $lines[$i]" ); --- > $count += length($lines[$i]); > $self->_debug( caller, __LINE__, '_read_multiline', "[$i] ($count) $lines[$i]" ) if($self->{debug}); 1195a1213,1217 > my $count = $1; > my $list; > > $list = 1 if($res =~ /\(/); > 1197c1219 < foreach( $self->_read_multiline( $sock, $1 ) ) { --- > foreach( $self->_read_multiline( $sock, $list, $count ) ) {
From: holborn-bitcard [...] drav.net
Sorry for the patch spam :/ (it's been one of those days - juggling too many things at once). More implicit matching (on the actual match that ends the while loop) and also a clearer error message.
Subject: patch3.txt
1156c1156 < my ( $self, $sock, $count ) = @_; --- > my ( $self, $sock, $list, $count ) = @_; 1171a1172,1186 > if($list and $lines[-1] !~ /^\)[\r\n]*$/) { > $self->_debug( caller, __LINE__, '_read_multiline', "Looking for ending parenthsis match..." ) if($self->{debug}); > > my $unmatched = 1; > while( $unmatched ) { > if( defined( my $line = $sock->getline ) ) { > push @lines, $line; > $unmatched = 0 if($line =~ /^\)[\r\n]*$/); > } else { > $self->_seterrstr( "error matching closing brace after reading $count bytes from socket" ); > last; > } > } > } > 1172a1188 > my $count=0; 1174c1190,1191 < $self->_debug( caller, __LINE__, '_read_multiline', "[$i] $lines[$i]" ); --- > $count += length($lines[$i]); > $self->_debug( caller, __LINE__, '_read_multiline', "[$i] ($count) $lines[$i]" ) if($self->{debug}); 1195a1213,1217 > my $count = $1; > my $list; > > $list = 1 if($res =~ /\(/); > 1197c1219 < foreach( $self->_read_multiline( $sock, $1 ) ) { --- > foreach( $self->_read_multiline( $sock, $list, $count ) ) {
From: holborn-bitcard [...] drav.net
On Mon Oct 07 10:02:54 2013, JETTERO wrote: Show quoted text
> I just constructed a test, t/80_top.t ... and it totally works for me > with dovecot. What imap server is that? I may need to reproduce the > problem.
It's Cyrus IMAP (2.4.13). Show quoted text
> > https://github.com/jettero/net--imap--simple/blob/master/t/80_top.t > > > > Oh, nevermind. I think the problem might be your code rather than a > bug in top(). $imap->errstr will nearly always be true. There's all > sorts of messages that the module doesn't attempt to process, so it's > always tagging them unknown.
Ah okay, should I should be checking that the top() returns and empty list (or undefined) before relying on errstr? The POD says: "Nothing is returned on failure and the errstr() error handler is set with the error message." Show quoted text
> > my @top = $imap->top(1) or die $imap->errstr;
I'll fix that in my code to see what difference that has... So, yes @top gets set :) Now it falls over on the $imap->uid($i) call (I guess because once again I'm checking $imap->errstr... which is set during the $imap->top() call) The patch does seem to fix it to work cleanly... though I guess I need to work on a parenthesis list parser - something that strikes me as not an easy piece of work so the patch is not so 'quick and dirty!') Show quoted text
> > > > On Mon Oct 07 07:47:52 2013, holborn-bitcard@drav.net wrote:
> > Using Net-IMAP-Simple-1.2202 > > v5.10.1 (*) built for x86_64-linux-gnu-thread-multi > > Ubuntu (Lucid Lynx) - Linux mail3.tuskerdirect.com 2.6.32-46-server > > #108-Ubuntu SMP Thu Apr 11 16:11:15 UTC 2013 x86_64 GNU/Linux > > > > > > my $imap = Net::IMAP::Simple->new('localhost', port => 993, use_ssl > > => > > 1, debug => 1) || die "Unable to connect to IMAP: > > $Net::IMAP::Simple::errstr\n"; > > > > if(!$imap->login(USER, PASS)) { > > print STDERR "Login failed: " . $imap->errstr . "\n"; > > exit(64); > > } > > > > my $folder = "shared.general.testing"; > > > > my $nm = $imap->select($folder); > > die "Failed to open folder $folder: ", $imap->errstr, "\n" if($imap-
> > > errstr);
> > > > for(my $i = 1; $i <= $nm; $i++) { > > my $uid = $imap->uid($i); > > die "UID Err for $i in $folder: " , $imap->errstr, "\n" if $imap-
> > > errstr;
> > my @top = $imap->top($i); > > die "TOP Err for $i in $folder: " , $imap->errstr, "\n" if $imap-
> > > errstr;
> > }
From: holborn-bitcard [...] drav.net
On Mon Oct 07 11:56:05 2013, JETTERO wrote: Show quoted text
> I posted the new version to http://jettero.pl/perl/Net-IMAP-Simple- > 1.2203.tar.gz > > You wanna try it before I post it to the CPAN? >
Yep that works for me duder! :)
I'm not sure how I feel about the word duder. You submitted a few more patches after I applied the first one. Did you have any interest in a git checkout to make sure it has your latest changes? Or maybe edit right on github? https://github.com/jettero/net--imap--simple/blob/master/Simple.pm Otherwise I'm likely to (at a minimum) make sure it has that last debugging patch/change. -Paul On Mon Oct 07 12:31:50 2013, holborn-bitcard@drav.net wrote: Show quoted text
> On Mon Oct 07 11:56:05 2013, JETTERO wrote:
> > I posted the new version to http://jettero.pl/perl/Net-IMAP-Simple- > > 1.2203.tar.gz > > > > You wanna try it before I post it to the CPAN? > >
> > Yep that works for me duder! :) >
-- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
From: holborn-bitcard [...] drav.net
On Mon Oct 07 12:34:29 2013, JETTERO wrote: Show quoted text
> I'm not sure how I feel about the word duder.
It's from Bill & Ted's if memory serves! Show quoted text
> You submitted a few more patches after I applied the first one. Did > you have any interest in a git checkout to make sure it has your > latest changes?
Yeah I don't mind making the changes through git. Show quoted text
> > Or maybe edit right on github? > > https://github.com/jettero/net--imap--simple/blob/master/Simple.pm > > Otherwise I'm likely to (at a minimum) make sure it has that last > debugging patch/change.
Let me know, what ever is easier for you! Regards D.
Show quoted text
> Let me know, what ever is easier for you!
pull requests are easiest, obviously. But I never require it. -- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
Subject: Re: [rt.cpan.org #89296] top command fails with: warning unknown return string (id=4):
Date: Wed, 9 Oct 2013 13:24:26 +0100
To: Paul Miller via RT <bug-Net-IMAP-Simple [...] rt.cpan.org>
From: Drav Sloan <holborn-bitcard [...] drav.net>
Paul Miller via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=89296 > >
> > Let me know, what ever is easier for you!
> > pull requests are easiest, obviously. But I never require it.
I take it that's just a case of git cloning and then committing changes back on master [or a branch]? I've not used github before, but I at least have an account there now! (dravster) I managed to get as far as checking out, editing, but on a push to master I get an error: ERROR: Permission to jettero/net--imap--simple.git denied to dravster. Regards, D.
Show quoted text
> I take it that's just a case of git cloning and then committing > changes back > on master [or a branch]?
Nope. That's old school. With the new distributed source controls (git, hg, etc) there's no central repo. Everyone's checkout is a full complete central repo just as important as any other, aisde form one (like mine) that's the copy pushed to the CPAN. In fact, in git at least (can't speak to the others), every single branch is a same-importance central-repo and merging really actually works and should be a normal operation not to be avoided. Some people even make a branch for every new feature and merge the feature branches at the end. I've tried that and it's fun, but not my usual scatterebrained disorganized way of working and flitting around from topic to topic. Show quoted text
> ERROR: Permission to jettero/net--imap--simple.git denied to dravster.
What you do, if you want, is fork my repo on github (there's a button for this on the site), push your changes to that repo then tell github to send me a pull request, which I can review with their graphical tools and decide whether or not to merge or request further changes. It's a really neat setup, but I've only done this once... Since it's clearly intended for projects much larger than anything I work on. I can also pull directly from you on any other site. So maybe push your repo to gitorious or repo.or.cz -- literally anywhere I can get to it. And your pull request, then, is literally the english: "will you pull from http://mah.url/?" Or you can use git-pull-request to format the request formally (I'm not aware of anyone using this, but it exists.) You can also simply "git diff remotes/origin/master..master > my-stuff.patch" and post it here. I can merge that, but I lose the author information that you likely added to the commit. (I tend to add it back with the --author flag during the merge.) Choose git-format-patch to generate the patch in a git format that shows authorship and commit message as email headers. There's even built-in commands for sending patches and requesting pulls -- that as far as I know, only the linux kernel devs actually use; but I'd be willing to try. See also: git-format-patch, git-request-pull, git-send-email; reverse: git-apply, git-am, et al. -- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
On Wed Oct 09 08:54:04 2013, JETTERO wrote: Show quoted text
> > on master [or a branch]?
> > Nope.
Oh, sorry... Forgot to again say: this is all entirely optional. If it's fun, do it. If it's not, just post the patches, that's fine too. -- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
Subject: Re: [rt.cpan.org #89296] top command fails with: warning unknown return string (id=4):
Date: Wed, 9 Oct 2013 14:45:11 +0100
To: Paul Miller via RT <bug-Net-IMAP-Simple [...] rt.cpan.org>
From: Drav Sloan <holborn-bitcard [...] drav.net>
Paul Miller via RT wrote: Show quoted text
> > I take it that's just a case of git cloning and then committing > > changes back > > on master [or a branch]?
> > Nope. That's old school. With the new distributed source controls > (git, hg, etc) there's no central repo. Everyone's checkout is a full > complete central repo just as important as any other, aisde form one > (like mine) that's the copy pushed to the CPAN. In fact, in git at least > (can't speak to the others), every single branch is a same-importance > central-repo and merging really actually works and should be a normal > operation not to be avoided. Some people even make a branch for every new > feature and merge the feature branches at the end. I've tried that and > it's fun, but not my usual scatterebrained disorganized way of working > and flitting around from topic to topic.
Ah yeah, sounds very much like me to be 0ld sk00l :) Thanks for the info - very useful for a github newbie. Show quoted text
> > ERROR: Permission to jettero/net--imap--simple.git denied to dravster.
> > What you do, if you want, is fork my repo on github (there's a button > for this on the site), push your changes to that repo then tell github > to send me a pull request, which I can review with their graphical > tools and decide whether or not to merge or request further changes. > It's a really neat setup, but I've only done this once... Since it's > clearly intended for projects much larger than anything I work on.
Okay awesome, for the time being I went down your other suggested route of editing via the github webpages (it's created a patch-1 branch) - there should be a pull request winging it's way over to you :) Show quoted text
> I can also pull directly from you on any other site. So maybe push your > repo to gitorious or repo.or.cz -- literally anywhere I can get to it. > And your pull request, then, is literally the english: "will you pull > from http://mah.url/?" Or you can use git-pull-request to format the > request formally (I'm not aware of anyone using this, but it exists.)
That is rather funky, my experience of git was local clone + remote set in stone (in .git/config) origin. I'm planning at some point to final package up and CPAN release a module I've developed at work, so I imagine I'll have to work on my github-fu at that point! Show quoted text
> You can also simply "git diff remotes/origin/master..master > > my-stuff.patch" and post it here. I can merge that, but I lose the > author information that you likely added to the commit. (I tend to add it > back with the --author flag during the merge.) Choose git-format-patch > to generate the patch in a git format that shows authorship and commit > message as email headers.
And it also sounds like more legwork without the funky tools github offer. Show quoted text
> > There's even built-in commands for sending patches and requesting pulls -- that as far as I know, only the linux kernel devs actually use; but I'd be willing to try. > > See also: git-format-patch, git-request-pull, git-send-email; reverse: git-apply, git-am, et al.
Well I can't see me needing to go that far :) Hopefully the github web page submitted patch will be enough to get what you require :) D.
On Wed Oct 09 09:45:30 2013, holborn-bitcard@drav.net wrote: Show quoted text
> And it also sounds like more legwork without the funky tools github > offer.
Indeed. I just went to github and clicked [merge]. Well, I checked the diffs first to make sure it was as discussed. Easy peasy. -- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
Oddles of the tests nolonger pass now though. I'm slogging through it. -- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
I think the introduced bugs were due to handlers that handled other side effects of your more correct matching. I'm just going to leave it at that. This module is a mess. So I partially reverted the patch to include an incorrect behavior. I also changed \r\n to \x0d\x0a ... \r\n may not mean what you think. It definitely does not mean \x0d\x0a; that's a C way of thinking. -- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
Subject: Re: [rt.cpan.org #89296] top command fails with: warning unknown return string (id=4):
Date: Wed, 9 Oct 2013 16:21:30 +0100
To: Paul Miller via RT <bug-Net-IMAP-Simple [...] rt.cpan.org>
From: Drav Sloan <holbs [...] drav.net>
Paul Miller via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=89296 > > > Oddles of the tests nolonger pass now though. > > I'm slogging through it.
Ah oops, I must admit I didn't run it through the test suite :/ My bad (that what you get for trying to juggle 12 things at once and trying to rush things!). Need me to take a ganders? D.
On Wed Oct 09 11:21:53 2013, holbs@drav.net wrote: Show quoted text
> Need me to take a ganders?
Nope. I had some idea the cause (see previous nebulous comments). I kludged something up. The only thing I failed to do was check with you that my latest build actually works for you... it passes the tests... I posted it to the cpan already too. So if we still need to fix something, I think we should start a new ticket and version up to 1.2204. -- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.
CC: holborn-bitcard [...] drav.net
Subject: Re: [rt.cpan.org #89296] top command fails with: warning unknown return string (id=4):
Date: Thu, 10 Oct 2013 10:01:54 +0100
To: Paul Miller via RT <bug-Net-IMAP-Simple [...] rt.cpan.org>
From: Drav Sloan <holborn-bitcard [...] drav.net>
Paul Miller via RT wrote: Show quoted text
> Nope. I had some idea the cause (see previous nebulous comments). > I kludged something up. The only thing I failed to do was check with > you that my latest build actually works for you... it passes the tests...
Yes, that's worked nicely thanks. Cheers for your time on this Paul :) Show quoted text
> I posted it to the cpan already too. So if we still need to fix something, I think we should start a new ticket and version up to 1.2204.
Yep that's the version I downloaded and tested, Cheers again! D.
On Thu Oct 10 05:02:09 2013, holborn-bitcard@drav.net wrote: Show quoted text
> Cheers for your time on this Paul :)
:) I enjoy this work. The back and forth was entertaining. Thanks for your help. -- If riding in an airplane is flying, then riding in a boat is swimming. 116 jumps, 48.6 minutes of freefall, 92.9 freefall miles.