Continuing in reverse order:

- My sense is that the switch to `make` so that it updates packages,
which was a result of

 http://lists.racket-lang.org/users/archive/2015-January/065345.html

has been a good change for most people most of the time.

The `as-is` target is currently available for building without updating
packages. I think it would make sense to introduce `make
as-is-the-default` to effectively change the default `make` target to
be `make as-is`. (And there would be `make with-update` to get the
current behavior of `make` after `make as-is-the-default`, plus `make
with-update-the-default` for completeness.)


- It makes sense to me to add a `--pull` option to `raco pkg update`
for specifying the behavior of the `git pull` step for linked clones. I
imagine that the default would be `--pull ff-only` for the current
behavior, while `--pull try` would ignore fast-forward failures. I
think I'd also like `--pull rebase`.

I'm skeptical that making `--pull try` the default would be a good
idea. People have trouble seeing warnings.


Would those changes work?


At Tue, 17 Feb 2015 10:38:43 -0500, Sam Tobin-Hochstadt wrote:
> I think there are two seperable issues here:
> 
> 1. Can we make `raco pkg update -a` better/more robust in this case?
> 
> 2. Should `make` run `raco pkg update -a`?
> 
> In reverse order:
> 
> - I think `make`, by default, shouldn't update anything, and that we
> should have a different Makefile target which updates things when
> people want that explicitly. The current behavior is especially
> problematic because it updates things that aren't in
> "main-distribution", meaning that it's making potentially arbitrary
> breaking changes to software on your computer (not just to core
> Racket).
> 
> This could be more inconvenient for someone working widely on core
> packages, but if they wanted the current behavior it would be just
> `make update` (or some other name) instead of `make`. As someone who
> does work on a lot of core packages, I'd prefer greater explicitness.
> 
> - I think `raco pkg update p` where `p` is a cloned package should
> only do anything if (a) the currently-checked-out branch is the one in
> the pkg source and (b) the `git merge --ff-only` command would
> succeed. Otherwise, I think it should just print a message and leave
> the repository as it is. I think that's what I wanted all the times
> that this operation has failed in my experience.
> 
> Sam
> 
> On Tue, Feb 17, 2015 at 9:54 AM, Robby Findler
> <[email protected]> wrote:
> > Sam and I have run into a situation where `make` fails because we've
> > set up clone pkgs and made local modifications in a way that makes the
> > git commands fail [*].
> >
> > My guess is that the right thing to do is for me to know about these
> > pkgs and do something special when running make. I'm thinking that I
> > could let make finish the initial steps until it gets to the step
> > where it updates the pkgs and then do the update step myself and then
> > run `make as-is`. But the problem with this is that I don't see what
> > command I can run that will update all of the pkgs except the
> > problematic ones. Like I could imagine a `raco pkg update
> > --all-except-clones` or something, but that feels a bit strange as
> > there could be other development modes that would also run into
> > similar problems. Maybe `raco pkg update
> > --all-things-from-this-catalog
> > <the-catalog-I-currently-get-main-distribution-from>` or something
> > along those lines is the way to go? In general, it seems right for me
> > to run some commands whose complications are roughly proportional to
> > the number of pkgs that I have installed as clones (and where I'm
> > actively developing them) but not to run some commands that require me
> > to do something special for each pkg that is installed.
> >
> > Any ideas? Or am I just missing the right command?
> >
> > Thanks,
> > Robby
> >
> > [*] In my case, in case this suggests a better/different approach to a
> > resolution: the `raco pkg update` step eventually gets to this git
> > command:
> >
> >   git merge --ff-only <sha1>
> >
> > where the <sha1> is the checksum from the pkg server, I believe. In my
> > case, this is a different branch than is currently checked in my
> > clone'd pkg and so the git merge command fails (and that command
> > failing seems like the right behavior for the setup I'd like to be
> > able to use).
> >
> > --
> > You received this message because you are subscribed to the Google Groups 
> "Racket Developers" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> > To post to this group, send email to [email protected].
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-dev/CAL3TdONOjL3_y8U_A1ZUoz_1Z%3DE3HjV
> V8by9e%2B2dS-W2mc51pg%40mail.gmail.com.
> > For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-dev/CAK%3DHD%2BbYrWHAxWssmvXFA%2BA0tco
> 2RDAXwORQj_iwOq%3DpYXzZOA%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/20150217180324.56E066501AA%40mail-svr1.cs.utah.edu.
For more options, visit https://groups.google.com/d/optout.

Reply via email to