go Away()
-
-
@jazzyjosh said in go Away():
@thecpuwizard said in go Away():
Commits to Source Control (TFVC, Git, whatever) are blocked unless a build passes, and part of that build is to validate that every project has "All Warnings as Errors".
This is fucking dumb (at least for git). How are you supposed to save progress if what you're working on is borked and you have a emergency thing to do. Cloning to a different directory and stashing aren't necessarily good alternatives. This should be enforced on Pull Requests (or Push if you're using a non-forking workflow, but there really should be a filter on branches that allows you a way to do this on a path that merges are blocked on).
@jazzyjosh said in go Away():
@thecpuwizard said in go Away():
Commits to Source Control (TFVC, Git, whatever) are blocked unless a build passes, and part of that build is to validate that every project has "All Warnings as Errors".
This is fucking dumb (at least for git). How are you supposed to save progress if what you're working on is borked and you have a emergency thing to do. Cloning to a different directory and stashing aren't necessarily good alternatives. This should be enforced on Pull Requests (or Push if you're using a non-forking workflow, but there really should be a filter on branches that allows you a way to do this on a path that merges are blocked on).
Remember, Git was designed to facilitate isolation.... what I have been talking about is all about minimizing isolation :)
- Yes, for git, it would be more at the PR level (what is local is not real)
- Git Stash
-
@masonwheeler A surprising number of people seem to consider git and npm the holy grails of software, that improve everything they interact with. People who are otherwise very sensible. I don't understand it.
-
-
@masonwheeler said in go Away():
and begin to loathe git
assuming you don't already
Actually I don loathe Git.... For its original intended purpose (widely disconnected efforts with different goals and objectives) it is a fine philosophy....but I have yet to encounter that in normal "business" type work (i.e. the organization has a common set)
-
A surprising number of people seem to consider git and npm the holy grails of software
Those who consider npm the holy grail of software also consider JavaScript a very good programming language
-
@thecpuwizard Yeah, this is the thing that so many people don't get. Git is ideal for a project that you are not actually working on, and achieves this by being painful at the stuff you are actually working on.
-
@masonwheeler said in go Away():
@thecpuwizard Yeah, this is the thing that so many people don't get. Git is ideal for a project that you are not actually working on, and achieves this by being painful at the stuff you are actually working on.
My key indicator is that Git is most likely a WTF - if there is only a single remote and/or you are not accepting PR's from a variety of people over which there is no control (and in this sense a company controls every employee, consultant, contracto, etc.). When you start having multiple remotes (upstream repositories) and complex transition paths between them - then everything I have ever seen is actually worse than Git.
-
@thecpuwizard And even then, where it may have good features, it has the worst usability imaginable.
-
@thecpuwizard What would you use for a non-CLR project then? Certainly not TFS or SVN. Hg? Perforce?
-
@jazzyjosh While I for one would use TFS anyway, HG seems to be slightly more sane git, so maaaaaybe?
-
@jazzyjosh said in go Away():
@thecpuwizard What would you use for a non-CLR project then? Certainly not TFS or SVN. Hg? Perforce?
Why not TFS (or more likely VSTS so there is no server infrastructure to maintain)????
I have done many projects where all of the code is Linux, iOS, and even one MainFrame (Univac) Cobol.
-
@thecpuwizard I assumed it was p. tightly coupled with Visual Studio, but it looks like that might not be the case?
-
@jazzyjosh said in go Away():
@thecpuwizard I assumed it was p. tightly coupled with Visual Studio, but it looks like that might not be the case?
Not "Coupled" at all... Right now I am working on a Python on Ubuntu project. All code, work, bugs, builds, releases are in VSTS.
-
@jazzyjosh said in go Away():
@thecpuwizard What would you use for a non-CLR project then? Certainly not TFS or SVN. Hg? Perforce?
FWIW: at home I've been using Mercurial (via TortoiseHg) for all of my version control needs, many of which aren't software development projects. Works well enough without requiring an online service of some kind.
-
@parody - Not sure why you see an "online service" as a negative, but if you do, then simply use TFS rather than VSTS. I have run it one even my smallest laptops and tablets - often for non-software items like my photography and event planning.
-
@thecpuwizard said in go Away():
@parody - Not sure why you see an "online service" as a negative, but if you do, then simply use TFS rather than VSTS. I have run it one even my smallest laptops and tablets - often for non-software items like my photography and event planning.
It's a negative because I have no desire to share my personal projects online. Combine that with the variety of service breaches we've seen over the years, the very small amount of time I do work away from my local network (and the one machine with licensing for the more expensive software), and the amount of inertia to overcome before I'd change setups again* and I think I'll stay with what I have.
And yes, I keep multiple backups of my files.
* Before Mercurial I had pre-Git Perforce on a Windows 2000 Server machine that was built in the early 2000s. I only switched because I was building a new file server machine and didn't want to pay for a newer Windows Server license, so I decided to be all "open-sourcey". This was mostly a mistake, but I got everything working eventually.
-
@parody - Fair enough. But unless you have some very unusual personal projects, I doubt they would be of much interest if there was a breach. I would suspect that classified DoD projects [yes the security is authorized for that level] as well as the major Financial Companies and Manufactures would be more of the focus.
Also you do realize the (for up to 5 users on an account) VSTS is 100% FREE.
-
@thecpuwizard said in go Away():
@parody - Fair enough. But unless you have some very unusual personal projects, I doubt they would be of much interest if there was a breach. I would suspect that classified DoD projects [yes the security is authorized for that level] as well as the major Financial Companies and Manufactures would be more of the focus.
I agree that my projects are not likely to be interesting, but I'd still rather not needlessly have my personal stuff out there or worry about IP issues on projects for others.
@thecpuwizard said in go Away():
Also you do realize the (for up to 5 users on an account) VSTS is 100% FREE.
So were pre-Git Perforce, Subversion, Git, Mercurial, and Bazaar (all options I considered at the time). This was before Visual Studio Online/Team Services.
-
@boomzilla said in go Away():
Under your settings, the privacy section:
Hmm. Not restricted at all with that. I guess it must've just been @TheCPUWizard misinterpreting things.
-
@parody did you consider the Cascade of Poorly Named Zip Files VCS?
-
@thecpuwizard said in go Away():
Goal for build time is 90 seconds.
Don't make me have to clean my keyboard! (almost spewed my coffee!) Our builds take about 1.5 hrs on the build server (low powered VM). About 20 minutes locally.
Ours were opposite. 30 minutes on 32-core Xeon build server, and local build meant mobile i5 (2 HT cores).
-
@masonwheeler A surprising number of people seem to consider git and npm the holy grails of software, that improve everything they interact with. People who are otherwise very sensible. I don't understand it.
Tell me about that. I've had a job interview yesterday, and one of the things I was told about the project is that they use Perforce, there's no Git migration in progress and most likely there will never be. As if I care.
-
@boomzilla said in go Away():
Under your settings, the privacy section:
Hmm. Not restricted at all with that. I guess it must've just been @TheCPUWizard misinterpreting things.
-
@ben_lubar Well, I thought about it, but I figured I could use something a bit fancier in this day and age. SAVE "@0:AWESOMEPROG 06", 8 maybe?
-
@thecpuwizard said in go Away():
@boomzilla said in go Away():
Under your settings, the privacy section:
Hmm. Not restricted at all with that. I guess it must've just been @TheCPUWizard misinterpreting things.
Ah! I think we hid that menu. @dkf must have set that before we did. From my account at community.nodebb.org:
-
@boomzilla said in go Away():
Ah! I think we hid that menu. @dkf must have set that before we did.
Indeed.... so:
@dfk
I guess it must've just been @TheCPUWizard misinterpreting things.
Still dispute my prior statement of: your chat is set to DND ? Or perhaps were you the one "misinterpreting things"
-
@thecpuwizard You really hate any implication that you're not a genius don't you
-
@thecpuwizard You really hate any implication that you're not a genius don't you
#1 I have never claimed to be a genius
#2 I frequently make mistakes, some of them quite largeBut the point here is that I was going to chat DKF, and saw the DND. As can be seen from the screenshot I posted, there was the option to proceed anyway. But I did not, I respected that, and posted on the forum, including letting him know that DND was on.
His response was to turn that into a claim that I was possibly (based on a guess of his) "misinterpreting things".
False accusations (of even implications of them) is something I despise - regardless of who that are aimed against.
-
@thecpuwizard said in go Away():
His response was to turn that into a claim that I was possibly (based on a guess of his) "misinterpreting things".
False accusations (of even implications of them) is something I despise - regardless of who that are aimed against.ZOMG, cut it out you guys. It's a setting that went away years ago so no one remembers it, even though some people had it set to something before we nuked it.
-
@boomzilla said in go Away():
even though some people had it set to something before we nuked it.
It's possible I'd set things temporarily during the period when it went away? And once the menu was gone, I didn't have a way to set it back (that I could see; futzing around in the CSS/JS gets )
-
@ben_lubar said in go Away():
the Cascade of Poorly Named Zip Files VCS?
Closely related to the “send me an email with the current zip" DVCS…
-
Blargh. I just found out that the problems I've been having since yesterday with getting things to build are because when I checked out this new package from the repo, I checked it out to
$GOPATH/src
instead of$GOPATH/src/path/to/package/that/I/had/no/way/of/knowing/beforehand/
.Seriously, what kind of moron designed this whole system in the first place? Go was developed by (presumably) Very Smart People at Google; how did they get so many fundamental things wrong The entire concept of a
$GOPATH
is a massive that simply should not exist. It's a prime example of what Raymond Chen calls "using global state to solve a local problem." And then, just to double down on the , it uses the file system path under$GOPATH/src
to determine the namespace of your source code, rather than anything sensible like, oh, I don't know, declaring it in the file like every other language that uses hierarchical namespaces!Among other things, this means that it's not possible to have two different versions of the same code checked out at the same time (and have them both build correctly at least.)
Who thought this was a good idea
-
@masonwheeler said in go Away():
Among other things, this means that it's not possible to have two different versions of the same code checked out at the same time (and have them both build correctly at least.)
You can't specify
$GOPATH
when you build?
-
@boomzilla No, because that would make far too much sense. Instead, it's an environment variable.
-
@masonwheeler said in go Away():
@boomzilla No, because that would make far too much sense. Instead, it's an environment variable.
So: "Yes, you can change it when you build."
$ GOPATH=/my/gopath/ command-to-build-my-stuff
-
@boomzilla ...and then you just broke everything else, unless you're using a script that saves off the current value of
$GOPATH
and then restores it afterwards.That's the thing. This stupidity is by design. It's meant to have One GOPATH To Rule Them All, a global repository of all code and supporting packages on your system, and if you try to fight it, things break.
-
@masonwheeler said in go Away():
...and then you just broke everything else, unless you're using a script that saves off the current value of $GOPATH and then restores it afterwards.
That's not how it works (at least in bash, maybe other shells are different).
~/tdwtf$ cat ./echogopath.sh #!/usr/bin/env bash echo $GOPATH ~/tdwtf$ ./echogopath.sh ~/tdwtf$ GOPATH=FOO ./echogopath.sh FOO ~/tdwtf$ ./echogopath.sh
-
@boomzilla said in go Away():
@masonwheeler said in go Away():
Among other things, this means that it's not possible to have two different versions of the same code checked out at the same time (and have them both build correctly at least.)
You can't specify
$GOPATH
when you build?Given that it has
PATH
in the name (and comes from a Unix background), I'd expect it to contain a colon-separated list of places to find things in. If it was on Windows, the expected separator would be semicolon. Do they conform to that pattern or are they a horrible WTF?
-
@boomzilla huh. TIL.
-
@thecpuwizard said in go Away():
@jazzyjosh said in go Away():
@thecpuwizard I assumed it was p. tightly coupled with Visual Studio, but it looks like that might not be the case?
Not "Coupled" at all... Right now I am working on a Python on Ubuntu project. All code, work, bugs, builds, releases are in VSTS.
But git or TFS VC? VSTS defaults to the former.
-
@boomzilla said in go Away():
@masonwheeler said in go Away():
Among other things, this means that it's not possible to have two different versions of the same code checked out at the same time (and have them both build correctly at least.)
You can't specify
$GOPATH
when you build?Given that it has
PATH
in the name (and comes from a Unix background), I'd expect it to contain a colon-separated list of places to find things in. If it was on Windows, the expected separator would be semicolon. Do they conform to that pattern or are they a horrible WTF?Yes, they conform to that pattern. If you use
go get
to download a package, it downloads to the first entry in$GOPATH
.
-
@ben_lubar said in go Away():
Yes, they conform to that pattern. If you use
go get
to download a package, it downloads to the first entry in$GOPATH
.Essentially, the path can be a standard path, but Go still tries to pretend it's a single global whenever possible.
-
@masonwheeler said in go Away():
@ben_lubar said in go Away():
Yes, they conform to that pattern. If you use
go get
to download a package, it downloads to the first entry in$GOPATH
.Essentially, the path can be a standard path, but Go still tries to pretend it's a single global whenever possible.
What would you suggest they do instead? Download it to all the paths so you have a bunch of extra copies of the source code that it never looks at? Pick one at random?
-
-
@ben_lubar said in go Away():
What would you suggest they do instead?
Not have a global $GOPATH in the first place.
go get
should download dependencies to the dependencies folder of the current project, or return an error if the current directory is not part of a Go project.
-
@thecpuwizard said in go Away():
@jazzyjosh said in go Away():
@thecpuwizard I assumed it was p. tightly coupled with Visual Studio, but it looks like that might not be the case?
Not "Coupled" at all... Right now I am working on a Python on Ubuntu project. All code, work, bugs, builds, releases are in VSTS.
But git or TFS VC? VSTS defaults to the former.
Bot TFS and VSTS give you the choice, and it is not exclusive to one or the other. You can use both TFVC and Git in the same project if that is something that meets your needs.
Yes, the default is Git. There were really two possibities, NOT have a default (user must explicitly pick) or have one. Given the (for what ever reason "fanboyism" of Git, that was chosen)
-
@thecpuwizard said in go Away():
@thecpuwizard said in go Away():
@jazzyjosh said in go Away():
@thecpuwizard I assumed it was p. tightly coupled with Visual Studio, but it looks like that might not be the case?
Not "Coupled" at all... Right now I am working on a Python on Ubuntu project. All code, work, bugs, builds, releases are in VSTS.
But git or TFS VC? VSTS defaults to the former.
Bot TFS and VSTS give you the choice, and it is not exclusive to one or the other. You can use both TFVC and Git in the same project if that is something that meets your needs.
Yes, the default is Git. There were really two possibities, NOT have a default (user must explicitly pick) or have one. Given the (for what ever reason "fanboyism" of Git, that was chosen)
I know all that. You haven’t answered my question.
-
@masonwheeler said in go Away():
Not have a global $GOPATH in the first place.
Nobody's forcing you to use
go get
. Try dep. It sounds like what you want, and as an added bonus, its output is compatible withgo get
.
-
@ben_lubar 'Nobody's forcing you to use the tools provided to you by the language. Why not use some third-party tool to do this incredibly basic task the built-in tool claims to accomplish?'
At least Java has the excuse of not having a built in tool to fuck up.