Master branch changes all the time. When and how are these changes added to stable branches? Are there any rules? Any schedules? Who decides what is included and what is not? How is the testing usually done?
I'm asking because I did a few updates to tvheadend package. I get very minimal feedback about these updates. I'm never sure if they are good enough to be included in the stable branches. I'm not even sure if they are compatible with all stable branches.
Am I expected to make pull requests for stable branches too? How often? Each update separately or many of them at once? Please give very verbose details. I'm interested how other package maintainers do it.
Or maybe stable branches updates are automated/scheduled, based on master branch? How does that work?
AFAIK there's no schedule, it's up to whoever creates the PR or merges changes to consider backporting them.
If you have submitted PR for the master branch and believe the changes should be backported, you can create a cherry-pick PR for the stable branch(es). Or ask for changes to be backported to the current stable branch.
I would create a cherry-pick PR for stable branch(es) for each update, so it's easier to revert should things go bad, rather than stacking multiple commits for backporting multiple updates.
I believe the PR template has the build test and run-time test information for you to fill for a reason. Ideally you should test on the same OpenWrt version you're sending PR for. I have a feeling tho, you'll struggle getting your changes merged down past current stable branch, unless it's a bugfix.
@neheb, @hnyman and @jow are probably the most active mergers who are present on the forum, I hope they can chime in.
You are expected to make PRs for the stable branch, too.
(somebody needs to test the changes. Likely that "somebody" is you.)
Depends a bit on the quality & type of the changes.
Small uci config errors and init script errors quickly, upstream security fixes rather quickly, and vanilla upstream version bumps maybe more slowly.
Easiest might be a PR with several smaller change commits cherry-picked from master. In any case, preferably direct commit cherry-picks, if possible.
Larger changes should preferably get at least some usage in the master first, before changes are done to a stable branch.
(A few years ago I messed up by merging a LuCI IPv6 settings improvement and backported it too quickly, without realising that the new model/default settings were placed into the dhcp config file of anybody, who just edited even other network/dhcp settings via LuCI. (The values were "default" instead of "placeholder" suggestions). And just by coincidence, 21.02.0-rc1 was tagged just after that, so the rc1 had a broken feature...
Note that backporting is more safe to do for packages that nobody else is not depending on. Libraries that several other packages use, can be problematic.
So, for that kind of less commonly used package as tvheadend, please wait 1-2 weeks after master then backport and test the stable PR.
Ps.
Some bugs also materialize only in the buildbot, where all packages are created. Our limited automatic CI may not find that kind of bugs, as it only builds the upgraded package and dependencies.
E.g. lately the wget 1.21.3 update looked ok in CI and when built privately, but the build broke in the buildbot as the upstream wget had a introduced new build config bug that materialized on certain conditions. (bug https://savannah.gnu.org/bugs/?63431 , my local fix https://github.com/openwrt/packages/pull/19992 )
How often is a new stable branch created? How is is created? From the current master branch HEAD? Or some older point in history? Are all package updates on master branch included automatically?
How do you test your changes on the stable branch? Do you have a separate device to test with? Or do you flash your "production" device?
I have router that I'm currently using and that MUST work and can never break during work days. I can only run tests during the weekend.
How would I know if anyone used it yet? It's OK and users have no issues is not the same as not OK, but nobody tried it yet.
How do you get feedback for the packages you update?
Roughly every 12-18 months.
The new stable branch gets created by the devs from the current head of the master as that time, so everything in master gets naturally included. I would guess something like 23.05 or 23.07 for the next one.
I have two devices at home, but usually I flash my main R7800 router rather frequently with 22.03 (as I publish a community build for it, and always before uploading a new build I flash my router with it...)