IBBoard / cawbird

A fork of the Corebird GTK Twitter client that continues to work with Twitter
https://ibboard.co.uk/cawbird/
GNU General Public License v3.0
310 stars 37 forks source link

Repo Change: Don't build new packages when there is no upstream release #470

Closed theofficialgman closed 1 year ago

theofficialgman commented 1 year ago

The opensuse repo appears to build new releases almost every week for no reason. there have not been any upstream code changes so why is this happening? this triggers unnecessary package updates for cawbird very frequently.

are there any actual changes in these builds?

IBBoard commented 1 year ago

I'm not intentionally rebuilding it frequently. The whole point of OBS is that it rebuilds whenever it needs to based on dependencies changing.

However, I've got a couple of additional dependencies in the repo to enable some extras (like support for Scottish Gaelic on distros that don't have it in core packages, and so it gets disabled at build time). They could be updating and triggering rebuilds.

IBBoard commented 1 year ago

Which distro are you using? From what I can see in the logs, the last update for most versions of Debian, Ubuntu, CentOS and openSUSE was 24th September, triggered by a change that I made. openSUSE Tumbleweed updated on the 28th, but as a rolling distro then I expect it to update more frequently. Debian 11 rebuilt on the 2nd October, which I presume was triggered by a distro package update. Debian Unstable and Testing are broken at the moment because of librest changes.

theofficialgman commented 1 year ago

debian 10 and 11, raspbian 10 and 11, and ubuntu bionic and focal to be specific.

you can see here by the github history that cawbird at one or multiple of these distros has been getting updated every day almost. that only changed when we decided to not check for updates daily and instead check for updates weekly at pi-apps. you can scroll back to june and older and see that the version is bumped just about every day by our detection script. https://github.com/Botspot/pi-apps/commits/master/apps/Cawbird/install-64

this also has the negative side effect of breaking any pre-existing links, since OBS removes the link to older package versions after updating, unlike normal debian repos.

IBBoard commented 1 year ago

Sorry, but I can't see the daily build problem.

There was a flurry in March - some before the release of 1.5 and some after. I don't know about the ones before, but the ones after are likely to have been settings changes as I fixed various build issues (they're project-level changes and so not tracked in the revision log). There's then nearly four weeks between the two in April, another three weeks before the first one in May, and only three in June.

Also, it looks like some of them are updating different distros at different times.

The ARM builds are sometimes more prone to failures (and slow builds) than the x86 builds. But that's just the infrastructure and they seem to build eventually. However, it would spread out the time that each distro completes and may make it look like we're doing lots of builds.

Other than that, I can't see anything that indicates unusual behaviour that's out of line with my expectation of "rebuild when the package, config, or base distro changes". And that's exactly as I'd expect, because that's what OBS is intended to automate.

Fedora Rawhide and CentOS 7 rebuilt today, but Debian 11 is still the most recent Debian rebuild on the 2nd, Raspbian 10 on the 25th September, and all of the others on the 24th when I edited the Debian configs to try and fix the librest issue (distros by date). Unfortunately, it doesn't appear to give me any logs about what triggered the rebuild. It just does it.

As for removing the older packages - that's just the way OBS works. They can't hold an infinite number of old packages. Keeping just the latest package (which is the only one referenced in the repo package list) is the standard approach on RPM-based distros and works perfectly fine there. The idea of intentionally installing an old version of a package as anything but an edge case seems unusual. And I'm sure I've had Ubuntu distros fail to download packages when my repo metadata is out of date.

If you want an archive, feel free to download each revision and host your own complete build archive 🙂

theofficialgman commented 1 year ago

Sorry, but I can't see the daily build problem.

raspbian 10 for example had 19 builds of 1.5-1+3 many more on the 1.5-1+2

as you can see from the commit history, a new build of one of the versions came out on average once every 2 days. Its really an OBS issue so I will close

IBBoard commented 1 year ago

19 builds can just mean that it took me multiple attempts to get the config right.

I'm still not seeing any new updates since 24th September for most distros, because I've not made any changes to the repo. When I try to fix the librest issue (if it's even possible - IIRC it might be a breaking incompatibility) then there's likely to be a flurry of extra build attempts until I get it right. But it's just OBS doing exactly what it's supposed to.