Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: update to swipl v9.1.18 #404

Merged
merged 6 commits into from
Nov 3, 2023
Merged

fix: update to swipl v9.1.18 #404

merged 6 commits into from
Nov 3, 2023

Conversation

jeswr
Copy link
Collaborator

@jeswr jeswr commented Nov 2, 2023

fix: update to swipl v9.1.18

@jeswr jeswr enabled auto-merge (squash) November 2, 2023 00:07
@jeswr
Copy link
Collaborator Author

jeswr commented Nov 2, 2023

@JanWielemaker looks like the ctests are failing again. Any idea what is causing this (see https://github.com/SWI-Prolog/npm-swipl-wasm/actions/runs/6726523064/job/18282932244)

@JanWielemaker
Copy link
Member

Hmm. yes. That reproduces. Rather curious as nothing relevant has changes AFAIK.

@JanWielemaker
Copy link
Member

Fixed, as it seems you discovered. What I do not really understand is why this shows up now. These bugs were all along the LibBF based big integer and rational support on 32 bit platforms. For me, ctest passes.

@jeswr jeswr disabled auto-merge November 2, 2023 14:33
@jeswr
Copy link
Collaborator Author

jeswr commented Nov 2, 2023

Looks like the change you made fixes it @JanWielemaker (see #405).

Would you be able to make another patch release of SWIPL with these changes so we can release it here? This is because the build script we have for swipl-wasm builds off a given tag in swipl-devel (see

RUN git clone --depth 1 https://github.com/SWI-Prolog/swipl-devel --branch V$SWIPL_VERSION
).

@JanWielemaker
Copy link
Member

I'm afraid the about two weekly release schema is as frequent as it gets. Otherwise we get too much overhead and confusion as there is almost daily some little thing that bothers some user on some platform. Can't you simply use the hash as version?

@JanWielemaker
Copy link
Member

P.s. Does a hash work? If not, and the only thing you need is a tag, I am happy to add a tag, say V9.1.18-wasm to the current GIT head.

@jeswr
Copy link
Collaborator Author

jeswr commented Nov 3, 2023

I can make commit hash work. Will try and organise that later today.

It will just make the CD a bit slower.

As an aside, have you looked into using CD more on the swipl-devel repo to make the release process less burdensome over there?

@jeswr jeswr enabled auto-merge (squash) November 3, 2023 14:14
@jeswr jeswr merged commit 99d95a1 into master Nov 3, 2023
18 checks passed
@jeswr jeswr deleted the fix/update-swipl-v9.1.18 branch November 3, 2023 14:29
@jeswr
Copy link
Collaborator Author

jeswr commented Nov 3, 2023

🎉 This PR is included in version 3.5.6 🎉

The release is available on:

Your semantic-release bot 📦🚀

@jeswr jeswr added the released label Nov 3, 2023
@JanWielemaker
Copy link
Member

As an aside, have you looked into using CD more on the swipl-devel repo to make the release process less burdensome over there?

The release process is pretty much automated. Source, docs, Windows binaries and Linux PPAs are all doing by calling one script. MacOS binaries are separate as Linux doesn't run the MacOS tools 😢 Then there are the website, SWISH, WASM version on the website, Linux snap, Macports, the official docker images and the announcement summary. 99% of that is scripted, so it isn't too bad. Most annoying situation happens if somewhere down the chain a port issue is found. With so many targets and configurations that is hard to completely avoid 😢 Ideally CI avoids that, but it takes a lot of resources to go through all checks for every patch.

If you think this can be significantly improved, please say so.

@jeswr
Copy link
Collaborator Author

jeswr commented Nov 4, 2023

If you think this can be significantly improved, please say so.

I've had a read through the release readme. It seems like most of it could be turned into a GitHub action that is triggered by just cutting a release in the GitHub UI - or pushing a new tag (i.e. running https://github.com/SWI-Prolog/swipl-devel/blob/master/scripts/newversion). Noting that GH actions support mac, windows and Linux environments; and that you can also use Dockerfiles in CI if needed.

Which means that all that would be left for you to do is:

  1. The announcement summary which could probably also be generated from a CHANGELOG and written to the website by a bot if you really wanted.
  2. Make any changes if any of the builds fail during this CD process; which as you say is the most annoying situation.

The main question is whether the time investment to do this is worth the time saved on manual releases / the opportunity to release more frequently.

Ideally CI avoids that, but it takes a lot of resources to go through all checks for every patch.

Github action tests can be run in parallel; so it should be quite feasable to build and run all of the different configurations in https://github.com/SWI-Prolog/swipl-devel/blob/master/scripts/make-distribution in CI without slowing down the time it takes CI to run.

@JanWielemaker
Copy link
Member

JanWielemaker commented Nov 5, 2023

Thanks. Good to know. Note that the ChangeLog on the website is done automatically. The same script generates the announcement except that I add a summary with some highlights and sometimes some warnings or uncouragements to update.

Failing builds is typically not when creating the binary releases for MacOS and Windows. Anyway, that takes just a few minutes on my hardware. Problems tend to come from submitting the PPA to be build on older and newer versions of Ubuntu than my dev machine, update the Prolog version that runs the website that also runs on another Ubuntu version and failures in e.g. Macports, MSYS2, the npm versions, etc.

Github action tests can be run in parallel

That is not the main issue. The issue is that the current CI build on GitHub takes about 5 min. Adding a platform adds another 5min, etc. There are a lot of platforms with different versions of the dependencies, using different compilers and different setups for SWI-Prolog (default, single threaded. without LibGMP, minimal setup, ...) We would quickly run out of the free CPU usage for GH. And even if that was not an issue it is probably not worth the energy consumption ...

@JanWielemaker
Copy link
Member

P.s. if it is possible to add a CI that builds and tests the WASM version on each update, that might be worthwhile. The build time is fairly limited and the version does just about anything different than the default Linux build (single threaded, Clang based, 32-bits, LibBF bignums, statically linked extensions). Please make a PR if you know how to do that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants