Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Build/Version management

A topic by Isaac Ashdown created Nov 15, 2016 Views: 1,342 Replies: 7
Viewing posts 1 to 2
(+2)

Hello,

I'm currently evaluating itch and refinery for our team's next project. So far I'm very impressed, but the build management feature set is perhaps missing something that would be useful - or perhaps I can't find it: the ability to revert a channel to a previous build, or to move a build that's already been uploaded from one channel to another.

For example: I might realise I've made a terrible mistake, and our latest build has major issues. In this case I would want to revert that channel back to the previous build while I investigate.

Or: I might first push builds to a -beta channel for initial testing by my QA team or beta testers. Once we're happy with it, we then push it over to the main channel for general release.

In the "edit game" web page, I can click on the channel name to see a list of all the builds that were uploaded there. However, it appears there's nothing I can do with that information other than look at it.

What's the recommended workflow for these situations? Is this perhaps a planned feature? Is this even the best place for this feedback? :D

Thanks,

Isaac

(+3)

Hey Isaac!

This is a fine place for feedback :)

The ability to revert and/or transfer builds from one channel to another has been requested a few times, and it's definitely on my TODO list.

There's a few things I need to finish up in order to make it available though: for example, when a user has already upgraded to a build, and it's rolled back, I'd like to avoid a full re-downloaded. Generating a reverse patch seems like overkill, but I've had a block system in the works that would allow moving an install to any build with minimal downloads.

So my roadmap for butler looks like this:

  • Iron out the last few corner cases with the current feature-set
  • Release app version with experimental "extract while downloading" feature
  • Roll out blocks-based downloads for all butler builds, release app version with that feature, opt-in
  • Allow setting a channel to any build (would probably implemented as: the backend fetches the previous build and the one you want to set it to, and does its own diff).
Somewhere in that timeline also fits bsdiff integration, which I've been working on, and which makes patches even smaller (it's a post-processing step after the initial patch creation while pushing).

I realize that answer covers a lot more than you asked for, but I hope it gives you a view of what we're currently up to!

(+1)

Awesome Amos, thanks for the infos - looking forward to it!

A related question: is it possible for a user of the itch app to change which channel they are currently 'using'?

Thanks,

Isaac

Ahh you know what - I found it - I guess you need to uninstall and then re-install the app?

Yep, right now you need to uninstall the game and install it again to pick another channel. That too may change in the future!

Amos -
Has the ability to manage Builds/Versions come off your TODO list and been implemented at this point?
If so, is there a doc describing the capability (my quick search did not turn on up...).
Thanks!

(+1)

This part of the plan has been executed:

  • Iron out the last few corner cases with the current feature-set
  • Release app version with experimental "extract while downloading" feature

The rest, not yet. I'm considering using XFLATE instead of a separate blocks-based format. There were other priorities in the meantime though.

Note that (if bandwidth is not an issue) you can easily do the steps manually using `butler fetch` and `butler push`, to copy from one channel to another.