QtCS2016 Managing Qt Branches: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Created page with "'''Managing Qt's Branches''' Number of existing branches (5.6LTS, 5.7.,5.8 dev) causes a number of problems * Strain on COIN which also has release branches * Merging becomes...")
 
(Review ended.)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Managing Qt's Branches'''
[[Category:QtCS2016]]
=Managing Qt's Branches=


Number of existing branches (5.6LTS, 5.7.,5.8 dev) causes a number of problems
Number of existing branches (5.6LTS, 5.7.,5.8 dev) causes a number of problems
Line 6: Line 7:
* Hard to manage for individual developers
* Hard to manage for individual developers


''Branches''
==Branches==


* Close 5.7 after 5.7.1. We then have LTS, stable, dev.
* Close 5.7 after 5.7.1. We then have LTS, stable, dev.
* After 5.7 is closed and sanity bot is  upgraded (to handle cherry-picking), go into cherrypicking mode for 5.6
* After 5.7 is closed and sanity bot is  upgraded (to handle cherry-picking), go into cherrypicking mode for 5.6. Developer is responsible for doing the cherrypicking
* Cherry-picking technicalities need to be figured out: Let sanity bot verify source ("cherrypicked from") the SHA1
* Cherry-picking technicalities need to be figured out: Let sanity bot verify source ("cherrypicked from") the SHA1
* In the future, exact time for closing stable branches will be discussed for each one individually
* In the future, exact time for closing stable branches will be discussed for each one individually


''Submit Policy''
==Submit Policy==


Target which branch?
Target which branch?


* Long Term Support:
===Long Term Support (5.6) Branch===
Initially equal to stable, increasingly strict over time: Fix only severe issues, avoid regressions.
Initially equal to stable, increasingly strict over time: Fix only severe issues, avoid regressions.
* Bugs: For example, P2 for the first year, P1 for year 2, rest Security. Try to further objectify that: Jedrzei + Friedemann
* Bugs: For example, P2 for the first year, P1 for year 2, rest Security. Try to make that more objective: Jedrzei + Friedemann
* Tests: Fix/stabilize tests itself, add tests
* Tests: Fix/stabilize tests itself, add tests
* No performance improvements unless really significant (relevant/reduces O(n))
* No performance improvements unless really significant (relevant/reduces O(n))
* Upgrading 3rd party (including WebEngine)  
* Upgrading 3rd party (including WebEngine)  
* Support new OS versions unless introducing new platforms, no rewrite of QPA
* Support new OS versions unless introducing new platforms, no rewrite of QPA
* No cleanups, positively: -> dev
* No cleanups, positively: -> dev


To aid customers with issues, patches for issues in LTS to be locally applied can be provided, but the fixes will be pushed to higher versions of Qt.
To aid customers with issues, patches for issues in LTS to be locally applied can be provided, but the fixes will be pushed to higher versions of Qt.
Resulted in {{QUIP|5}} (reviewed [https://codereview.qt-project.org/#/c/178906/ here])

Latest revision as of 12:23, 12 July 2023

Managing Qt's Branches

Number of existing branches (5.6LTS, 5.7.,5.8 dev) causes a number of problems

  • Strain on COIN which also has release branches
  • Merging becomes increasingly difficult
  • Hard to manage for individual developers

Branches

  • Close 5.7 after 5.7.1. We then have LTS, stable, dev.
  • After 5.7 is closed and sanity bot is upgraded (to handle cherry-picking), go into cherrypicking mode for 5.6. Developer is responsible for doing the cherrypicking
  • Cherry-picking technicalities need to be figured out: Let sanity bot verify source ("cherrypicked from") the SHA1
  • In the future, exact time for closing stable branches will be discussed for each one individually

Submit Policy

Target which branch?

Long Term Support (5.6) Branch

Initially equal to stable, increasingly strict over time: Fix only severe issues, avoid regressions.

  • Bugs: For example, P2 for the first year, P1 for year 2, rest Security. Try to make that more objective: Jedrzei + Friedemann
  • Tests: Fix/stabilize tests itself, add tests
  • No performance improvements unless really significant (relevant/reduces O(n))
  • Upgrading 3rd party (including WebEngine)
  • Support new OS versions unless introducing new platforms, no rewrite of QPA
  • No cleanups, positively: -> dev

To aid customers with issues, patches for issues in LTS to be locally applied can be provided, but the fixes will be pushed to higher versions of Qt.

Resulted in QUIP 5 (reviewed here)