这是indexloc提供的服务,不要输入任何密码
Skip to content

fix(termux_pkg_upgrade_version): only commit auto update version bump to repository if the bump successfully built for all enabled architectures #25483

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

robertkirkman
Copy link
Contributor

@robertkirkman robertkirkman commented Jul 27, 2025

  • Unless the package is in big-pkgs.list, many of which probably would fail to build 2+ times within the 6 hours GitHub Actions time limit.

  • Fixes [Bug]: auto update system only tests bumps for one architecture before committing to master branch #25481

  • Additional benefit: The -a all argument to build-package.sh being in at least one CI codepath would report currently-unreachable-in-CI errors in the edge case that could be described as "cross-target-architecture hostbuild reuse", encouraging all contributors to avoid closing auto-update issues without first fixing all errors including errors specific to the -a all argument, eventually resulting in a more globally stable -a all argument.

@robertkirkman robertkirkman force-pushed the auto-update-test-bumps-for-all-enabled-architectures branch 2 times, most recently from 9323458 to 0ed047d Compare July 27, 2025 06:18
@robertkirkman robertkirkman changed the title fix(scripts/bin/update-packages): only commit auto update version bump to repository if the bump successfully built for all enabled architectures fix(termux_pkg_upgrade_version): only commit auto update version bump to repository if the bump successfully built for all enabled architectures Jul 27, 2025
… to repository if the bump successfully built for all enabled architectures

- Unless the package is in `big-pkgs.list`, many of which probably would fail to build 2+ times within the 6 hours GitHub Actions time limit.

- Fixes termux#25481

- Additional benefit: The `-a all` argument to `build-package.sh` being in at least one CI codepath would **report currently-unreachable-in-CI errors in the edge case that could be described as "cross-target-architecture hostbuild reuse"**, encouraging all contributors to avoid closing auto-update issues without first fixing all errors _including_ errors specific to the `-a all` argument, eventually resulting in a more globally stable `-a all` argument.
@robertkirkman robertkirkman force-pushed the auto-update-test-bumps-for-all-enabled-architectures branch from 0ed047d to a592381 Compare July 27, 2025 06:19
Copy link
Member

@thunder-coding thunder-coding left a comment

Choose a reason for hiding this comment

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

A heads up, there are some packages that are being autoupdated that take lot more time than the 6 hour limit of CI when built for all arches. I guess we can just incrementally disable autoupdates for them whenever the auto update job fails

@robertkirkman
Copy link
Contributor Author

robertkirkman commented Jul 27, 2025

A heads up, there are some packages that are being autoupdated that take lot more time than the 6 hour limit of CI when built for all arches. I guess we can just incrementally disable autoupdates for them whenever the auto update job fails

Do you know any of these off the top of your head, and are they already in big-pkgs.list, or are there any you know of that aren't?

I did think of that, but, at the moment the only check I am doing here is whether the package is in big-pkgs.list, and only applying this changed behavior if it's not.

@licy183
Copy link
Member

licy183 commented Jul 27, 2025

Do you know any of these off the top of your head, and are they already in big-pkgs.list, or are there any you know of that aren't?

Something that ships their own libllvm, for example codon.

@licy183
Copy link
Member

licy183 commented Jul 27, 2025

I think it is better to let the bot opened a new issue that reports the build failure, and then it is possible for maintainers to fix the build failure.

@robertkirkman
Copy link
Contributor Author

I think it is better to let the bot opened a new issue that reports the build failure, and then it is possible for maintainers to fix the build failure.

Technically, from a certain perspective, that is already done. The issue is here, in there you will find the notification of an error about "oxlint".

Does this mean that the system that created that issue is sufficient to handle this problem, and the kind of change this PR has is not necessary?

@licy183
Copy link
Member

licy183 commented Jul 27, 2025

I don't think it's necessary to build for all architectures, as this will definitely cause the auto-update bot to often exceed the 6h limit. It is better to wait for comments from other maintainers.

@robertkirkman
Copy link
Contributor Author

robertkirkman commented Jul 27, 2025

I don't think it's necessary to build for all architectures, as this will definitely cause the auto-update bot to often exceed the 6h limit. It is better to wait for comments from other maintainers.

I can put out a suggestion that maybe, as a compromise, only two architectures could be tested during auto update test builds, 32-bit ARM and 64-bit ARM, and this would take much less time than building all four.

That should be able to detect build failures common to both 32-bit architectures, by testing just 32-bit ARM and 64-bit ARM builds. The downside of that is that it would not be able to detect build failures that only happen for 64-bit/32-bit Android-x86. I think that it would be OK not to test x86 during auto update test builds, because I do believe that, speaking generally, x86 still has fewer build errors and is a more heavily tested architecture for CLI and X11 software, which make up the majority of packages in Termux.

(and if that idea were implemented, it would be done in such a way that if the package has excluded architectures, the excluded architectures are avoided during building appropriately)

@truboxl
Copy link
Contributor

truboxl commented Jul 28, 2025

I see no reason to strain the autoupdate CI for testing -a all.
Besides timeout, some issues already exceed character limits for storing the log.

If you want to do this properly, split the job into 4 CI, not shoehorning 4 arches into 1 CI and pray CI to not timeout.
Or a better approach, have the autoupdate CI submit a PR instead of commit directly to the master branch.

Otherwise I still stick with the current solution of building aarch64 only and fix build issues later.

@robertkirkman robertkirkman marked this pull request as draft July 28, 2025 03:38
@robertkirkman
Copy link
Contributor Author

robertkirkman commented Jul 28, 2025

If you want to do this properly, split the job into 4 CI, not shoehorning 4 arches into 1 CI and pray CI to not timeout.
Or a better approach, have the autoupdate CI submit a PR instead of commit directly to the master branch.

I agree that both of those ways are better and I always wished that Termux auto updating did one of those things instead of what it currently does.

Now that I know fundamentally changing what the auto updating workflow does like that would be acceptable to you, beyond just a small edit like the way this PR currently is, I will try to make a set of bigger changes that do something like that.

@robertkirkman
Copy link
Contributor Author

robertkirkman commented Jul 28, 2025

Just as an idea so that I know whether my plan goes in the right direction, if the termux bot could:

  • open a PR for an auto update,
  • then wait a set period of time, for example, 5 days,
  • and then if by the end of those 5 days, the PR has passed CI for all enabled (up to four) architectures, has no merge conflicts, and has not been manually merged, closed or drafted by a contributor,
  • the termux bot could create a comment that it is going to automatically merge the PR in 24 hours, then automatically rebase and merge the PR after 24 hours if the conditions are still met

then would that be an ideal situation, or is there any big problem with that plan?

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.

[Bug]: auto update system only tests bumps for one architecture before committing to master branch
4 participants