Jenkins : LTS Outlines Proposal

The main aim of this doc is to gather outlines and rules, that should followed when back-porting to the LTS. The main idea is that based on following rules the process (or some part of the process) could be scripted and automated.

General rules

  • All important bug-fixes should have JIRA
  • Git commit should contain a reference to appropriate JIRA so that link to the commit is present in the comment in JIRA or it can be easily found in git log
  • Whoever commits a fix for a given JIRA will close the JIRA (question: how to verify, that it really fix the issue?) and eventually fix the JIRA priority

Back-porting

  • Back-port all blockers and critical issues which were fixed and are already in Jenkins release for 14 days (appropriate JIRA is not re-opened)
    • Question: How to deal with/automate fixes containing several commit during loner time period?
  • No new features from upstream are back-ported

Releases

  • Major release every 3 months
  • Minor release "when needed", i.e. when some blocker or critical bug is fixed and is in Mainline release is verified that it's really fixed.

Example LTS release schedule

Date

Mainline Release

LTS Release

2011-07-11

1.420

1.409.1

2011-07-18

1.421

1.409.1

2011-07-25

1.422 - fixed major bug JENKINS-10000

1.409.1

2011-08-01

1.423

1.409.1

2011-08-08

1.424

1.409.1

2011-08-15

1.425

1.409.2 - fixed major bug JENKINS-10000

2011-08-22

1.426

1.409.2

2011-08-29

1.427 - fixed major bug JENKINS-10345

1.409.2

2011-09-05

1.428 - refix major bug JENKINS-10345

1.409.2

2011-09-12

1.429

1.409.2

2011-09-19

1.430

1.409.2

2011-09-26

1.431

1.409.3 - fixed major bug JENKINS-10345

2011-10-03

1.432

1.409.3

2011-10-10

1.433

1.424.1 - includes fix for major bug JENKINS-10345

Testing

  • CI
  • Manual tests (how will do the test, how to coordinate and share the results?)
  • Plug-in and their compatibility with RC (how to coordinate and share the results?)
  • How to share experiences from your instances (e.g. I staged latest LTS RC in our environment and run into the following troubles)?

Nice to have

Following points don't seems to be easily implemented in near future, but it would be nice to have them one day :-)

  • Every blocker and critical JIRA issue should have target release (hard to decide, which version it should be, if the patch is not available yet)
  • Every commit which fixes blocker or critical issue should have a test which verifies it
  • Fixed all JIRAs targeted to this release
  • No release until all blockers are fixed (this would suppose that we will review the existing blockers first and eventually change the priority)