Timeline for Deploy C#/C++ binaries incrementally by patching the difference
Current License: CC BY-SA 4.0
30 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Jan 18, 2024 at 16:08 | history | edited | sɐunıɔןɐqɐp | CC BY-SA 4.0 |
added 29 characters in body
|
| Jan 18, 2024 at 15:29 | history | edited | sɐunıɔןɐqɐp | CC BY-SA 4.0 |
added 8 characters in body
|
| Jan 18, 2024 at 15:18 | answer | added | sɐunıɔןɐqɐp | timeline score: 1 | |
| Oct 6, 2022 at 19:51 | audit | First questions | |||
| Oct 6, 2022 at 19:51 | |||||
| Sep 23, 2022 at 18:09 | comment | added | gapsf | learn.microsoft.com/en-us/windows/win32/devnotes/patchapi github.com/taspeotis/DeltaCompressionDotNet | |
| Sep 23, 2022 at 16:17 | comment | added | pjc50 | via stackoverflow.com/questions/1945075/… | |
| Sep 23, 2022 at 16:16 | comment | added | pjc50 | Chromium have "courgette" for this, which itself compares against bsdiff: chromium.org/developers/design-documents/… | |
| Sep 23, 2022 at 13:54 | comment | added | JonasH | You might want to check out Raymon Chens articles on the windows update system | |
| Sep 22, 2022 at 9:31 | comment | added | sɐunıɔןɐqɐp | So yes, somehow an XY Problem, to the power of twelve. No easy solution, no way to thrash it, but the incremental deployment problem MUST be solved. | |
| Sep 22, 2022 at 9:15 | comment | added | sɐunıɔןɐqɐp | Furthermore, we are talking about 1800 projects. VCXPROJ CSPROJ files are built directly with msbuild.exe without Visual Studio SLN files, so we cannot rely on Visual Studio to find out which of the hundreds of C++ projects must be recompiled. A SLN file with over 1800 projects won't even load. Even if it loads, C++ projects contain circular-referenced dependencies. We are talking about hell. The best we can do is to build everything and check new vs. old binaries. Surprisingly, talking to other architect colleagues, I've found out that there are many other companies in the same situation. | |
| Sep 22, 2022 at 9:06 | comment | added | sɐunıɔןɐqɐp | The header files are distributed in different directories, not just the project's directory. There is a big chain of includes binding header files together. So it is not easy to track what source files affect exactly a given binary. I cannot change this, since it is a huge software in production and that would be extremely expensive. We are not talking about Disneyland, where everything is build perfectly from the beginning with best software practices. It's an humongous system running since the 90s, and still works well for the client. Advices on source code changes won't help at all. | |
| Sep 20, 2022 at 19:32 | comment | added | Robert Harvey | It could be as simple as checking each file's time stamp. | |
| Sep 20, 2022 at 19:16 | comment | added | sɐunıɔןɐqɐp | @RobertHarvey: over 600 interrelated C++ projects, it's hard to track changes vs binary changes. | |
| Sep 20, 2022 at 19:09 | vote | accept | sɐunıɔןɐqɐp | ||
| Sep 18, 2022 at 21:38 | comment | added | Robert Harvey | A sensible versioning strategy would not require you to change the version of any DLL that hasn't otherwise changed. | |
| Sep 18, 2022 at 20:16 | review | Close votes | |||
| Sep 23, 2022 at 3:09 | |||||
| Sep 18, 2022 at 19:51 | comment | added | R. Schmitz | I can't even 100% rule out that that is a good idea, but more in a "not even wrong" way... Have you considered that this might be an XY Problem? | |
| Sep 18, 2022 at 19:45 | comment | added | R. Schmitz | From your comment on a question: "I see that rsync copies the whole file." - Wait, are you trying to do delta updates for single binary files? As in, for a single given DLL file, you want to skip the bytes that haven't changed - instead of skipping the (whole) files that haven't changed? | |
| Sep 18, 2022 at 17:43 | history | became hot network question | |||
| Sep 18, 2022 at 17:21 | answer | added | amon | timeline score: 13 | |
| Sep 18, 2022 at 16:10 | comment | added | sɐunıɔןɐqɐp | The client has multiple servers and thousands of clients, all on-premise. The server distributes new data to all these clients, so it might overload the network infrastructure if we send a 2GB package to every client machine. The client infrastucture is not controlled by us, and it is a critical infrastructure 24/7, it cannot get slow at any moment, and the installation must be performed very fast in all client machines as soon as we decide to start the deployment. This is the reason why we need to send just the differential data. | |
| Sep 18, 2022 at 16:07 | history | edited | sɐunıɔןɐqɐp |
edited tags
|
|
| Sep 18, 2022 at 15:00 | history | tweeted | twitter.com/StackSoftEng/status/1571514405443043328 | ||
| Sep 18, 2022 at 13:19 | answer | added | gapsf | timeline score: 10 | |
| Sep 18, 2022 at 11:05 | comment | added | amon | Why specifically do you need incremental patches? Merely to reduce the amount of data that must be transferred to client systems? Or are there other implications for the deployment process? | |
| Sep 18, 2022 at 10:00 | history | edited | sɐunıɔןɐqɐp | CC BY-SA 4.0 |
edited title
|
| Sep 18, 2022 at 9:55 | history | edited | sɐunıɔןɐqɐp | CC BY-SA 4.0 |
added 14 characters in body
|
| Sep 18, 2022 at 9:49 | history | edited | sɐunıɔןɐqɐp | CC BY-SA 4.0 |
added 127 characters in body
|
| S Sep 18, 2022 at 9:43 | review | First questions | |||
| Sep 18, 2022 at 13:52 | |||||
| S Sep 18, 2022 at 9:43 | history | asked | sɐunıɔןɐqɐp | CC BY-SA 4.0 |