Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "hotfix"
-
No one dare deploy anything the week before Christmas - no fucking way I'm writing a hotfix under the Christmas tree again this year
-
I am really sorry to inform you guys that I fucked up the notifications of v1.3.1. You might not have noticed it but it doesn't update the notifications correctly sometimes.
I would urge the existing users to update the app to v1.3.3 which is the most stable version right now.15 -
"I'm just trying to replicate {ticket-1234} so I can write a quick hotfix."
- "Oh, it doesn't work on dev."
- "So... I have to test on stage?"
- "It doesn't work on stage either."
- "Uh, on prod?"
*office laughs*
We're doing it live folks.2 -
this.title = "gg Microsoft"
this.metadata = {
rant: true,
long: true,
super_long: true,
has_summary: true
}
// Also:
let microsoft = "dead" // please?
tl;dr: Windows' MAX_PATH is the devil, and it basically does not allow you to copy files with paths that exceed this length. No matter what. Even with official fixes and workarounds.
Long story:
So, I haven't had actual gainful employ in quite awhile. I've been earning just enough to get behind on bills and go without all but basic groceries. Because of this, our electronics have been ... in need of upgrading for quite awhile. In particular, we've needed new drives. (We've been down a server for two years now because its drive died!)
Anyway, I originally bought my external drive just for backup, but due to the above, I eventually began using it for everyday things. including Steam. over USB. Terrible, right? So, I decided to mount it as an internal drive to lower the read/write times. Finding SATA cables was difficult, the motherboard's SATA plugs are in a terrible spot, and my tiny case (and 2yo) made everything soo much worse. It was a miserable experience, but I finally got it installed.
However! It turns out the Seagate external drives use some custom drive header, or custom driver to access the drive, so Windows couldn't read the bare drive. ffs. So, I took it out again (joy) and put it back in the enclosure, and began copying the files off.
The drive I'm copying it to is smaller, so I enabled compression to allow storing a bit more of the data, and excluded a couple of directories so I could copy those elsewhere. I (barely) managed to fit everything with some pretty tight shuffling.
but. that external drive is connected via USB, remember? and for some reason, even over USB3, I was only getting ~20mb/s transfer rate, so the process took 20some hours! In the interim, I worked on some projects, watched netflix, etc., then locked my computer, and went to bed. (I also made sure to turn my monitors and keyboard light off so it wouldn't be enticing to my 2yo.) Cue dramatic music ~
Come morning, I go to check on the progress... and find that the computer is off! What the hell! I turn it on and check the logs... and found that it lost power around 9:16am. aslkjdfhaslkjashdasfjhasd. My 2yo had apparently been playing with the power strip and its enticing glowing red on/off switch. So. It didn't finish copying.
aslkjdfhaslkjashdasfjhasd x2
Anyway, finding the missing files was easy, but what about any that didn't finish? Filesizes don't match, so writing a script to check doesn't work. and using a visual utility like windirstat won't work either because of the excluded folders. Friggin' hell.
Also -- and rather the point of this rant:
It turns out that some of the files (70 in total, as I eventually found out) have paths exceeding Windows' MAX_PATH length (260 chars). So I couldn't copy those.
After some research, I learned that there's a Microsoft hotfix that patches this specific issue! for my specific version! woo! It's like. totally perfect. So, I installed that, restarted as per its wishes... tried again (via both drag and `copy`)... and Lo! It did not work.
After installing the hotfix. to fix this specific issue. on my specific os. the issue remained. gg Microsoft?
Further research.
I then learned (well, learned more about) the unicode path prefix `\\?\`, which bypasses Windows kernel's path parsing, and passes the path directly to ntfslib, thereby indirectly allowing ~32k path lengths. I tried this with the native `copy` command; no luck. I tried this with `robocopy` and cygwin's `cp`; they likewise failed. I tried it with cygwin's `rsync`, but it sees `\\?\` as denoting a remote path, and therefore fails.
However, `dir \\?\C:\` works just fine?
So, apparently, Microsoft's own workaround for long pathnames doesn't work with its own utilities. unless the paths are shorter than MAX_PATH? gg Microsoft.
At this point, I was sorely tempted to write my own copy utility that calls the internal Windows APIs that support unicode paths. but as I lack a C compiler, and haven't coded in C in like 15 years, I figured I'd try a few last desperate ideas first.
For the hell of it, I tried making an archive of the offending files with winRAR. Unsurprisingly, it failed to access the files.
... and for completeness's sake -- mostly to say I tried it -- I did the same with 7zip. I took one of the offending files and made a 7z archive of it in the destination folder -- and, much to my surprise, it worked perfectly! I could even extract the file! Hell, I could even work with paths >340 characters!
So... I'm going through all of the 70 missing files and copying them. with 7zip. because it's the only bloody thing that works. ffs
Third-party utilities work better than Microsoft's official fixes. gg.
...
On a related note, I totally feel like that person from http://xkcd.com/763 right now ;;21 -
Boss: Where's that urgent hotfix that we needed last week???
*mutters to myself* Still in your inbox, seeking approval before I can put it into production -
Testing a raspberry pi 4 as a computer driving our 4k dashboards' screen. Temperatures are constantly 80-90C.
Me: STEP ASIDE! MAKE WAY FOR A HOTFIX!
Rpi: aaahhh, 42C -- now we're talkin!8 -
We got married and started our relationship at 1.0. After our first argument, we managed to patch things up, so it wouldn't all break down: 1.0.1
Same night, I suggested a sexy new feature, and we worked up a good sweat implementing it together.
I got too excited and released prematurely: 1.1.0
After that, she was a bit cross, but then I suggested a hotfix. She agreed and got right on top of it. After a few minutes she finished and managed a release as well: 1.1.1 😏4 -
One of the biggest reality checks you will run into when starting your first dev related job - and which they don't teach you about in school - is that a lot of the time will be spent working with other people's code, and rewriting it into "your own" is rarely an option.
You might be super into making things, but not everyone manages to maintain that same spark while taking over a 15 year old project with fundamental issues that have to be triaged "for now" because you need a hotfix on this other specific thing out in prod before lunch.
There are no gods now. They left the company years ago and nobody knows why they used the windows registry as a user repo.3 -
Finding a bug as a developer: "Fuck..." *start working on an undocumented hotfix that breaks other parts of the application"
Finding a bug as a tester: "Yeah, right.." *start writing a comprehensive report including all possible failure scenarios and how world famine will increase and men develop boobs if this bug is shipped into production"
Finding a bug as a PM: "Well, the other parts work, right ?" *click randomly on nearby buttons and input fields to "check" if everything is all right. Ditch said report from tester*3 -
Deadline for tomorrow. All I see in my head is:
HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX HOTFIX2 -
"I can't replicate it therefore your hotfix for the customer shouting at you is unnecessary"
WTF?! I had to lead this guy to the records where I'd replicated it myself in both the customer system and the demo one! There's a real sense that the core dev team in this place automatically disregards what the rest of us say (support had already mentioned it was replicable but clearly hadn't realised that they needed to spoon-feed this guy).
This place has a huge silo problem, glad I'm not staying much longer...
edit: these tags shouldn't be reordering themselves, not cool16 -
That moment when you realise you just pushed a major bug whilst fixing another to the production website that launched earlier today.
Rolled back to working version, all within 30 seconds.
10 seconds later, client on phone... I just tried to load a page, why is my website broken?
They had to be loading it in that 30 seconds didn't they...?3 -
//Quickfix
//TODO: Buy a replacement switch and fix it in the proper way
Narrator: he never bought the replacement1 -
My manager thinks I am Superman! and he is so confident that can do any shit he wants me to do.
Yesterday he asked me to merge an ancient code hotfix (literally ancient) with latest branch of changes.
1. Hotfix is really old, most of the things are hardcoded, very specific to a stone age client.
2. Code documentation does not exist.
3. Developers of that code are probably dead.
4. Many Libraries which code uses are deprecated.
5. It's a legacy code, so no one has fucking idea what a particular clumsy block of code do, or what will happen if you remove it.
'if it runs don't touch it' policy by management.
Despite all this shit I successfully merged the the hotfix, refactored outdated code so as to run the application.
Showed this to my manager in full swag!
He was surprised at first, and asked me to show the code changes.
'Code review' was done by comparing files 😅
Manager: Dude, you have changed these lines, why? Explain.😧
Me: those lines won't work with new build, with new libs.☺️
Manager: then why can't you do old build with new changes?🙄
Me: umm.. wait... what???🤔
Manager: the code was working previously, it must be working even today without these changes.😡
Me: it was not working hence I made changes and now it's working fine see! ☺️
Manager: you have removed this, this and this!!! 😡
Me: but I also added that, that and that!😔
Manager: "don't touch it' if it works!"😡
Me: ... Idk what to say!
(In the back of my mind: "Don't touch it even it doesn't works!")😌8 -
There is a company providing a very speciffic service. And it has a core application for that svc, supported by a core app team.
That company also has other services, which are derivations of the core one. So every svc depends on core.
Now that we're clear on that... I was working in a team of one of the subservices. We very strongly depended on core. In fact, our svc was useless if integration w/ core broke down.
The core team had an annoying habbit. They refused to version their webservices and they LOVED to push api updates w/o any warnings. Our prod, test, other envs used to fail bcz of core api changes quite often. Mgmt, IT head was aware of the problem and customers' complaints as well.
So as a result, once core api changes we're all in a panic mode: all prior priorities are lowered and revival of prod is to be our main focus. Core api is not docummented, the changes are not clear, so we have to reverse engineer the shit out of it. We manage to patch our prod up w/ hotfixes, but now we have tech debt. While working on the debt, core api changed again, in test env. Mgmt pushes debt back and reallocates us to hotfix test. Hotfix is 80% done when another core api breaks. Now mgmt asks us to drop wtv we're working on and fix that new break. By the time we're to deploy the hotfix, another api breaks in another env. The mgmt..... You get the picture :)
2 years go by, nothing has changed so far.6 -
Name of the branches in a git repository are like
dev
dev-branch
dev-hotfix
dev-test
dev-merge
dev-app
dev-com
dev-com
dev-ref
dev-staging
dev-username1
dev-username2
dev-username3
.
.
.
.
.
.
Master -
I'm honestly so pissed at my product manager right now. He made me stay in the office till 10PM because his stupid manager demanded a hotfix in one of the worst web applications you'll ever see. Fuming. Tried my best to bring some sense into him but to no avail.4
-
Why the hell do you keep commit+push your shit to the master branch! We have develop, feature and hotfix, you *************!
Just because you want to test something in prd environment, you don't mess with the master to build the production image. And you do not even rebase fucking develop branch and keep it out of sync you POS!
Excuse my language, thank you.10 -
It's both extremely satisfying and extremely rage-inducing when you learn that an update in the framework breaks your once perfectly functional code for no reason.
Especially when said code is from a sample written by the developers themselves.
Thank god there was a hotfix. -
I feel so guilty.
I had to make a hotfix today. It is the ugliest piece of shit code I ever intentionally created. But there was no other way. I swear there was no other fucking way!
My boss just assigned this to me. But because she thinks this needs to be a hotfix and can't wait for the next release we just have to change the server and not the client side of our application.
So I had to add a memory to our server so that it knows from which high level method from the client the multiple low level calls to it are coming from.
It just doesn't make sense logically.
I mean I feel like I killed someone. And just so that we get less writes to our DB. I mean yes in some edge cases it is a huge speed-up...
But nothing this fix solves is a new bug.
I'm gonna take a shower now. For like an hour3 -
Years ago, we were setting up an architecture where we fetch certain data as-is and throw it in CosmosDb. Then we run a daily background job to aggregate and store it as structured data.
The problem is the volume. The calculation step is so intense that it will bring down the host machine, and the insert step will bring down the database in a manner where it takes 30 min or more to become accessible again.
Accommodating for this would need a fundamental change in our setup. Maybe rewriting the queries, data structure, containerizing it for auto scaling, whatever. Back then, this wasn't on the table due to time constraints and, nobody wanted to be the person to open that Pandora's box of turning things upside down when it "basically works".
So the hotfix was to do a 1 second threadsleep for every iteration where needed. It makes the job take upwards of 12 hours where - if the system could endure it - it would normally take a couple minutes.
The solution has grown around this behavior ever since, making it even harder to properly fix now. Whenever there is a new team member there is this ritual of explaining this behavior to them, then discussing solutions until they realize how big of a change it would be, and concluding that it needs to be done, but...
not right now.2 -
I've compiled enough recent news to point out some notable articles in a list:
- Windows 10 20H2 can corrupt the main filesystem on SSDs when ChkDisk is run under yet-unknown circumstances (https://borncity.com/win/2020/...)
- Nintendo updated SwapNote for 3DS well after killing it off (https://nintendolife.com/news/2020/...)
- Google has finally fully open-sourced Fuschia, its attempt to replace Android, you can now make PRs and such (https://computerweekly.com/blog/...)
- a recent Win10 update for normal users is causing massive speed issues (https://pcgamer.com/microsofts-dece...)
- Amazon's trying to compete with StarLink and it's going pretty okay (https://arstechnica.com/information...)
- Cyberpunk 2077 has a fuckton of fixes in a new update, for those who care (https://theverge.com/2020/12/...)
- Xbox 360-based Halo games are going to have their online component killed in December 2021, for those who care (https://halowaypoint.com/en-us/...)
i forget who said they liked these last time i did them but to that one person, here you are.14 -
When they announce a new feature in a video that goes live today, but the feature isn't build yet. It isn't build yet because they never told the IT department that it should go live today. So now I'm stuck hotfixing it.1
-
Me:
* Builds Project and Hosts it *
* thinking * : * ' I don't really need to push to Master, I'll just push it to the deployed branch *
Me: * tests project from host *
Me: * sees a bug, fixes it and rebuilds the project, hosts it and pushes code to deployed branch *
4Hrs Later:
Colleague: Dude did you see the Typos you made? Fix them!
Me: In my defence, I wrote this at 4am in the morning, did not sleep for 2 days.
Colleague: Don't Care, fix it.
Me: *Creates Hotfix Branch from Master*
* INSTALLS DEPENDANCIES AND FINDS OUT A NEW VERSION IS OUT AND UPDATES THAT AS WELL *
* Runs Project and finds out it's not the hosted version. *
* Merges Deployed Brunch to Hotfix Brunch and this happens *
Error Message: Unexpected token
620 Merge Conflicts
🤦🏽♂️🤦🏽♂️🤦🏽♂️2 -
Me : There is a hotfix needs to be done.
Boss : So what ?
Me : Its assigned to you from last 2 weeks and deadlines are near.
Boss: (speaking politely) oh.. is it? Can you take a look ?
Me : .. -
git commit -am 'needs refactor'
// months go by
git commit -am 'hotfix, also needs refactor'
// ... repeat -
I had a ticket to enhance the loading of a page.
So instead of doing 40K requests to a MySQL DB in order to generate a tree and display it to to the user on each page visit, the initial query was optimized and moreover, the results are saved in a MongoDB which will then are served to the user on each page visit.
Long story short, after a code review the code got shipped to production and there was a bug which got fixed in a Hotfix shortly afterwards.
I got all the blame for the bug.
I don't deny I have a responsibility for the bug.
Do you guys think the code reviewer also has a shared responsibility for the bug?4 -
Just writing this because i’m stressed as fuck and i’m currently having my second sleepless night in a row...
Like i mentioned earlier i have 4 projects on my name. Two are on a real tight deadline, the other two are smaller, more support like issues.
Last week i got asked basically to get about 20 storypoints done in two hours by my Scrum master. Ehh no. Impossible. Wish i could do magic...
Yesterday i had to make a quick hotfix between the two bigger projects. Tried to reject this but had to do this any way. (It was basically the clients fault/content)
Also, f’d it up because there are current changes that are ready for deploy but haven’t been approved yet.
Do i get a f’ckin email this morning about how the progress wasn’t followed and the git permissions aren’t right.
You fucking twat! If i i did have ANY freaking minute in my planning to actually take the time for this damn hotfix this didn’t happen any way! You’re fucking restrictions only make things harder you goddamn motherfucking morron!8 -
PM: How long will it take to fix this bug? Needs to be done by friday.
Me: I can do a hotfix in some hour, a more permanent solution will take at least 3-4 hours.
PM: Alright, I’ll schedule you for 1 hour.
Me: alright, sounds good.
*makes a hotfix*
Me: the hotfix is done now, just tell me when you want me to do the permanent solution.
PM: what?! Thought I you could manage the permanent fix in the time I booked.
???????3 -
How to impress PM:
1. Prepare a critical bug, that makes the frontend crash
2. Prepare a hotfix, that fixes the bug
3. Deploy bug on Friday afternoon
4. Wait until PM starts panicking
5. Deploy hotfix after 5 min
6. Get praise from PM5 -
Anyone recalls my raspberry's hotfix for overheating problem?
Frankly I am considering it as a long-term solution. I currently have a proper rpi fan applied but it's just too freaking noisy! I thought my work lappy is noisy when at 90C. But this tiny rpi fan is just.. Painfully loud! Especially when rpi is suppised to be tiny and invisible.
Soo.. Yeah.. 3"" fan for an rpi it is!9 -
We are gating release of each sprint.
Today before 10:00AM I identified a major performance problem and asked devs to fix it (single if() will be enough as a hotfix). We're blocked until we have the fix deployed.
It's 5pm and we're still waiting for that 1 `if` clause to be added and deployed :)
A long day it was. Full of hopes and expectations, waiting for things to happen -
Today I wrote a python messenger bot which listens to only one command;
get ip
It then replies with its public IP address. I figured this would be the easiest hotfix until I fix my dynamic DNS client.
Now thinking of it I could also make an "update domain" command for doing the API call, and then link the two with a loop and minute delay. Marvelous.4 -
Well, I'm no professional developer, still at school, but I thought about this, regarding convincing PMs of you writing permanent fix instead of a temporary workaround: Just tell them that this one particular issue can't have a hotfix, and that you need time to fix it.6
-
I just basically performed emergency surgery on production while in a cab on my way to a class where I'll be unreachable for an hour and brought it back to life in the nick of time. I've never felt more alive.1
-
Nightmare morning. Woke up for the fact that my app in app store is crashing on opening. Yesterday submitted improvements to the app (react-native).
Tested locally on simulator and also on real machine by react-natives --variant Release. Worked ok. But now when I build it with xcode and sent it to app store, it's no longer working at all =/.
Im losing users by every minute. Was able to immediately make a hotfix, but apple has not taken any hurry in reviewing it. Also it's not possible to revert previous version in app store, I just have to submit a new version that will be reviewed. I even called them and they promised to hurry but nothing's happened and it's been like 4-5 hours already.
I got so bad luck because usually in review they test the app, but now they didn't, and this time it didn't work at all. And I thought that testing it by react-natives --variant release mode would be enough, but apparently theres something different when you build and archive it with xcode. I feel my app is doomed now, many of the users might abandon it completely =/.
If I learned something it is that always try to test the last modified version of the app. Even if the modification seems small. Don't trust react-natives --variant release for testing an ios app.2 -
So our project decided to create a newsletter. For some reason, I was tasked with writing it, includig layout, recepient database etc.
It is the first newsletter, it is urgent and it is supposed to be send to all the people who so far participated. Means: there was never a "sign up here for a newsletter" thingy on the website. Hence, there is also no "unsubscribe" button.
One could kind of "hotfix" this by making a field, like "enter your email adress here to unsubscribe" and then I get a notification and remove the people from the list. Fine by me. Not so many ppl atm so we got time to set it up properly then.
My boss decides it is my job now to implement the stupid unsubscribe button... I am not the website admin. I have nothing to do with the goddamn website. We have ppl in another city, being paid to manage the goddamn website and it would take them just a few minutes to set the stupid button up, since they know what they are doing and I am not.
I told them from the start: I don't do websites. I have nothing to do with them, I don't want to have anything to do with them. We have people for this.
Why the F is it my job now to implement that stupid button?!
And even when I tried to look into how the other formulas which do similar things are set up: oh you don't have permissions to access that. Lovely!
FAK this shiet <.< It is not my fking job.5 -
"It is pointless to use just a fraction of the data in a homologation environment"
Those words reveal the truth in our creed.
We work in the deepest of back-ends to serve the front.
No data is true. Everything can be edited.
We are Data Engineers.
And for those words to take hold, a junior must execute a leap of faith, and push a hotfix into production.5 -
Hotfix asap. Hotfix still in progress.
An ehancement that also needs the hotfix to be release at live in two days. One day for pre-live testing, and another for live testing.
I pray that nothing else will break.2 -
This one resumes every single day
hotfix 1.20.1
hotfix 1.20.2
hotfix 1.20.3
.
.
.
.
release 1.21.0
hotfix 1.21.1
hotfix 1.21.2
.
.
.2 -
The gratifying feeling when you save your team's ass with a hotfix, minutes before the stakeholder demo3
-
Deployed an hotfix without going through QA. Not the worst, but against what I like to do.
And there was time, a long time ago, when tests were a luxury... I know stupidity at its purest 😅1 -
Installed on my 2x 980 TI SLI the newest Nvidia Driver 384.76.
Played games on it and some Video Editing. Noticed that I have bad laggs and checked clocks.
Wow clocks were locked at half the max Output. Checked if I can do anything to increase it, nope it's locked at half the Performance.
Tried to install previous Driver, install failed. Went 2 Drivers back and installed the 382.33.
Everything worked again.
WTF are the guys at NVIDIA coding while being drunk?? How the fuck can you lock the powertarget of the GPU at half the Performance and after 4 days not releasing a hotfix? Are they testing this shit even or forcing it into production?
Currently NVIDIA has really crappy drivers and with every update it gets even worse.
And the only option you got is GPU's from NVIDIA and AMD. And Vega is not even released yet.
Hope that AMD will beat the shit out of NVIDIA...5 -
Spent most of this week busting my ass working on a hotfix that came out of nowhere with mega high priority. This annoys me greatly because the hotfix wasn't even fixing a bug, it was adding new functionality because certain customers were being blocked from testing without this specific feature. In my humble opinion, given that we release every weekend, hotfixes should be reserved for actual critical bugs. But anyway, as I probably could have predicted, the code got to QA and exploded. Literally nothing works.
This is what happens when you try to rush out features to satisfy customers. If you try to rush something that is late, you WILL make it later.
Meanwhile there's an issue I'm supposed to be fixing for our next release which goes out this weekend and I've had no time to even look because of this hotfix. And now it's the end of the day and I just feel worn out from stress, tomorrow will no doubt be similar.1 -
The moment you push hotfix 2 hours before release and go for a few drinks without even building it! Thanks Bamboo for being so observable!!
-
This is a test rant. 2 keys stopped working without warning, so I'm trying 2 get used 2 using the new, remapped layout.
I mapped W to rightmost of the top row and 2 to the 2nd rightmost, both of which were previously diacritic versions of existing letters.7 -
My manager asks, in Slack, if we can change the auto-tagger to update the patch instead of the minor version. I respond by saying, "Yes, it's in the Jenkisfile. Really we should switch to just <major.minor> and drop patch."
My manager asks why and I go on to say the last number is useless (unless you ship software externally and need to hotfix or security patch a minor release; internally they serve little purpose).
At my last job we dropped three numbers for two, and most other teams here only use two numbers.
He sends a link to the semantic versioning website.
The next day one of the other developers sends it to me in a private chat as a joke. 😂😅 I'm glad I'm not the only one who thinks our manager shouldn't be a manager. -
Download link is labeled:
[flutter_windows_v1.9.1+hotfix.5-stable.zip]
Does that mean that is the 5th hot fix? Not sure if I can trust it to be "stable".1 -
BOOM HOTFIX !!
Finally fixed the issues that nobody could fix, went trough 4 different senior developers, finally done it..
Now what am I going to do with the 2h i have left on the planning for that ticket.1 -
Extremely frustrated with the release process and versioning system at my current company. Don't know if this is same everywhere or the half ass release managers can't think of a better way here.
Basically for any client raised issue that can't wait for next release are built as a hotfix. However hotfixes are never bundled togather or shiped to other clients. This is causing a vicious chain, two clients raise two separate issues on same version. Instead of fixing them as single hotfix (however minor the issues) we create two hotfix versions for each with only their issue. A week later same clients come back with the issue the other raised. Once again instead of bundling what is now effectively same code we build hotfixes on top of the clients respective branches. We now have two branches to maintain with same codebase. No matter how serious issue, the hotfix is never made generally available and always created on client's specific hotfix version.
Now that was an example for only two clients, in reality we have released five patch versions of a product in last 2 years. Each product version contains about a dozen artifacts (webapps, thick clients, etc) with its own version. Each product version being shipped to various clients. Clients being big banks never take a patch of product even if it fixes their issues and continues requesting hotfix. We continue building hotfixes on client branch and creat ever increasing tech debt. There is never a chance to clean up or new development. Just keep doing hotfix after hotfix of same things.
To top if all off, old branches are still in svn while new in git. Old branches still compile with ant new with maven. Old still build with java 5,6,7 while current with 8. Old still build from old jenkins serve pipelines while new has different build server. Old branches had hardcoded integration db details which no longer exists so if tou forget to change before releasing it doesn't work.
Please tell me this is not normal and that there are better ways to do this? Apologies I think I rambled on for too long 😅5 -
I've reached a point where instead of adding one new hotfix to the site again, I rather rewrite it from scratch so I won't feel so dirty hacking in all the new features that come up.
This way I can also bury my previous bad decisions.2 -
Just joined a new company and can only describe the merge process as madness.....is it or am I the one that is mad?!
They have the following branches:
UAT#_Development branch
UAT#_Branch (this kicks of a build to a machine named UAT#)
Each developer has a branch with the # being a number 1 to 6 except 5 which has been reserved for UAT_Testing branch.
They are working on a massive monolith (73 projects), it has direct references to projects with no nuget packages. To build the solution requires building other solutions in a particular order, in short a total fucking mess.
Developer workflow:
Branch from master with a feature or hotfix branch
Make commits to said branch and test manually as there are no automated tests
Push the commits to their UAT#_Development branch, this branch isn't recreated each time and may have differences to all the other UAT#_Development branches.
Once happy create a pull request to merge from UAT#_Development to UAT#_Branch you can approve your own pull request, this kicks off a build and pushes it to a server that is named UAT#.
Developer reviews changes on the UAT# server.
QA team create a UAT/year/month/day branch. Then tell developers to merge their UAT#_branch branches in to the previously created branch, this has to be done in order and that is done through a flurry of emails.
Once all merges are in it then gets pushed to a UAT_Testing branch which kicks off a build, again not a single automated test, and is manually tested by the QA team. If happy they create a release branch named Release/year/month/day and push the changes into it.
A pull request from the release branch is then made to pre-live environment where upon merge a build is kicked off. If that passes testing then a pull request to live is created and the code goes out into production.
Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh it's a total mess. I knew when I took on this job it would be a challenge but nothing has prepped me for the scale of the challenge!! My last place it was trunk based development, commit straight to master, build kicks off with automated testing and that just gets pushed through each of the environments, so easy, so simple!
They tell me this all came about because they previously used EntityFramework EDMX models for the database and it caused merge hell.9 -
Probably either writing the occasional lazy commit message, or skipping a few testing scenarios when testing dev work locally. Although to be honest, its rarely out of laziness that I do these things. Its often trying to urgently finish something for a weekend release/hotfix.
-
Ah yes a new sprint, but don't worry we'll hotfix changes because people haven't spec'ed in what they want originally in the first place.
The amount of time lost in a sprint doing this is just starting to drive me pretty angry.1 -
This got me fucked up. Listen yo.
So we have this issue on our modal right. The issue keeps poppin. It's a hotfix because its in prod. So my senior and I were on it. After a few hours, I showed him the part of the code that is buggy. It's 50 lines of code of nested if-else, else-if. And so we're still fighting it. He redid everything since we're using angular2 he did a subject, behavior-subject all that bs and I was still trying to understand what's the bug, because it's happening on the second click and so I did my own thing and found the cause bug and showed it to him, its this:
setTimeout( () => {}, 0)
the bootstrap-modal doesn't allow async inside it (I dont why, its in the package). So he explained to me why it's there. So I did my own thing again and find a workaround which I did, a one-line of angular property, showed it to him he didn't accept it because we'll still have to redo it with subjects and he was on it. I said ok. Went back to my previous issue. The director came in and ask for a fixed, my senior came up to me and told me to push my fix. Alright no problem. So we good now. Went back to our thing bla bla bla, then got an email that we will have a meeting, So we went, bla bla bla. The internal team wants a support for mobile, senior said no problem bla bla bla, after the meeting he approaches me and said (THIS IS WHERE IT GOT FUCKED UP) we wont be supporting bootstrap4 anymore because of the modal issue and since we're going to support mobile and BOOTSTRAP4 grid system is NONINTUITIVE we are moving to material design because the grid system is easier. I was blown away man. we have more than 100 components and just because of that modal and mobile support shit he decided to abandon bootstrap. Mater of fact its the modal its his code. I'm not expert in frontend but I looked at the material design implementation its the same thing other than the class names. OHHH LAWD!3 -
Very annoyed by PR comments for temporary fixes.
I made a one line change that basically removes a link from showing. Test it via UI and it worked 100%. Then a more senior engineer comes in and says to do it a different way that takes more time to get the hotfix out and 3 times the amount of files changed.
Why? What's the fucking point? It's a temporary fix that will be removed in a week. Why waste my time and your time? Now I'm wasting time on here.4 -
I keep telling myself "I can do this, I can change this", but then I'm forced to write untested undesigned spaghetti code cause we need another hotfix for 3 hours from now...
-
Our QA builds went from half and hour, to an hour and a half and my stress levels are at an all time high trying to get this hotfix out.
Better get the beer out.3 -
Question about managing git branches.
For releases, we branch develop (the main branch) into a release.version branch in which we bump the version and do any last minute bug fixes for issues found in testing.
After the release we need it back into the main branch as well as master.
But also we keep the branch as well in case we need it such as for a hotfix release.
Is keeping it right though?
General issue on my team I feel is nobody deletes their feature branches after they are done and merged into the main branch. I think there is a feature in most Repos where it can auto delete these branches when a PR is merged.
And well branches themselves (at least the HEAD) are sort of just bookmarks. All commits can be accessed by their hash and basically is a full snapshot of all the commits that upto that point that it was based off of?
So you could just tag the last commit in the release branch with release.version and delete the branch itself? And that I think is the correct, normal way?
Not sure how to explain this to my boss or team as they aren't big on technical details...9 -
"Good job coworker X for making a hotfix, that fixed crashes".
I don't get it. Poor code, no tests, bad QA and at the end of the day people get praised for fixing the crash. Cool, I guess I know how you get promoted.6 -
That feeling when you trying to decipher what you once wrote ( a fully featured fucking mess ) when implementing a large hotfix. This is so ridiculous 😭😭1
-
In the morning to afternoon i do coding, debugging and sometimes deploying. In the night i just already start to play PUBG. I dont know why i am interested to play this game at the time.
But what i’ve learned while playing it is like looting the weapon and amno, find the easiest enemiest first (bot is still existed in the real game) , make some rotation, call the teammate if i am being knockdown and unluckly we landed then dead without weapon (too-soon) and fight for getting Winner Winner Chicken Dinner !!
Its like what i am doing every single day tobe better as developer, find some literature or articel, try to solve an easiest task, deploy it and boom its getting error and suddenly need to hotfix after it’s work with return 200 expected and no error logs on my APM😅
If you guys play too, share me your pubg id on the comment below.
Lets make some fun party ✌️👍 -
I working hotfix in prod, small fix but fatal it's about environtment and proxy thing, and I forgot to write in the decumentation, 3 month after that I leave the company.
After some week the PM contact me and tell the developer create some error and make the production down, and the whole team is not going home for 3 days working on that issue.
He offer me some money for helping with the issue, I aggred and they give me some account for access the environtment and code.
I can fix it in less than 15 minutes, but because they cannot fix it I working it for 6 hour, and after that I explain the step for solving it, they seems really glad that I can solve the issue and now the prod is working again..
Now In my opinion, I know I was not a good person, and what i've done is maybe not acceptable.
But for me as a developer, as long I have the credential and access I can read(guessed) how the flow goes and know the environtment that my company use without they explain it or some googling definitly will help right.?
So, what you say about it, What will you do if you got into my situation.?10 -
Has anyone had success with GitFlow hotfixes and GitHub branch protection rules? Finishing a hotfix requires pushing directly to develop, but GitHub prevents it if PR policies are set up :/8
-
Our Gitflow:
- kill bug
- pushes hotfix branch.
- deploy hotfix branch
- see if that solves the issue
- go back to the top if it doesn't
- merge hotfix into main and then deploy main -
when you make a one-line hotfix and it accidentally fixed two bugs at once:
https://youtube.com/watch/... -
QA: Finds and reports Critical Bug
Dev: Hotfix 2 days before next scheduled deploy, NP!
After Scheduled Deploy...
QA: Critical Bug is back
Dev: Oops, overwrote hotfix during Scheduled Deploy -
Dev. manager: hey did you check in your changes for that hotfix?
Me: "git checkout master && git log -1"
Dev. Manager: thanks!