mbox series

[v4,00/30] builder-class series cover letter

Message ID 20190801024643.11024-1-itsatharva@gmail.com
Headers show
Series builder-class series cover letter | expand

Message

Atharva Lele Aug. 1, 2019, 2:46 a.m. UTC
Since various functions in the autobuilder script use a lot of common data, we
introduce a Builder class to house these variables.

I have also included modified versions of Thomas's commits after adapting them
to work with Builder class.

I created a v4 to change the order of one patch, and to delete another patch. No
other changes have been made.

RFC: Few patches, namely patches 25, 27-30 have not been reviewed yet. I'd like
some feedback on them, if any, so that necessary modifications can be done and
it can be merged as soon as possible.

Atharva Lele (28):
  autobuild-run: introduce Builder class
  autobuild-run: move instance variable from kwargs to Builder class
  autobuild-run: move njobs from kwargs to Builder class
  autobuild-run: move sysinfo from kwargs to Builder class
  autobuild-run: move http variables from kwargs to Builder class
  autobuild-run: move submitter from kwargs to Builder class
  autobuild-run: move make_opts from kwargs to Builder class
  autobuild-run: move niceness from kwargs to Builder class
  autobuild-run: move toolchains_csv from kwargs to Builder class
  autobuild-run: move repo from kwargs to Builder class
  autobuild-run: move upload variable from kwargs to Builder class
  autobuild-run: move buildpid from kwargs to Builder class
  autobuild-run: move debug from kwargs to Builder class
  autobuild-run: define instance directory as a part of Builder class
  autobuild-run: move log variable to Builder class
  autobuild-run: remove kwargs argument from function calls and
    definitions
  autobuild-run: define source directory as part of Builder class
  autobuild-run: define download directory as part of Builder class
  autobuild-run: define output directory as part of Builder class
  autobuild-run: define results directory as part of Builder class
  autobuild-run: move check_version() to Builder class
  autobuild-run: move get_branch() to Builder class
  autobuild-run: create reason file on build failures
  web/import.inc.php: support reading failure reason from reason file
  autobuild-run: modify do_build() to accept outputdir as argument
  autobuild-run: define different output directory for reproducible
    builds
  autobuild-run: use different output directories for reproducible
    builds testing
  autobuild-run: make prepare_build() clean the output directory used
    for reproducibility testing

Thomas Petazzoni (2):
  scripts/autobuild-run: make the HTTP URL really configurable
  scripts/autobuild-run: support changing repo

 scripts/autobuild-run | 943 +++++++++++++++++++++---------------------
 web/import.inc.php    |  26 +-
 2 files changed, 488 insertions(+), 481 deletions(-)

Comments

Thomas Petazzoni Aug. 1, 2019, 8:39 a.m. UTC | #1
Hello Atharva,

On Thu,  1 Aug 2019 08:16:13 +0530
Atharva Lele <itsatharva@gmail.com> wrote:

> Since various functions in the autobuilder script use a lot of common data, we
> introduce a Builder class to house these variables.
> 
> I have also included modified versions of Thomas's commits after adapting them
> to work with Builder class.
> 
> I created a v4 to change the order of one patch, and to delete another patch. No
> other changes have been made.
> 
> RFC: Few patches, namely patches 25, 27-30 have not been reviewed yet. I'd like
> some feedback on them, if any, so that necessary modifications can be done and
> it can be merged as soon as possible.

First of all, thanks a lot for all this work! Nice refactoring of the
autobuild-run script.

I merged all patches up to patch 27, included. According to Arnout,
applying patches 28/29/30 is problematic, because builds done in
different output directories are currently not reproducible at all, so
we would simply fail *all* reproducible builds if we apply those
patches. So I believe we need to fix this before we can apply such
patches.

A small detail is that patches 28 and 29 should be squashed together:
patch 28 is only introducing a new variable pointing to the secondary
output directory, but it's not used anywhere.

Also, long term, I'd like the send_results() method to be split into
several methods. One calculating the failure reason, one deciding if
the build result should be rejected, one preparing the build results
for upload, one doing the actual upload. But please don't work on this
additional refactoring, I think it's much more important that you focus
on the reproducible build topic.

Thanks!

Thomas
Atharva Lele Aug. 1, 2019, 10:46 a.m. UTC | #2
On Thursday, August 1, 2019 2:09:51 PM IST Thomas Petazzoni wrote:
> Hello Atharva,
> 
> On Thu,  1 Aug 2019 08:16:13 +0530
> 
> Atharva Lele <itsatharva@gmail.com> wrote:
> > Since various functions in the autobuilder script use a lot of common
> > data, we introduce a Builder class to house these variables.
> > 
> > I have also included modified versions of Thomas's commits after adapting
> > them to work with Builder class.
> > 
> > I created a v4 to change the order of one patch, and to delete another
> > patch. No other changes have been made.
> > 
> > RFC: Few patches, namely patches 25, 27-30 have not been reviewed yet. I'd
> > like some feedback on them, if any, so that necessary modifications can
> > be done and it can be merged as soon as possible.
> 
> First of all, thanks a lot for all this work! Nice refactoring of the
> autobuild-run script.

Thank you!

> I merged all patches up to patch 27, included. According to Arnout,
> applying patches 28/29/30 is problematic, because builds done in
> different output directories are currently not reproducible at all, so
> we would simply fail *all* reproducible builds if we apply those
> patches. So I believe we need to fix this before we can apply such
> patches.

Yes, correct.

> A small detail is that patches 28 and 29 should be squashed together:
> patch 28 is only introducing a new variable pointing to the secondary
> output directory, but it's not used anywhere.

OK, so once I'm done with the reproducibility fixes for different output 
directories, I'll send the revised version.

> Also, long term, I'd like the send_results() method to be split into
> several methods. One calculating the failure reason, one deciding if
> the build result should be rejected, one preparing the build results
> for upload, one doing the actual upload. But please don't work on this
> additional refactoring, I think it's much more important that you focus
> on the reproducible build topic.

Of course! I'd love to work on it once majority of work on reproducible builds 
is done.

> Thanks!
> 
> Thomas

Thanks for merging!

Regards,
Atharva Lele