Thanks for the additional info, it is helpful.

I think I need to clarify here that the database population is an optimization.

If a particular package hasn't been populated into the database when apt-listchanges is asked to display changelogs or news for it, then it will automatically populate that package synchronously. This is as opposed to your suggestion to run the entire database population job synchronously at upgrade time, which would take much longer than necessary because it would populate all packages, not just the ones being upgraded.

It may be reasonable to do a `systemctl --no-block start apt-listchanges.service` at the end of the upgrade rather than waiting until it's kicked off by the timer. I will need to think about the potential repercussions of that.

jik

On 10/2/24 12:33 PM, Josh Triplett wrote:
The concrete concern here (which I should have been much clearer about,
sorry) is that it delays the job to the next hour, rather than starting
it immediately. The behavior changes I'm looking for are to start doing
the work right away, and to make sure the work happens *before* the next
apt run, even if that takes time.

Consider this scenario, which is not an unreasonable one for folks to
try when doing a large upgrade:

1) Upgrade apt/dpkg and related packages first.
2) Upgrade the rest of the world immediately afterwards.

It's not unreasonable for someone to include apt-listchanges in group
(1).

On Thu, 26 Sep 2024 22:23:05 -0400 Jonathan Kamens<j...@kamens.us> wrote:
The solution you propose would provide a dramatically inferior user experience 
to the current implementation. I'm not going to do that.

While my timer solution is unconventional, it is deterministic and 
straightforward, works as intended, and provides a good UX. I'm not going to 
change it to something with an inferior UX over vague discomfort with the idea 
of using a timer this way.

On September 26, 2024 4:35:07 PM EDT, Josh Triplett<j...@joshtriplett.org> 
wrote:
In an ideal world, I would suggest:
- running it asynchronously from the maintainer script,
- print a message from the maintainer script saying how to run the job
  manually if it gets interrupted, "or it will be run synchronously on
  the next apt upgrade", and
- when apt-listchanges runs at upgrade time, if it hasn't yet been run,
  run it synchronously then.

Reply via email to