Skip to content

Local semver#681

Open
oocube wants to merge 44 commits into
masterfrom
localSemver
Open

Local semver#681
oocube wants to merge 44 commits into
masterfrom
localSemver

Conversation

@oocube

@oocube oocube commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Fixes #676 by introducing semver to local builds and adding the BUILDER environment variable.

@mcarans mcarans left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for looking into this. It's a step in the right direction. See my comments for some requested changes

Comment thread ShellScripts/Linux/download_github.sh Outdated
Comment thread .github/workflows/build-all.yaml Outdated
Comment thread src/SDL/MyOpenGLView.m
Comment thread ShellScripts/Linux/install_packages_root.sh Outdated
@mcarans

mcarans commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

appimage and flatpak built although haven't tested: https://github.com/OoliteProject/oolite/actions/runs/27862543606/job/82460880582

nsis didn't.

@mcarans

mcarans commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Builder is correct when built through CI in appimage. Need to check flatpak and Windows.

@mcarans

mcarans commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Flatpak is not correct. Need to fix this:

image

@mcarans

mcarans commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Windows build doesn't install gitversion! That explains why it fails.

@mcarans

mcarans commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

@oocube You had mentioned the complexity of the build process. I agree it's a problem and I think I will expand this PR to simplify it. I think it is necessary to get all the builds working reliably and will make maintenance and debugging much easier in future.

Currently, most builds go through the ShellScripts/common/build_oolite.sh script to then call make which uses the Makefile. I will remove both these steps. Instead I will create a build.sh script in the root that is the central point for all building and the one place where version and builder are calculated. They will then be passed as parameters everywhere else, so calls to get_version.sh will be removed from all other scripts. Other scripts like create_appimage.sh will become functions called from that central build script. Those functions will be pushed the version and builder as parameters rather than pulling them in via environment variables from get_version.sh. It will be much easier to see what is going on and what is being passed where.

The version will also be passed to meson as an option instead of calling get_version.sh. This is probably needed to fix the flatpak build. It will certainly be much easier to see why version is blank if it is passed from place to place in a parameter. I think the build.sh script should have optional parameters ver_full and builder which if supplied will be used instead of calculating version or builder. This will support the flatpak build where those parameters can be hardcoded directly into the generated flatpak YAML rather than passing in environment variables.

Can you have a look at #680? I will need to merge those changes to the meson build into this PR.

@oocube

oocube commented Jun 21, 2026

Copy link
Copy Markdown
Contributor Author

If the build process can be simplified we ought to go for it. Making massive changes in PRs targeting distinct improvements is not a good way in my eyes. That dilutes the purpose, and we have no chance to accept one change without the other.

Rather let's fix what we tried to fix here and run a separate PR for other improvements.

@mcarans

mcarans commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Flatpak works. Windows packages build - have not tried to run them yet.

Only release job fails.

@mcarans

mcarans commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

The version can be parsed from appimage artifact packageinfo in release job. Will look into that tomorrow:

eg.

{
        title = "Oolite core";
        identifier = "org.oolite.oolite";

        version = "1.93.1-PullRequest658.181";
        debug_functionality_support = yes;
        required_oolite_version = "1.93";

        license = "GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details";
        author = "Giles Williams, Jens Ayton and contributors";
        information_url = "https://oolite.space/";
}

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.

linux packageinfo version is inconsistent with git tags

2 participants