OpenTTD / OpenTTD/actions

Baseset releases should have metadata made available to reproduce builds

Open
#112 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
2
Forks
4
Avg merge
2d 7h
Merged PRs (30d)
10

Description

After https://github.com/OpenTTD/actions/pull/96 no source bundles are created or uploaded any more.

With that, distributions such as Debian and Fedora, that have requirements to build packages from source, no longer have a convenient way to rebuild a baseset from source.

There are a few methods to work around this:

  1. Use the git repo directly
    At least for me as the Fedora maintainer of OpenGFX this adds a few steps I have to perform for each release, as builds happen offline and I can't clone the git repo in the build system.
    I have a few options:

    1. Ship my own copy of the repo contents and add git to my BuildRequires.
    2. Ship a script in the package source repo that needs to be run before rolling a new release: clone the repo, run a build to generate .ottdrev, then download the official release to extract opengfx-8.0.check.md5 from opengfx.obg. Put these files in the package source repo and commit them.
  2. Ship .ottdrev and opengfx-8.0.check.md5 as release artifacts
    Either inside the binary release or as separate files to the release.
    Saves me the script from 1 (ii) above. I could download these from the release artifacts and commit them to package source.

For OpenGFX specifically (I haven't check OpenGFX2) we could also think about changing the way the Makefile receives its version information. It could be added that the required information can be parsed from the obg of the original release and that then being provided raw with the release artifacts.

Let me know your thoughts.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Inspect the workflow changes from actions/pull/96 and the release artifact configuration, then review the OpenGFX Makefile and the .ottdrev, opengfx-8.0.check.md5, and .obg files mentioned in the issue. Determine which metadata must be published for offline source rebuilds and define completion as distributions being able to retrieve it from a release without cloning the repository.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, github-actions
Domain
build-system, devops, release
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.