[snowpatch] Announcing snowpatch 0.2

Leonard Low leolow at au1.ibm.com
Mon Aug 13 09:32:13 AEST 2018


Great work Russell and team,

I really appreciate you taking on this innovation and working on it when
you can. This looks like useful work that will help prepare us for P10.
Please do continue to progress this, especially while many folks in the
team have a little breathing space in our deliveries to work on
interesting, innovative and useful projects like this one.

Cheers,
Leonard

Leonard Low
Senior Engineering Manager
POWER Architecture Enablement
Linux Technology Centre, IBM Systems
IBM Australia Development Labs, Canberra
Mobile: +61 4 1338 6684
Fax: +61 2 6273 1808



From:	Russell Currey <ruscur at russell.cc>
To:	snowpatch at lists.ozlabs.org
Cc:	mpe at ellerman.id.au, stewart at linux.ibm.com
Date:	10/08/2018 07:33 pm
Subject:	Announcing snowpatch 0.2



It has been over two years, but we finally went from snowpatch 0.1 to 0.2,
marking
us completing all the things we needed to in order to be deployed in
production
running on upstream Patchwork.  A lot of changes were necessary in
Patchwork in
order to introduce the features we needed, which was a large blocker.

In terms of snowpatch itself, the codebase has matured a lot - we now have
automatic linting and have done a lot of tidying up (though there's much
more to
do).  We had to change HTTP libraries (from hyper to reqwest),
serialisation
frameworks (from rustc_serialize to serde), and implement support for a
completely
different Patchwork API to what we originally used.

It has been worth it, though, because now we are running in production for
multiple projects on patchwork.ozlabs.org, most notably linuxppc-dev where
snowpatch runs 4 different kernel builds, with intelligent sparse diffs, on
every
complete series.  This has already found bugs and most notably, caused
submitters
to send a v2 before any human involvement told them they should.

There's still more to do in snowpatch, but there is certainly less to do
than
there was, so we will most likely be tagging releases much more frequently.
The
primary next objective is to expand what we use snowpatch for, and
hopefully
expand its use - now that things have been running in production with no
disasters, I plan to announce snowpatch's existence on the mailing lists
for
Patchwork and all the projects it's currently testing.

In addition to this, we need to do a better job of documentation and making
it
simple for others to get snowpatch going - we're pretty sure the only
production
instance of snowpatch out there is the one I'm running - and now that
kernel.org
in particular has updated their Patchwork, there's the possibility that a
heap of
projects could use snowpatch if they wanted to, so getting the word out and
making
it easy is what we need to do.

I plan to release a blog post soon going over the snowpatch workflow which
will
hopefully be a good reference point.

Special thanks to Andrew, without whom nothing would get done because we
would
probably both procrastinate, but seeing each other helps remind us to do
things.

Anyway, since snowpatch-0.1 we have had the following giant pile of
commits:

Andrew Donnellan (55):
      Initial support for testing from multiple base branches
      docs: add new contribution guidelines document
      jenkins: add wait_build() method to poll Jenkins build status at
intervals
      jenkins: get_build_status(): give a better error when JSON decoding
fails
      settings: print better errors when config deserialisation fails
      docs: add details about patch tracking on patchwork.ozlabs.org
      settings: remove unnecessary import and associated warning
      Include branch name in test results sent to Patchwork
      patchwork: refactor GET request boilerplate into private method
      jenkins: refactor HTTP boilerplate
      Cargo.toml: add additional crate metadata
      Cargo.lock: update dependencies
      jenkins: refactor to get rid of lifetime specifiers
      Allow use of the --project flag in polling mode, not just with --mbox
      jenkins: support token authentication
      examples: fix authentication details in example config
      README: document dependencies better
      Cargo.lock: update dependencies
      patchwork: replace unneeded extern crate with use
      Add documentation on clippy, fix clippy warnings
      Cargo.toml: update dependencies
      Cargo.toml: update yup-hyper-mock
      Make TestState less horrible
      jenkins: get build result
      Cargo.toml: update dependencies
      Migrate from rustc_serialize to serde
      clippy warnings: use of assert_eq!()
      examples: update/improve openpower.toml
      settings: add basic tests
      settings: improve parsing of jobs
      git: remove empty test
      Update dependencies
      main: Use SSL connector for non-proxied connections
      Update Cargo.lock
      patchwork: Get rid of dummy URL for test results
      Cargo.toml: Update url, mime dependencies
      Cargo.toml: Update docopt dependency
      Cargo.toml: Update log, env_logger dependencies
      Use up-to-date commit ID when creating new test branch
      CONTRIBUTING.md: Update references, add rustfmt information
      README.md: Update copyright date
      README.md: Overview of snowpatch philosophy
      README.md: Update installation instructions
      README.md: Add information about project status and documentation
      docs: Add configuration documentation
      snowpatch 0.2.0-beta.0
      snowpatch 0.2.0-beta.1
      README.md: Add Crates.io badge
      Don't test pull requests
      Fix --series option
      Support pagination when using --count
      Fix clippy warnings
      Update Cargo.lock
      jenkins: rustfmt style fixes
      snowpatch 0.2.0

Joel Stanley (1):
      Add Travis CI

Russell Currey (39):
      Update README to look prettier on GitHub
      Move the Travis build status into the header
      Treat build warnings as failures
      Use patchwork "linkname" instead of "name"
      Don't retest patches that have already been tested
      Update dependencies
      Update deps, bumping url crate to 1.1
      HTTP proxy support
      Add env_logger and update dependencies
      Enable env_logger logging, use logging macros
      docs: Add documentation for logging
      Fix bad markdown in logging.md
      args: Fix (-v | --version)
      Update dependencies: git2 0.4, url 1.2 and more
      jenkins: retry when Jenkins doesn't give us a build URL
      hyper: Always follow redirects
      utils: add additional characters to path sanitiser
      git: Use 3-way merge when applying patches
      patchwork: fix polling sleep time
      git: print info when apply fails
      Replace ssh agent authentication with explicit key
      git: force reset + clean the repository before applying patches
      jenkins: post URL to test results
      Allow specifying a title for each job
      Upstream Patchwork support
      Hefty tests
      Add warn-on-fail for non-critical tests
      Remove jenkins_test and explicit [[bin]] section
      Cargo.lock minor point updates
      Style changes from rustfmt
      Add script to set up running rustfmt on commit
      Convert from hyper to reqwest
      Require project argument to be specified for daemon mode
      Delete remote branch after tests are done
      Jenkins: Try again instead of panic if API call fails
      Don't link to job console output, link to job instead
      Clean up an unnecessary clone
      Implement sending results to Patchwork for --patch
      Improve "context" sent in Patchwork checks



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/snowpatch/attachments/20180813/5ce2f11b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/snowpatch/attachments/20180813/5ce2f11b/attachment.gif>


More information about the snowpatch mailing list