Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decide how we keep our builds green #7453

Closed
mattab opened this issue Mar 17, 2015 · 7 comments
Closed

Decide how we keep our builds green #7453

mattab opened this issue Mar 17, 2015 · 7 comments
Assignees
Labels
c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. RFC Indicates the issue is a request for comments where the author is looking for feedback. Task Indicates an issue is neither a feature nor a bug and it's purely a "technical" change.
Milestone

Comments

@mattab
Copy link
Member

mattab commented Mar 17, 2015

The goal of this issue is to decide on a process to ensure that the Piwik Product team has a workflow that will ensure that the CI builds across our 50+ repositories are green on every monday.

Goals:

  • Decide who is responsible to fix the builds on Monday
  1. maybe someone from the team will volunteer to "own this"
  2. or maybe a person rotating each week or month?

We could test something for a few weeks or months (eg. test the solution i. ) and if that does not well, change it to another process...

Your feedback most welcome!

@mattab mattab added Task Indicates an issue is neither a feature nor a bug and it's purely a "technical" change. c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. labels Mar 17, 2015
@mattab mattab added this to the Piwik 2.13.0 milestone Mar 17, 2015
@mattab
Copy link
Member Author

mattab commented Apr 2, 2015

one feedback is that fixing the tests every week is quite time consuming - maybe we could schedule to fix the builds of all plugins only once a month, for example ~ two weeks before the release

@mattab
Copy link
Member Author

mattab commented Apr 7, 2015

Goals

  • Detect when a plugin is broken / its behavior is changed by a change in the stable Piwik platform
  • Detect when a plugin is broken when running with the minimum required piwik version (as set in its plugin.json file)
  • fixing the tests every week could be time consuming (we'd like to find a safe way to have to fix builds less often while meeting our high quality requirements)

Assumptions

Summary: our plugins should never break or get broken by a newer Piwik version.

Proposal Plugin CI jobs setup

  • (1) Plugin CI job running against minimum required Piwik would fail build when the CI job fails
    • this is current behavior, it allows us to detect when a plugin is broken when running with the minimum required piwik
  • (2) Create a new plugin CI job running against latest stable Piwik that would fail the build if the job fails
  • it would allow us to detect when a plugin is broken / its behavior is changed by a change in the stable Piwik platform
  • (3) mark the Plugin CI jobs against Piwik platform master branch as Allowed failure.
  • eg. if bugs are introduced in Piwik master, or API changes, the plugin CI would not fail, but product developer could look at the CI job to see any failing test against master
  • (4) we still refresh all plugin CI jobs once a week on Sunday
    • this is current behavior

Summary

  • By making those proposed changes, we would meet our Goals above,
  • we would also save time and effort as the builds would not fail every week but may only fail after a stable version of Piwik has been released (or when the plugin starts to break against the minimum required piwik).
    • (this may cause Plugin bugs when after a platform stable release, the plugin build fails due to a bug in platform stable release, but this should be a rare case considering that our plugins will only call public APIs and non-deprecated code...)
      • (if we start to have such problems, then we could solve the problems by for example introducing a new routine. Imagine 1 week before stable release, a Product team member or release manager would want to check that the latest beta/RC version works well with our plugins. He would do this by looking at the plugin CI jobs that are allowed failures and would manually check if the failures are due to a cosmetic change or if any failure is due to a regression in core platform.)

what do you think?

@Tobias-Conrad
Copy link

may also check external plugins wp-piwik and woocommerce tracking.
e.g. they show data on dashboard which may is broken after update piwik.

@mattab mattab modified the milestones: Piwik 2.14.0, Piwik 2.13.0 Apr 8, 2015
@mattab mattab changed the title Decide who is responsible to fix the builds so that they are green each monday Decide how we keep the builds green at all times Apr 9, 2015
@diosmosis
Copy link
Member

@mattab I think this issue is a lot simpler now. PRO builds test against specific Piwik versions only, correct? In this case we only have to maintain the open source plugins that run tests against master.

@mattab
Copy link
Member Author

mattab commented May 20, 2015

I think this issue is a lot simpler now. PRO builds test against specific Piwik versions only, correct?

I believe that one suggestion by @mgazdzik and team is to run the PRO builds against the latest Piwik stable version only. @diosmosis I don't know if it's implemented yet though, or whether it's consistently implemented (eg. all premium plugins run builds against latest stable only, while open source plugins run builds against latest stable + master).

Maybe we need to confirm this is what we want to do, and then ensure it's consistently applied across all plugins, then hopefully we will be in a better position with regards to keeping builds green?

@mattab mattab modified the milestones: Short term, 2.14.0 Jun 16, 2015
@mattab mattab added the RFC Indicates the issue is a request for comments where the author is looking for feedback. label Jun 16, 2015
@mattab mattab modified the milestones: 3.0.0, Short term Jun 16, 2015
@mattab mattab changed the title Decide how we keep the builds green at all times Decide how we keep our builds green Jun 16, 2015
@mattab
Copy link
Member Author

mattab commented Jun 24, 2015

we are making some progress

@mattab mattab self-assigned this Aug 13, 2015
@mattab mattab modified the milestones: 2.16.x, 3.0.0 Feb 8, 2016
@mattab
Copy link
Member Author

mattab commented Apr 1, 2016

@mattab mattab closed this as completed Apr 1, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. RFC Indicates the issue is a request for comments where the author is looking for feedback. Task Indicates an issue is neither a feature nor a bug and it's purely a "technical" change.
Projects
None yet
Development

No branches or pull requests

3 participants