Skip to content

Conversation

@hoffie
Copy link
Member

@hoffie hoffie commented Feb 5, 2022

Short description of changes

This PR refactors the autobuild logic and introduces version pinning of external dependencies:
Pinning has partly been implemented already (Qt, NSIS, ASIOSDK, Android Command Line Tools, Android NDK, Android SDK). In addition, this PR introduces version pinning for JACK and aqtinstaller.

Context: Fixes an issue?

This is the basis for #2284 (for 3.9.0). The goal is to merge this for 3.8.2.

Does this change need documentation? What needs to be documented and how?

CHANGELOG: Internal: Release build process has been refactored and uses pinned dependencies for better reproducibility now.

Status of this Pull Request

Ready.

What is missing until this pull request can be merged?

Checklist

  • I've verified that this Pull Request follows the general code principles
  • I tested my code and it does what I want
  • My code follows the style guide
  • I waited some time after this Pull Request was opened and all GitHub checks completed without errors.
  • I've filled all the content above

The reason for using 'sh' instead of invoking the scripts directly seems to
have been that the exec bit on the *prepare*.sh files had been missing.
408b985 fixed this already.

Using bash consistently avoids unexpected issues due to usage of
bash best-practices in non-bash environments.

All those scripts run on Ubuntu or Mac where bash is available, so
there's no need to artificially limit the usable language features.
The Android autobuild scripts contained a whole directory of archived
code. The name suggests that it is unused. The repository does not
contain any references to this directory either. Therefore remove it.

Furthermore, the actively used scripts contained commented out code from
the apparent conversion from a Dockerfile to bash scripts. It also
contained references to older versions.

This commit removes those instances of disabled code. Should we ever
need it again, git has all the history.
Cleaning up unnecessary files such as the apt cache is important when
building docker images. When running on Github Actions we shouldn't care
about it as the whole runtime environment is destroyed more efficiently
after each run.

`apt` usage can also be condensed into a single call to reduce the
(likely very minimal) startup overhead.
@hoffie hoffie force-pushed the autobuild-refactor-and-dep-pinning branch from ef6cd92 to fd970e8 Compare February 5, 2022 12:05
hoffie added a commit to hoffie/jamulus that referenced this pull request Feb 5, 2022
@hoffie hoffie force-pushed the autobuild-refactor-and-dep-pinning branch from fd970e8 to e73a4de Compare February 5, 2022 14:47
@pljones
Copy link
Collaborator

pljones commented Feb 5, 2022

Oh

Error: Could not determine SDK root.
Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: /cmdline-tools/latest/

This refactors several autobuild scripts to avoid repeated hardcoding of
versions or paths.
This ensures that we always install specific versions of aqt and JACK.
This helps with build reproducibility. It's also a requirement to be
able to cache parts of the build environment.
@hoffie hoffie force-pushed the autobuild-refactor-and-dep-pinning branch from e73a4de to 1113213 Compare February 5, 2022 15:29
@hoffie
Copy link
Member Author

hoffie commented Feb 5, 2022

Oh

Error: Could not determine SDK root.
Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: /cmdline-tools/latest/

Heh, reverted back to ../latest/ (but kept the other improvements).

Copy link
Member

@softins softins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good, and CI happy.

@hoffie hoffie merged commit f999f5b into jamulussoftware:master Feb 5, 2022
Copy link
Collaborator

@pljones pljones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@hoffie hoffie deleted the autobuild-refactor-and-dep-pinning branch February 5, 2022 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants