Well it depends how I do it.
1. The APT way.
--> I make sure EVERYTHING I do is a package. I make a repository. I create branches (Stable (Barbara), Testing (Bea), Unstable (Pluto)), I tell people to set up their sources.list to the branch they want...
That's the best way but it requires a lot of work, and we'll only be doing that if we start to have people working full time on this project.
2. The "Upgrader" way.
--> I keep track of every single change between two versions. And I release a script or a program that "upgrades" one version to the other by recreating these changes.
That's easy to do, but it's not a great solution.
And then of course.. there's the mixture of both...