[devel] [PATCH] gb: add gb-task-build-post, optimize packages with identical rebuild

Vladimir D. Seleznev vseleznv на altlinux.org
Сб Июн 13 22:32:13 MSK 2020

On Sat, Jun 13, 2020 at 08:45:19PM +0300, Dmitry V. Levin wrote:
> On Sat, Jun 06, 2020 at 04:42:21PM +0300, Alexey Tourbin wrote:
> > On Fri, Jun 5, 2020 at 5:23 PM Vladimir D. Seleznev wrote:
> > > > > Introduce task post-build processing. It finds subtasks with package
> > > > > rebuild and if the rebuilt packages identical to the same packages in
> > > > > the target repo it optimizes them.
> > > >
> > > > It doesn't make much sense. When we rebuild a package without changing
> > > > the release, we expect something else in the package to change because
> > > > of the rebuild (e.g. a binary will be linked with a new library
> > > > version). If the package hasn't changed, it is an alarming condition
> > > > which indicates that some of the packager's assumptions were wrong
> > > > (e.g. the binary actually doesn't link with the library). So should we
> > > > really "optimize" this case? We might as well prohibit it!
> > >
> > > By "prohibit" you mean make task build fail? I would say that it is
> > > unnecessary. It'd produce additional difficulties for maintainers
> > > without any profit.
> > 
> > The difficulties are all in the maintainers' heads.
> > There must be a valid reason for rebuilding a package.
> Given that rebuilding a package costs so little for the maintainer,
> we definitely should reject rebuilds that do not result to changed
> packages.

So you think than tasks should fail if rebuild do not result to changed
packages. I argue with that. Packages optimization in that case is more
graceful solution and less disturbing. And imaging the case when you
have a big task with a lot of subtasks caused by brand new Python
update.  Some of these subtasks may be unchanged after rebuild and I
don't see why they should be failed. But if they will, this will
produce too much needless work for the poor maintainer.

Now subtasks do not fail if somebody just rebuilds packages if their
builds aren't broken, and if their results unchange packages, we have
wasted storage space. If packages will be optimized, this storage space
will be saved.

But I like the idea to optimize repo updates for optimized subtasks. And
I think there will be no harm if task will fail if all of its subtasks
will have unchanged packages after rebuild.

   Vladimir D. Seleznev

Подробная информация о списке рассылки Devel