Re: [racket-dev] [plt] Push #26693: master branch updated
On Tue, Sep 17, 2013 at 8:29 AM, Matthew Flatt mfl...@cs.utah.edu wrote: FWIW, for an individual file in a repo clone, you can follow history through the split by using `git log --follow`. But there's no way to do that in the GitHub web interface, as far as I know. Also rather frustratingly, there's no way to do this for a whole directory, I think. If anyone knows better, I'd love to know. Sam _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #26693: master branch updated
On Tue, Sep 17, 2013 at 9:53 AM, Greg Hendershott greghendersh...@gmail.com wrote: On Tue, Sep 17, 2013 at 8:29 AM, Matthew Flatt mfl...@cs.utah.edu wrote: I think the problem is the way that the release and development version numbers got out of sync for a while. Version 5.3.6 is derived fairly directly from v5.3.4 (and v5.3.5) by adding only a small set of bug-fix patches. Version 5.3.6 has almost nothing that was added in the v5.3.4.x development series. Ah. My (mis)understanding of the process was: My change was accepted and merged to `master` well before 5.3.5 was released, therefore my change will be in 5.3.5. (In fact at the time I thought, that's lucky timing, it will make it into 5.3.5!) But although that seemed to be how it worked for my few previous PRs (e.g. adding Markdown output to Scribble), it's not necessarily true. Is that correct? For the future: Is there something I could/should have done to ensure the change made it to release? (Or, was this just a window where such a change was unlikely to be accepted?) No, unfortunately, not. Because we have been in the middle of the big changes related to the package system, everything except essential bug fixes have not gone into any of the releases. And, FWIW, a more precise characterization of your second paragraph above is my change was accepted and merged to master before the release branch for release X happened. That would usually be sufficient. Robby _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #26693: master branch updated
On Tue, Sep 17, 2013 at 8:29 AM, Matthew Flatt mfl...@cs.utah.edu wrote: I think the problem is the way that the release and development version numbers got out of sync for a while. Version 5.3.6 is derived fairly directly from v5.3.4 (and v5.3.5) by adding only a small set of bug-fix patches. Version 5.3.6 has almost nothing that was added in the v5.3.4.x development series. Ah. My (mis)understanding of the process was: My change was accepted and merged to `master` well before 5.3.5 was released, therefore my change will be in 5.3.5. (In fact at the time I thought, that's lucky timing, it will make it into 5.3.5!) But although that seemed to be how it worked for my few previous PRs (e.g. adding Markdown output to Scribble), it's not necessarily true. Is that correct? For the future: Is there something I could/should have done to ensure the change made it to release? (Or, was this just a window where such a change was unlikely to be accepted?) The change should certainly have been in any 5.3.900.x or 5.90.x development version, though, so I can't explain how you got an error there. The explanation is I was completely wrong -- it's there. (I got confused last night while running several different versions of Racket on a couple different boxes.) I can see it in the source. Plus here's a quick/dirty test (one that doesn't need to mutate any real IMAP account). The error below is _good_ because it's a contract violation that 0 isn't `imap?`. Whereas on the old version it would have been an arity error, passing 4 to a func expecting 3: Welcome to Racket v5.90.0.9. - (require net/imap) - (imap-append 0 foo foo '()) ; imap-append: contract violation ; expected: imap? ; given: 0 ; in: the 1st argument of ; (-* ;(imap? string? (or/c string? bytes?)) ;((listof ; (or/c ; 'seen ; 'answered ; 'flagged ; 'deleted ; 'draft ; 'recent))) ;void?) ; contract from: pkgs/net-lib/net/imap.rkt ; blaming: top-level ; at: pkgs/net-lib/net/imap.rkt:21.2 tl;dr The change is definitely in HEAD. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #26693: master branch updated
After I saw this, I closed the open pull request over on GitHub: https://github.com/plt/racket/pull/324 BTW here is the commit over on GitHub: https://github.com/plt/racket/commit/c6e28435578b6b8607d4c767ee956f88c8388ff0 I fetched from HEAD at the time, verison 5.3.4.7. I've been using it on that server ever since. Today I wanted to move my app to a new server, which has 5.3.6 official. I was really confused that I got an error because imap-append has only 3 args not 4. My PR added the 4th, optional arg. Did this not get merged into release, after all?? Maybe I'm doing something really dumb, but...? p.s. I do see my changes as the last commit in collect/net/imap.rkt https://github.com/plt/racket/commits/c6e28435578b6b8607d4c767ee956f88c8388ff0/collects/net/imap.rkt and the scribbling collects/net/scribblings/imap.scrbl https://github.com/plt/racket/blob/c6e28435578b6b8607d4c767ee956f88c8388ff0/collects/net/scribblings/imap.scrbl This should have been in 5.3.5, as well as 5.3.6. But it doesn't seem to be in either (I just tried both). p.p.s. Post package split, I'm not sure how to follow the history. But searching for imap-append: https://github.com/plt/racket/search?q=imap-appendsource=c I do see my changes in pkgs/net-lib/net/imap.rkt https://github.com/plt/racket/blob/3ad009070e063614f22a32fbbffa950a8d84e599/pkgs/net-lib/net/imap.rkt#L21-L25 https://github.com/plt/racket/blob/3ad009070e063614f22a32fbbffa950a8d84e599/pkgs/net-lib/net/imap.rkt#L21-L25 and in the scribbling: https://github.com/plt/racket/blob/3ad009070e063614f22a32fbbffa950a8d84e599/pkgs/net-lib/net/imap.rkt#L21-L25 But I get a similar error running 5.900. On Tue, Apr 23, 2013 at 5:50 PM, mfl...@racket-lang.org wrote: mflatt has updated `master' from 8c7632c025 to c6e2843557. http://git.racket-lang.org/plt/8c7632c025..c6e2843557 =[ 2 Commits ]== Directory summary: 19.8% collects/net/scribblings/ 49.1% collects/net/ 9.1% collects/racket/private/ 21.8% src/racket/src/ ~~ 3779cf6 Matthew Flatt mfl...@racket-lang.org 2013-04-23 15:06 : | fix `exn:fail:filesystem:missing-module-path' : M collects/racket/private/kernstruct.rkt | 2 +- M src/racket/src/makeexn | 2 +- M src/racket/src/schexn.h| 2 +- M src/racket/src/schvers.h | 4 ++-- ~~ c6e2843 Greg Hendershott greghendersh...@gmail.com 2013-04-23 13:50 : | Add optional message flags argument to imap-append. | | Previously this was hard-coded to use the \Seen flag. Now that's the | default value when the argument is not supplied. : M collects/net/imap.rkt | 20 +--- M collects/net/scribblings/imap.scrbl | 5 - =[ Overall Diff ]=== collects/net/imap.rkt ~ --- OLD/collects/net/imap.rkt +++ NEW/collects/net/imap.rkt @@ -1,8 +1,9 @@ #lang racket/base -(require racket/contract/base - racket/tcp - openssl +(require racket/contract/base + racket/tcp + openssl + racket/format private/rbtree.rkt) ;; define the imap struct and its predicate here, for use in the contract, below @@ -16,7 +17,12 @@ [imap-list-child-mailboxes (-* (imap-connection? (or/c string? bytes? #f)) ((or/c string? bytes?)) - (listof (list/c (listof symbol?) bytes?)))]) + (listof (list/c (listof symbol?) bytes?)))] + [imap-append ((imap? string? (or/c string? bytes?)) + ((listof + (or/c 'seen 'answered 'flagged 'deleted 'draft 'recent))) + . -* . + void?)]) (provide imap-connection? @@ -45,7 +51,7 @@ imap-pending-updates? imap-get-messages - imap-copy imap-append + imap-copy imap-store imap-flag-symbol symbol-imap-flag imap-expunge @@ -539,13 +545,13 @@ (check-ok (imap-send imap (list COPY (box (msg-set msgs)) dest-mailbox) void))) -(define (imap-append imap dest-mailbox msg) +(define (imap-append imap dest-mailbox msg [flags '(seen)]) (no-expunges 'imap-append imap) (let ([msg (if (bytes? msg) msg (string-bytes/utf-8 msg))]) (check-ok (imap-send imap (list APPEND dest-mailbox - (box (\\Seen)) + (box (~a (map symbol-imap-flag flags))) (box (format {~a} (bytes-length msg void (lambda (loop contin) collects/net/scribblings/imap.scrbl ~~~ --- OLD/collects/net/scribblings/imap.scrbl +++ NEW/collects/net/scribblings/imap.scrbl @@ -416,7 +416,10 @@ Pending expunges must be handled before calling this function; see @defproc[(imap-append [imap imap-connection?] [mailbox string?] - [message