Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
ThePeavstenator
Dec 18, 2012

:burger::burger::burger::burger::burger:

Establish the Buns

:burger::burger::burger::burger::burger:

Chalks posted:

there's a guy on our team who runs a script to list branches each time we do a release and asks anyone who's got a branch wtf is going on with it. the idea is to avoid accidentally missing features that are meant to be in the release but didn't get merged, but it also means we have very few stale branches

kinda gotta do that from the start though!

We're stopping the bleeding right now. The rot is mostly confined to our old services/repos and new repos look nice so people are motivated to keep them clean, so while we have some clean up to do it's not getting worse.

Adbot
ADBOT LOVES YOU

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

AWWNAW posted:

could you post some prolog for day 16? been thinking of trying it in miniKanren

sure but it was nothing special, mostly me being cute. it was just about generating some prolog facts with a script.

Shaggar
Apr 26, 2006

DONT THREAD ON ME posted:

i thought scala was big and complicated and full of warts (and it is) but C++ is on another level.

c++ has the excuse of being ancient. the people working on scala should have known better

FlapYoJacks
Feb 12, 2009
When I started the process of cleaning up and standardizing my team's development structure, I pushed hard for a consistent and repeatable git branch structure.

All branches must have the ticket name in them.
All branches must have the developers name in them.
All branches must first be merged with the develop branch before submitting a pull request.
All pull requests have to pass CI before being accepted.
All new code must have at least 80% test coverage.
All pull requests must only do one thing, and that 1 item must be done thoroughly.
If the pull request is below 100 lines of code, only one developer has to review and approve it.
If the pull request is above 100 lines of code, two developers must review and approve the code.

For C++:
CI also include a Valgrind check, although at this point it’s customary, as all C++ code must adhere to RAII.
Pull requests must not introduce any new compiler warnings.

For Python:
Flake8 must be satisfied.
PEP8 must not produce a score below 9.0.

Deployment:
Two days before the end of the sprint, develop is pushed to staging, and staging is built and pushed to the staging server, where our testing guys test it for two days. If approved, the code is pushed to master and tagged with a version.

Versions are: YYYY.MM-Release

It took around eight months to get everything into an excellent order like that, but in the end, it makes everything much more comfortable.

I don't know if this is all gold practice, but it seems to work well for is. :unsmith:

ThePeavstenator
Dec 18, 2012

:burger::burger::burger::burger::burger:

Establish the Buns

:burger::burger::burger::burger::burger:

ratbert90 posted:

Versions are: YYYY.MM-Release

It took around eight months to get everything into an excellent order like that, but in the end, it makes everything much more comfortable.

I don't know if this is all gold practice, but it seems to work well for is. :unsmith:

This all sounds real good. Versions are coming up on my list. We have a microservice architecture but talk internally about versions according to what marketing tags our customer release updates with. We're pretty good about being able to deploy rapidly and other remote teams in our company working on other software products consume our services, so being able to version services either based on API updates or even just builds would be a huge improvement.

gonadic io
Feb 16, 2011

>>=

Shaggar posted:

c++ has the excuse of being ancient. the people working on scala should have known better

listening to odersky talk about how he tried to make scala as minimal as possible was...interesting. i think it's more that all of scala's features overlap heavily than there specifically being a lot of them

Dijkstracula
Mar 18, 2003

You can't spell 'vector field' without me, Professor!

Shaggar posted:

c++ has the excuse of being ancient. the people working on scala should have known better

that's academia for ya

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Soricidus posted:

the "git revert" command is right there and does the right thing. it’s not git's fault if someone tries to open a can of beans with a bazooka

it is when the can opener and the bazooka are right next to each other, look identical, have similar inscrutable labels, and it turns out you can use the bazooka as a can opener if you toggle the right switch first (ditto for using the can opener as a bazooka)

git: take my penknife my good man
user: *destroys tank*

Soricidus
Oct 21, 2010
freedom-hating statist shill

pokeyman posted:

have similar inscrutable labels

what alternative label would have been less inscrutable than “revert”, for the command that reverts changes?

I’ll give you “rebase” being inscrutable, but the kind of person who says “hmm, I don’t know what this command name means and I don’t understand the documentation, guess I’ll run it anyway and then ignore all the warnings to force push the changes” is going to break things horribly whatever tool you give them

Arcsech
Aug 5, 2008

Soricidus posted:

I’ll give you “rebase” being inscrutable, but the kind of person who says “hmm, I don’t know what this command name means and I don’t understand the documentation, guess I’ll run it anyway and then ignore all the warnings to force push the changes” is going to break things horribly whatever tool you give them

I worked with a dude once who managed to merge a branch into itself and gently caress it all to hell

not like, from a remote or anything. just merged a local branch into itself and caused every single line to conflict. I couldn’t do that on purpose

Dijkstracula
Mar 18, 2003

You can't spell 'vector field' without me, Professor!

at my first job as a git-toucher I somehow managed to get a merge conflict with myself

darthbob88
Oct 13, 2011

YOSPOS

ratbert90 posted:

When I started the process of cleaning up and standardizing my team's development structure, I pushed hard for a consistent and repeatable git branch structure.

[...]
All branches must first be merged with the develop branch before submitting a pull request.
All pull requests must only do one thing, and that 1 item must be done thoroughly.
[...]

It took around eight months to get everything into an excellent order like that, but in the end, it makes everything much more comfortable.

I don't know if this is all gold practice, but it seems to work well for is. :unsmith:
I agree with most of this, but what do you mean by "All branches must first be merged with the develop branch"? I need to merge master/testing/staging into darthbob88-#42069-ButtsNotFarting before I make a PR?

And I'm angry about that "only one thing, thoroughly" rule because I had to do so many PRs that are just "added a little right margin and made the text a little larger", followed by "too much right margin and text not large enough". I almost started charging fingers every time somebody said "just one more change".

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Soricidus posted:

what alternative label would have been less inscrutable than “revert”, for the command that reverts changes?

I’ll give you “rebase” being inscrutable, but the kind of person who says “hmm, I don’t know what this command name means and I don’t understand the documentation, guess I’ll run it anyway and then ignore all the warnings to force push the changes” is going to break things horribly whatever tool you give them

I was thinking of "revert" vs. "reset", which are similar in English (sometimes synonyms), but their effects in git are quite different in a way that’s inscrutable without useful documentation

and no, git help is not useful documentation until you have a working knowledge of git internals

I’m with you to a point about people running commands they don’t understand. but there are hundreds of commands/tools I might use in a typical week of software development, and I don’t know details about their internal workings, and I don’t know what every subcommand is, yet I manage to use them successfully. we’re a bit past the days where everyone running the command has at some point perused the source code that implements that command

feedmegin
Jul 30, 2008

Soricidus posted:

the "git revert" command is right there and does the right thing. it’s not git's fault if someone tries to open a can of beans with a bazooka

What kind of cheap rear end beans are you buying in TYOOL 2019 that don't have a ringpull anyway? :colbert:

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


Dijkstracula posted:

at my first job as a git-toucher I somehow managed to get a merge conflict with myself

this should be on eof those "programmer achievements"

though iirc it's easy to do this with just a csproj file if you add and remove files from the solution in two different branches


also we have a release branch for the month's work, everything is checked into that. pretty sure I'm the only person that knows how to create a feature branch off it to actually separate changes and there's definitely no way anyone else knows what a rebase is

FlapYoJacks
Feb 12, 2009

darthbob88 posted:

I agree with most of this, but what do you mean by "All branches must first be merged with the develop branch"? I need to merge master/testing/staging into darthbob88-#42069-ButtsNotFarting before I make a PR?

And I'm angry about that "only one thing, thoroughly" rule because I had to do so many PRs that are just "added a little right margin and made the text a little larger", followed by "too much right margin and text not large enough". I almost started charging fingers every time somebody said "just one more change".

All new branches during the sprint are forked from Develop, as such, Develop needs to be guaranteed to build and pass CI.
We ran into problems in the past where we would get merge conflicts with develop immediately after a pull request is set up. So now the rule is that before a pull request to develop is made, the developer has to run “git merge develop” first.

As to your second point:
Doing one thing but doing it completely may be a hassle for some things, it makes being able to revert a million times easier.

darthbob88
Oct 13, 2011

YOSPOS

ratbert90 posted:

All new branches during the sprint are forked from Develop, as such, Develop needs to be guaranteed to build and pass CI.
We ran into problems in the past where we would get merge conflicts with develop immediately after a pull request is set up. So now the rule is that before a pull request to develop is made, the developer has to run “git merge develop” first.

As to your second point:
Doing one thing but doing it completely may be a hassle for some things, it makes being able to revert a million times easier.
OK, not quite as bad as I'd feared. And yeah, totally agree that it's the right way to go, I'm just angry because I couldn't insist on doing it.

Chalks
Sep 30, 2009

ratbert90 posted:

All new branches during the sprint are forked from Develop, as such, Develop needs to be guaranteed to build and pass CI.
We ran into problems in the past where we would get merge conflicts with develop immediately after a pull request is set up. So now the rule is that before a pull request to develop is made, the developer has to run “git merge develop” first.

As to your second point:
Doing one thing but doing it completely may be a hassle for some things, it makes being able to revert a million times easier.

We have a similar set up but we don't worry about pull requests with merge conflicts, vsts won't let a pr complete if it has conflicts so it's basically the same as any other pr feedback.

Soricidus
Oct 21, 2010
freedom-hating statist shill

pokeyman posted:

I was thinking of "revert" vs. "reset", which are similar in English (sometimes synonyms), but their effects in git are quite different in a way that’s inscrutable without useful documentation

oh, yeah, reset is very poorly named (half its functionality isn’t even related to resetting things)

really git needs to disable all but the common useful commands by default, and hide the others until you explicitly enable them. preserve all the useful functionality but make it clearer when you’re straying into areas where it’s easy to gently caress things up if you don’t know what you’re doing.

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.
re: stale branches....

What if the main stable and dev branches are actually the stale branches?

Our Russian outsourcers haven't merged any feature branches into the main develop branch in over a month, and nothing has been merged into master (supposed to be stable) branch in over 3 months. Did a little more digging and found "feature" branches for each client (we are a client).

The way they architected this was as a framework they could use as a submodule for infinite client repos. Well, now every client has its own bespoke feature branch in the framework, so there really is no framework anymore... just a maze of twisty branches, none alike.

I have stopped accepting any commits from them, and we're also pushing back on the 1000(!) hours they charged us the last billing cycle even though they barely made any updates at all to our branch.

Corla Plankun
May 8, 2007

improve the lives of everyone
lmfao how dumb does a person have to be to outsource to the country that literally has the longest-standing unresolved grudge with us of all of the countries on the planet (aside from the native peoples of course)

Corla Plankun fucked around with this message at 18:18 on Jan 7, 2019

gonadic io
Feb 16, 2011

>>=

Corla Plankun posted:

lmfao how dumb does a person have to be to outsource to the country that literally has the longest-standing unresolved grudge with us of all of the countries on the planet (aside from the native peoples of course)

Brits outsource to India all the time :q:

FlapYoJacks
Feb 12, 2009

Chalks posted:

We have a similar set up but we don't worry about pull requests with merge conflicts, vsts won't let a pr complete if it has conflicts so it's basically the same as any other pr feedback.

This rule is pretty archaic. In the beginning, we were in dumpster-fire fixing mode, and it wasn't uncommon to have 20 - 50 merge conflicts.

Also, it wasn't uncommon to see pull requests attempt to fix 20 things and have 5,000+ lines of code change in them.

Nowadays the product is incredibly stable with a modern, RAII/C++17 code base and pull requests are generally in the 100 - 200 lines of code changed range.

The big thing right now is re-architecting the project. Right now it builds everything into static libraries, we are going to move that over to shared libraries pretty soon.

FlapYoJacks fucked around with this message at 18:50 on Jan 7, 2019

fritz
Jul 26, 2003

feedmegin posted:

What kind of cheap rear end beans are you buying in TYOOL 2019 that don't have a ringpull anyway? :colbert:

ive pulled the ring straight off while trying to open cans o beans

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Corla Plankun posted:

lmfao how dumb does a person have to be to outsource to the country that literally has the longest-standing unresolved grudge with us of all of the countries on the planet (aside from the native peoples of course)

lol yeah I know and now I just got done dealing with a piss baby rant from the CEO about how we need crunch mode to get anything done. I told him flat out we're not going to do crunch mode (CTO said the same thing or lol I'd prob be gone), which kicked off the aforementioned ranting.

I'm so glad I'm in a startup. startups are really great and so much better than dealing with lovely enterprise management because

dick traceroute
Feb 24, 2010

Open the pod bay doors, Hal.
Grimey Drawer
Last time we did crunch mode we did it voluntarily, but for a Mon-Thu with Friday off
One person worked a literal 2 hours extra and took Friday off anyway. They no longer work at my company.
Good riddance (not for the slacking, but for the being really useless and irritating to work with)

FlapYoJacks
Feb 12, 2009

dick traceroute posted:

Last time we did crunch mode we did it voluntarily, but for a Mon-Thu with Friday off
One person worked a literal 2 hours extra and took Friday off anyway. They no longer work at my company.
Good riddance (not for the slacking, but for the being really useless and irritating to work with)

Lol I work 4 days a week at my company. I always plan my sprints to give me just enough to do for 30 hours a week and I am more productive than when I was working 60+ hours a week at my previous company.

gently caress working 40 hours a week for another company, I will never EVER do it again.

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

ratbert90 posted:

Lol I work 4 days a week at my company. I always plan my sprints to give me just enough to do for 30 hours a week and I am more productive than when I was working 60+ hours a week at my previous company.

gently caress working 40 hours a week for another company, I will never EVER do it again.

Yeah, now I just gotta explain this to the CEO. I emailed him a list of "overtime hurts productivity" articles and he immediately responded with "I read them". Speedreader?? Anyway, he apologized for "getting fired up" but not for asking for overtime.

I've been off my anti-anxiety meds for a number of months, but feel like I'm really close to having a panic attack...

Soricidus
Oct 21, 2010
freedom-hating statist shill

feedmegin posted:

What kind of cheap rear end beans are you buying in TYOOL 2019 that don't have a ringpull anyway? :colbert:

it’s a git analogy, I’m not going to pick something that obvious and convenient

FlapYoJacks
Feb 12, 2009

Finster Dexter posted:

Yeah, now I just gotta explain this to the CEO. I emailed him a list of "overtime hurts productivity" articles and he immediately responded with "I read them". Speedreader?? Anyway, he apologized for "getting fired up" but not for asking for overtime.

I've been off my anti-anxiety meds for a number of months, but feel like I'm really close to having a panic attack...

Stop giving a poo poo and don't take anything personally. It's just business, and if it's not working out, then jump ship.


Got an email a few days of which I ignored:

quote:

"Hi Adam,

I am representing a candidate who is confidentially looking for a new opportunity and could be a fit for you in your area! Can I send them your resume?"

Got a email today:

quote:

"Hi Adam;

Please disregard the previous message as I am already working with ${PREVIOUS_COMPANY}. Have a great evening!

Thanks,
Tommy"

The gift that keeps on giving. :allears: This is now month 7 and they are still searching for a replacement.

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

ratbert90 posted:

Stop giving a poo poo and don't take anything personally. It's just business, and if it's not working out, then jump ship.

Well some of the stuff he said I'm pretty sure it was meant personally...as in I'm not working hard enough, etc. It's also hard not to give a poo poo unless I'm at a big company. At this startup, if I leave they will probably just die, and the product is interesting and fulfilling work... ignoring the Russians and CEO rants.

I'm not saying you're wrong, I'm just trying to process I guess.

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


hoooo boy our ancient wiki platform that uses some weirdo code base from 2002 with custom mods on top got assigned to me as system owner because they canned the previous guy and there's 2gb of text stored in it dating back nearly 15 years. nobody knows how it works.

in theory we're all supposed to be on confluence but oh look, the grognards in the c++ corner are still actively using it and making updates

i think I'm gonna change the logo gif to the get out frog and see who complains.

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder
eschaton there is no reasonable way to get vim-mode in my xcode. i hold you personally responsible, as an emacs fan you should appreciate the importance of extensibility.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
You should make a deprecation and turndown plan, and send it to everyone (especially the c++ grognards).

After about a month of no-one actually looking at the plan, then you can start switching the system off using your previously-written plan (that no-one objected to) as justification.

Shaggar
Apr 26, 2006

DONT THREAD ON ME posted:

eschaton there is no reasonable way to get vim-mode in my xcode. i hold you personally responsible, as an emacs fan you should appreciate the importance of extensibility.

that's one design feature I can get behind

Carthag Tuek
Oct 15, 2005
Probation
Can't post for 3 hours!
yeah you're always behind :xd:

MrMoo
Sep 14, 2000

Anyone use Veracode because :lol:

After smashing CI with way too many builds I get a 17 page report that appears to be utterly incorrect. Half a dozen signed/unsigned comparison errors on what are just lines with function calls in, and this single piece of code, which is apparently a severe numeric error:

C++ code:
poll_tv.tv_usec = delay.InMicroseconds() % Time::kMicrosecondsPerSecond;
That's even copied from :chome:

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


Jabor posted:

You should make a deprecation and turndown plan, and send it to everyone (especially the c++ grognards).

After about a month of no-one actually looking at the plan, then you can start switching the system off using your previously-written plan (that no-one objected to) as justification.

this is exactly the plan I had in mind

turns out on digging around we have shitloads of orphaned databases being kept for no reason and an unbelievable amount of trash in the shared svn instance, like, somebody just imported a lost and found folder from clearcase to svn 6 years ago and left it full of thousands of temp files

i know 100% that I am the only person that cares about any of this which is probably what pissed me off the most

edit: one team have been using svn to store emails containing requirements, random documents, all sorts of crap

Falcorum
Oct 21, 2010

Finster Dexter posted:

lol yeah I know and now I just got done dealing with a piss baby rant from the CEO about how we need crunch mode to get anything done. I told him flat out we're not going to do crunch mode (CTO said the same thing or lol I'd prob be gone), which kicked off the aforementioned ranting.

I'm so glad I'm in a startup. startups are really great and so much better than dealing with lovely enterprise management because

If it's any comfort, it happens elsewhere and even with regular non C level coworkers being the source of that dumb poo poo.
I work at an AAA games company (yayyyyyyyy) and had a department lead (not my department) try to get higher ups to force me to work overtime (they just went uwot when asked), because we had been working on something for months and he kept going back and forth on what he wanted and suddenly we were a few days away from release. He only shut up and stopped with that crap when I told everyone involved that if I were to do overtime for that piece of poo poo of a person, I'd quit the next day.

I no longer work with that guy directly (HR got involved in the end and told him to gently caress off), but it sounds similar to your situation (demeaning work done; implying not pulling my own weight; etc).

People can be cunts and if it reaches a point where it's stressing you out, you're better off jumping ship if you can. You don't owe your employer anything more than the work you've already done.

Adbot
ADBOT LOVES YOU

Soricidus
Oct 21, 2010
freedom-hating statist shill

Powerful Two-Hander posted:

an unbelievable amount of trash in the shared svn instance

please stop talking about my life’s work

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply