开发者

What is a good practice for building software patches? [closed]

开发者 https://www.devze.com 2023-03-26 16:44 出处:网络
Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing th
Closed. This question is opinion-based. It is not currently accepting answers.

Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.

Closed 5 years ago.

Improve this question

I recently took charge of a software product which was evolved rather unorganized and I have established a new project structure,a source code repository, issue tracking and a buildsystem using nant and teamcity. I'm at the point where every commit to one of the major branches gets compiled, tested and build into a setup.

Always building and shipping full setups seems wrong to me and I'd like to establish some kind of automated patch building, but I have no idea of how to do that. Do you have any suggestions 开发者_如何学Chow I could do that or where I could find some information on the topic? Google was no help so far.

Some more details on my current setup:

Repository: - git: -- 2 major branches: development and master

Build system: - teamcity - 2 configurations: one for building each branch - build consists of only one build step: -- nant runner: nant script is part of the repository and contains the following targets: clean, init, compile, test, deploy, build_setup (using inno setup)

I guess I'll have to split the nant script into pieces and use different build steps to somehow compare the new build artifacts to older ones and create a patch containing the updated files. Am I on the right track and if so, does anyone know a good example or tutorial on how to setup teamcity.


Unless what you have is a massive multi-megabyte end-user application, generating patches (which I assume you want to be minimal) is a daunting task, since you'll have to provide patches from each previous version to the most up-to-date one.

Alternatively, you can invest into autoupdate infrastructure, so that an app will update itself whenever a new version is released.

As for building setups for each commit, I personally don't think this is neccessary unless you're continuously testing setup program itself. Rather, complete build should be triggered manually, whenever it's time to release.


You should look at something like Microsoft's ClickOnce for updates / patches.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号