Would be really nice to be able to delegate the packaging to the AppVeyor instances, would free up some time and let me actually rebuild my local dev environment without fears. Though considering the fact that - until very recently - they couldn't even build all parts of OpenMW in pure unoptimized Debug without timing out...AnyOldName3 wrote:It might not be of any use to this discussion, but another open-source project whose primary user group is gamers and handles things pretty well is Dolphin Emulator. While their releases are few and far between, and users are recommended to use development builds, there's never really an issue of broken packages.
Basically, instead of nightlies, 'release' packages are build for every pull request (merged or proposed) as part of the CI process. I think this is actually done on dedicated machines (or dedicated VMs in the cloud) rather than Travis or Appveyor, but I'm guessing they could theoretically be used. The gist of what I'm proposing is:
The RC process would be mostly irrelevant, as all it would entail would be renaming an existing file and linking to it somewhere official. We get a consistent build environment, and as more things would be automated, there's less chance of something 'dumb' happening, like mispackaging a build. For systems that can't easily have packages generated in the CI environment, we rely on something akin to raevol's 'Option 1', but we get a bunch of coverage of users without much conscious effort.
- Appveyor & Travis do their usual thing.
- We add a final few commands to the CI scripts that convert the build that just passed to an installable form (e.g. .msi, .deb, .dmg etc.).
- Appveyor & Travis then upload these to other machines/VMs.
- The other machines install the packages from a clean-slate status (e.g. they were just reimaged), and do some basic testing to check nothing's died.
- These builds are transferred from the secondary testing machines to somewhere else, and listed under a dev build heading at openmw.org/downloads/ and are uploaded to an OpenMW-dev PPA (we might as well let people use them now we have them). They're already verified as 'working'.
Obviously this would require a substantial amount of work to set up in the first place (which may be seen as excessive this close to 1.0), but lots of work that happens now by hand would come out for free. There also might be a problem of me wildly simplifying something to the point of trivialising it, and missing that something I've said is actually impossible.
We should really improve on our tests too, they're quite simplistic at the moment and have never compiled properly on Windows since their inception. I blame GTest for that by the way, it doesn't play well with MSVC.