I have a third use case for replace:

3. Simultaneously developing a library and client for that library. For
example, if I have a library to access a network service or piece of
hardware and want to extend its API, I find that working on the client
along with the library helps me iterate to a good API. I use replace to get
that to work. But I think that newcomers to the language are unlikely to
run into that case either.

Jim

On Tue, Jan 12, 2021 at 9:26 AM 'Axel Wagner' via golang-nuts <
golang-nuts@googlegroups.com> wrote:

> On Tue, Jan 12, 2021 at 2:49 PM Kevin Chadwick <m8il1i...@gmail.com>
> wrote:
>
>> On 1/12/21 12:37 PM, Axel Wagner wrote:
>> > Again, would be interesting how other languages can make this simpler,
>> because I
>> > genuinely can't imagine.
>>
>> The issue is that I believe go avoids files in order to speed up
>> compilation.
>>
>
> I don't believe it is.
>
>
>> It's just I don't believe the replace directive was meant for this and
>> yet upon googling.
>
>
> I tend to agree. I still do not understand why you feel the need to use
> it. It has two fairly limited uses: 1. overwrite the dependency of one of
> your dependencies, e.g. to use a fork which contains critical patches you
> need. And 2. work with a local fork of a dependency, for experimentation
> (e.g. to find a bug or try out an unpublished API). Neither of these are
> things that should be encountered by newcomers to the language - or very
> often at all.
>
> If you are using replace as part of your regular workflow, I do agree that
> you are probably misusing it. It's just hard to understand why, from what
> you said so far (barring the "I don't have an internet connection and want
> to use something from my module cache" case, which I find surprising, if
> that's part of your regular workflow).
>
> It is the only way that I have found. mod
>> vendor doesn't seem to do what I want.
>>
>> They are fairly similar otherwise.
>>
>> Flutter create
>> open lib/main.dart
>> add import to file locations in any dart files where you wish to access
>> that
>> particular code (like in most languages)
>> add package to pubspec.yaml
>> IDE asks to run flutter pub get
>> add import referencing package where needed
>>
>> vs
>>
>> go mod init
>> edit .mod with weird replace line that links a domain to a file location
>> add import matching replace directive domain/url
>> go get package
>> add import for the package
>>
>> As I said. I should probably just set up a local git server and sync up
>> that
>> way. symlinks were only an issue in some programs and only when using
>> Windows too.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to golang-nuts+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/golang-nuts/8417466a-deb0-98f6-3635-3240278dbcc7%40gmail.com
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/CAEkBMfF6axmeHxYMecoHfR%2BhBVdto_froMGVswRYaoKYWodHnQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/golang-nuts/CAEkBMfF6axmeHxYMecoHfR%2BhBVdto_froMGVswRYaoKYWodHnQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAKYY9A%2BKrPwHSK00VjQcsyZoKxumaHWoR-pUi1Jww7hfRtijBA%40mail.gmail.com.

Reply via email to