Godot-proposals: Introduce daily/hourly/bleeding edge preview builds with automatic updates

Created on 4 Sep 2020  路  4Comments  路  Source: godotengine/godot-proposals

Describe the project you are working on: Godot Engine

Describe the problem or limitation you are having in your project:

Many users have stability concerns with Godot. One of the limitations Godot currently has with ensuring stability is that it's difficult for testers to get builds to test. Not everyone wants to build Godot themselves, or go to a website every single day to download builds. We should make this process as easy and convenient as possible for testers.

(In this post, I am defining "tester" as anyone who uses a build of Godot that isn't a stable release)

Describe the feature / enhancement and how it helps to overcome the problem or limitation:

I will compare with existing solutions and proposals to better explain this proposal.

  • Godot provides two official organization-provided options for getting preview builds.

    • Compiling it yourself.

    • Pro: The absolute latest builds.

    • Con: Requires gigabytes of tools and knowledge of how to use Git and compilers.

    • Con: Can require hours of waiting on a slow computer.

    • Con: No automatic updates.

    • Release candidates, betas, alphas.

    • Con: Not available from a central download page, only via blog posts.

    • Con: Infrequent/outdated builds.

    • Con: No automatic updates.

  • @Calinou offers nightly builds here and here.

    • Con: While master builds are frequently updated, other branches are infrequent/outdated.

    • Con: No automatic updates.

    • Con: Not official.

  • @fire offers nightly builds via Itch.io.

    • Pro: Automatic updates.

    • Con: Infrequent/outdated builds, last build was from July.

    • Con: Only the master branch is provided, no builds for 3.2 etc.

    • Con: Not official.

There is also this proposal #1412 about providing PR artifacts and nightly builds. By itself I think this proposal is not enough, I think an important part of this solution is to provide users with automatic updates.

Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams:

(Yes I know this isn't code/pseudocode, but it is a description of how it will work)

I propose a system like this: Builds would be distributed through Itch.io for the purpose of allowing users to have automatic updates if they choose to use the Itch app. There would be separate "games" for the different branches of Godot (master, 3.2, etc), separate from the existing stable one. These builds would be updated very frequently, perhaps daily or even hourly. A script on a build server would periodically check the head of the branches, and build if the commit hash is different from last time. Completed builds would be uploaded to Itch.io via their command line tool, butler.

Testers would simply be able to install the Itch app, install the relevant "game" for the branch they want, and then this would be automatically updated by the Itch app. Testers would be pointed to instructions on how to set this up from the download page, it should be in a prominent spot, perhaps above the "Requirements" section. The goal is to get a large amount of testers testing the heads of branches to increase the chance of finding critical bugs and regressions. In the near future I don't expect many people to test their projects with master, but a large amount of users testing branches such as 3.2 could have helped avoid some of the regressions caused by 3.2.2, as an example.

Hopefully, this system would allow testers to get builds more frequently, more easily, and more conveniently.

buildsystem

Most helpful comment

Con: While master builds are frequently updated, other branches are infrequent/outdated.

My build archive does have weekly builds of the 3.2 branch, but they're not referenced on the website yet. (Also, I need to fix Linux builds but this is easy to do.)

I can make these build more often if desired too.

All 4 comments

Con: While master builds are frequently updated, other branches are infrequent/outdated.

My build archive does have weekly builds of the 3.2 branch, but they're not referenced on the website yet. (Also, I need to fix Linux builds but this is easy to do.)

I can make these build more often if desired too.

I would like to test more, but the dependency on a third party website and especially a third party application is very off-putting to me.

Should this not be something integrated into the Project manager?

Should this not be something integrated into the Project manager?

When many other tools already provide the same functionality, I don't think introducing an automatic updater into the project manager makes sense.

Since godotengine/godot#42422 was merged, bleeding edge builds are available as artifacts of workflow runs. However, there is yet no fixed URL for users to retrieve the latest nightly builds. See section "Nightly builds" in #1412.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

KoBeWi picture KoBeWi  路  3Comments

Dorifor picture Dorifor  路  3Comments

arkology picture arkology  路  3Comments

aaronfranke picture aaronfranke  路  3Comments

rainlizard picture rainlizard  路  3Comments