public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ni, Ray" <ray.ni@intel.com>
To: "rfc@edk2.groups.io" <rfc@edk2.groups.io>,
	"lersek@redhat.com" <lersek@redhat.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Gao, Liming" <liming.gao@intel.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-rfc] [edk2-devel] [RFC] EDK II Continuous Integration Phase 1
Date: Tue, 3 Sep 2019 03:39:51 +0000	[thread overview]
Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C2BD07D@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <b32d35db-33db-31e0-03a9-dd7f478aa19c@redhat.com>

Can someone draw a flow chart of who does what to help clarify?

It sounds like maintainers are going to be the very important bridges between CI system and the patch owners (developers). Important it is I agree but boring it is as well I have to say.

Are maintainers still needed to be picked up/chosen/promoted from developers?

> -----Original Message-----
> From: rfc@edk2.groups.io <rfc@edk2.groups.io> On Behalf Of Laszlo Ersek
> Sent: Friday, August 30, 2019 5:58 AM
> To: devel@edk2.groups.io; Gao, Liming <liming.gao@intel.com>; rfc@edk2.groups.io; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Subject: Re: [edk2-rfc] [edk2-devel] [RFC] EDK II Continuous Integration Phase 1
> 
> On 08/30/19 10:43, Liming Gao wrote:
> > Mike:
> >   I add my comments.
> >
> >> -----Original Message-----
> >> From: rfc@edk2.groups.io [mailto:rfc@edk2.groups.io] On Behalf Of Michael
> >> D Kinney
> >> Sent: Friday, August 30, 2019 4:23 AM
> >> To: devel@edk2.groups.io; rfc@edk2.groups.io
> >> Subject: [edk2-rfc] [RFC] EDK II Continuous Integration Phase 1
> >>
> >> Hello,
> >>
> >> This is a proposal for a first step towards continuous
> >> integration for all TianoCore repositories to help
> >> improve to quality of commits and automate testing and
> >> release processes for all EDK II packages and platforms.
> >>
> >> This is based on work from a number of EDK II community
> >> members that have provide valuable input and evaluations.
> >>
> >> * Rebecca Cran <rebecca@bsdio.com> Jenkins evaluation
> >> * Laszlo Ersek <lersek@redhat.com> GitLab evaluation
> >> * Philippe Mathieu-Daudé <philmd@redhat.com> GitLab evaluation
> >> * Sean Brogan <sean.brogan@microsoft.com> Azure Pipelines and HBFA
> >> * Bret Barkelew <Bret.Barkelew@microsoft.com> Azure Pipelines and HBFA
> >> * Jiewen Yao <jiewen.yao@intel.com> HBFA
> >>
> >> The following link is a link to an EDK II WIKI page that
> >> contains a summary of the work to date.  Please provide
> >> feedback in the EDK II mailing lists.  The WIKI pages will
> >> be updated with input from the entire EDK II community.
> >>
> >>    https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Continuous-
> >> Integration
> >>
> >> Proposal
> >> ========
> >> Phase 1 of adding continuous integration is limited to the
> >> edk2 repository.  Additional repositories will be added later.
> >>
> >> The following changes are proposed:
> >> * Remove EDK II Maintainers write access to edk2 repository.
> >>  Only EDK II Administrators will continue to have write
> >>  access, and that should only be used to handle extraordinary
> >>  events.
> >> * EDK II Maintainers use a GitHub Pull Request instead of push
> >>  to commit a patch series to the edk2 repository.  There are
> >>  no other changes to the development and review process.  The
> >>  patch series is prepared in an EDK II maintainer branch with
> >>  all commit message requirements met on each patch in the series.
> >
> > Will the maintainer manually provide pull request after the patch passes the review?
> 
> Yes. The maintainer will prepare a local branch that is rebased to
> master, and has all the mailing list feedback tags (Reviewed-by, etc)
> applied. The maintainer also does all the local testing that they
> usually do, just before the final "git push origin".
> 
> Then, the final "git push origin" action is replaced by:
> (1) git push personal-repo topic-branch-pr
> (2) manual creation of a GitHub.com Pull Request, for the topic branch
> just pushed.
> 
> That is, the final "git push origin" action is replaced with the pushing
> of a personal (ready-made) topic branch, and a GitHub.com Pull Request
> against that branch. The verification and the final merging will be
> performed by github.
> 
> > Can the script scan the mail list and auto trig pull request once the patch gets
> > Reviewed-by or Acked-by from Package maintainers?
> 
> No, it can't. (And, at this stage, it should not.) The coordination
> between submitters, maintainers, reviewers, and occasionally, stewards,
> for determining when a patch series is ready to go, based on review
> discussion, remains the same.
> 
> >> * The edk2 repository only accepts Pull Requests from members
> >>  of the EDK II Maintainers team.  Pull Requests from anyone else
> >>  are rejected.
> >> * Run pre-commit checks using Azure Pipelines
> >
> > The maintainer manually trig pre-commit check or auto trig pre-commit?
> 
> After the maintainer pushes the ready-made branch to their personal
> repo, and submits a PR against that, the PR will set off the checks. If
> the checks pass, the topic branch is merged.
> 
> > By default, pre-commit should be auto trigged based on pull request.
> >
> >> * If all pre-commit checks pass, then the patch series is auto
> >>  committed.  The result of this commit must match the contents
> >>  and commit history that would have occurred using the previous
> >>  push operation.
> >> * If any pre-commit checks fail, then notify the submitter.
> >
> > Will Pre-commit check fail send the mail to the patch submitter?
> > The patch submitter need update the patch and go through review process again.
> 
> My understanding is that, if the testing in GitHub.com fails, the PR
> will be rejected and closed. This will generate a notification email for
> the maintainer that submitted the PR. The maintainer can then return to
> the email thread, and report the CI failure, possibly with a link to the
> failed / rejected PR.
> 
> Then, indeed, the submitter must rework the series and post a new
> version to the list.
> 
> It's also possible (and polite) if the maintainer posts the PR link in
> the mailing list thread right after submitting the PR. Then the
> submitter can monitor the PR too. (Subscribe to it for notifications.)
> As I understand it.
> 
> Furthermore,
> 
> >
> >>  A typical reason for a failure would be a merge conflict with
> >>  another pull request that was just processed.
> >> * Limit pre-commit checks execution time to 10 minutes.
> >> * Provide on-demand builds to EDK II Maintainers that to allow
> >>  EDK II Maintainers to submit a branch through for the same
> >>  set of pre-commit checks without submitting a pull request.
> 
> a maintainer could use this on-demand build & testing facility in the
> course of review, to report findings early.
> 
> Thanks
> Laszlo
> 
> >>
> >> ## Pre-Commit Checks in Phase 1
> >> * Run and pass PatchCheck.py with no errors
> >>
> >> =====================================================
> >>
> >> The following are some additional pre-commit check ideas
> >> that could be quickly added once the initial version using
> >> PatchCheck.py is fully functional.  Please provide feedback
> >> on the ones you like and additional ones you think may
> >> improve the quality of the commits to the edk2 repository.
> >>
> >> ## Proposed Pre-Commit Checks in Phase 2
> >> * Verify Reviewed-by and Acked-by tags are present with
> >>  correct maintainer email addresses
> >> * Verify no non-ASCII characters in modified files
> >> * Verify no binary files in set of modified files
> >
> > Now, Edk2 has few binary files, like logo.bmp.
> > I see one BZ to request logo bmp update.
> > (BZ https://bugzilla.tianocore.org/show_bug.cgi?id=2050)
> > So, we need the exception way for it.
> >
> >> * Verify package dependency rules in modified files
> >>
> >> ## Proposed Pre-Commit Checks in Phase 3
> >> * Run ECC on modified files
> >> * Verify modified modules/libs build
> >> * Run available host based tests (HBFA) against modified
> >>  modules/libs
> >>
> >
> > I request boot test on Emulator and Ovmf in the daily and weekly scope.
> > Daily can cover boot to Shell.
> > Weekly can cover more boot functionality.
> 
> 


  reply	other threads:[~2019-09-03  3:39 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-29 20:22 [RFC] EDK II Continuous Integration Phase 1 Michael D Kinney
2019-08-29 20:39 ` [edk2-devel] " Michael Zimmermann
2019-08-29 21:08   ` Michael D Kinney
2019-08-30  2:21 ` Sean
2019-08-30 13:11   ` [edk2-devel] " Laszlo Ersek
2019-09-13 21:00     ` Sean
2019-09-16 11:06       ` Laszlo Ersek
2019-09-19 21:45   ` Michael D Kinney
2019-09-19 21:55   ` Michael D Kinney
2019-09-20 21:29     ` Sean
2019-09-23 17:44       ` Michael D Kinney
2019-09-24 14:05         ` Liming Gao
2019-08-30  8:43 ` Liming Gao
2019-08-30 12:58   ` [edk2-devel] " Laszlo Ersek
2019-09-03  3:39     ` Ni, Ray [this message]
2019-09-03 13:19       ` [edk2-rfc] " Laszlo Ersek
2019-09-03 16:41         ` Ni, Ray
2019-09-03 16:55           ` Laszlo Ersek
2019-09-03 17:09             ` Sean
2019-09-03 17:45               ` Laszlo Ersek
2019-09-19 21:13                 ` Michael D Kinney
2019-09-04 23:56           ` rebecca
2019-09-19 17:53   ` Michael D Kinney
2019-08-31 20:31 ` [edk2-rfc] " rebecca
2019-09-17  3:46 ` [edk2-devel] " rebecca

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=734D49CCEBEEF84792F5B80ED585239D5C2BD07D@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox