)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"43b39920296a2e11e6932686eb7f97c6267b9f87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ac2fe5a9_00ad9be1","updated":"2025-07-22 11:28:32.000000000","message":"by the way since this document is using git-review i think we shoudl continue to use git review in the backporting section in prefence to the raw git commands.","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b25178cf4f0dd95de079d1ad8864d0186457b7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9413445b_463a942e","updated":"2025-07-29 16:42:33.000000000","message":"Just for the mistaken use of `-X` rather than `-x` in one place (sorry). Otherwise, this is good to me.","commit_id":"afa878b763b0784399815f4870621d2ffb2cb957"},{"author":{"_account_id":37881,"name":"Wesley Hershberger","display_name":"Wesley Hershberger","email":"wesley.hershberger@canonical.com","username":"whershberger","status":"Support Engineering @ Canonical"},"change_message_id":"7418572bdc36de1ec0d23f536aa3e82d6f2bfbd2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"dcadcd5d_89c787e5","updated":"2025-08-15 16:06:19.000000000","message":"I followed this process again today with great success; it would be really nice if this could be merged. Thanks all.","commit_id":"6826afb750c77ddacc6e4cd4bddd92270c297c4d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7be2a667543bad8030527632c86d805a05c680e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"36bc8608_79e9aa1a","updated":"2025-08-15 19:17:30.000000000","message":"Thank you; this is quite helpful!","commit_id":"cc5d094acb9a5bea8c031cb77c99c50dace465cd"}],"doc/source/code-and-documentation/using-gerrit.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"43b39920296a2e11e6932686eb7f97c6267b9f87","unresolved":true,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. code-block:: console"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"  git review -x \u003cchange ID\u003e"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ec5174a_c501955b","line":255,"range":{"start_line":255,"start_character":13,"end_line":255,"end_character":15},"updated":"2025-07-22 11:28:32.000000000","message":"this should be -X to include the cherry-picked form lines","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3729bf4baa2b9d504cf404d94803ce2d98fb8f9f","unresolved":true,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. code-block:: console"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"  git review -x \u003cchange ID\u003e"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"8ace6a4f_b396feae","line":255,"range":{"start_line":255,"start_character":13,"end_line":255,"end_character":15},"in_reply_to":"3a4fcc4e_4634a97c","updated":"2025-07-30 15:48:33.000000000","message":"oh your right. \nthis is suggeitng you checkout the parent commit that you have update and cherrypick the later patches.\n\nyes i would do git review -d \u003cchange ID\u003e to download the patch that is based on the old revision then rebase on the updated patch. or just do it vai the ui as you said.\n\nbut yes that the diffent between `-x` and `-X`\n\nthe former will not add the cherry pick line which is not needed in this case.\n\ni orgirnally othgt this was related to cherry-picking for backporting.","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b25178cf4f0dd95de079d1ad8864d0186457b7b","unresolved":true,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. code-block:: console"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"  git review -x \u003cchange ID\u003e"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a4fcc4e_4634a97c","line":255,"range":{"start_line":255,"start_character":13,"end_line":255,"end_character":15},"in_reply_to":"3ec5174a_c501955b","updated":"2025-07-29 16:42:33.000000000","message":"I think you\u0027ve mixed this up, Sean. This section describes how to rework an existing, unmerged patch so that it depends on another series. This would be equivalent to selecting the Rebase button on the Gerrit UI and selecting `Rebase on a specific change, ref, or commit`. In this situation, you don\u0027t want to use `-X` since that will add a `cherry picked from` line for a patch that is not currently merged.\n\n(fwiw, I wouldn\u0027t do this. I would download both series and rebase my one on the other one locally. But that\u0027s irrelevant since what\u0027s described here is also viable).","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":37881,"name":"Wesley Hershberger","display_name":"Wesley Hershberger","email":"wesley.hershberger@canonical.com","username":"whershberger","status":"Support Engineering @ Canonical"},"change_message_id":"7418572bdc36de1ec0d23f536aa3e82d6f2bfbd2","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. code-block:: console"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"  git review -x \u003cchange ID\u003e"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"c16764e6_2f2f12e1","line":255,"range":{"start_line":255,"start_character":13,"end_line":255,"end_character":15},"in_reply_to":"8ace6a4f_b396feae","updated":"2025-08-15 16:06:19.000000000","message":"Done","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"946dcf49944e0d471c4cb7adbb8bac31f3552d94","unresolved":true,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Backports"},{"line_number":260,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"In order to backport a commit that has been merged to master, the commit must"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8038c9f7_28ad484b","line":259,"updated":"2025-07-29 16:45:29.000000000","message":"If you create an anchor here, you can use the `ref` role instead, which allows Sphinx to ensure the anchor actually exists and handles things like doc sections and docs getting moved around.\n\n```suggestion\n.. _backporting:\n\nBackports\n```","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"74a70bd79ec44264d0e8cd0e9ed22c10b1adba61","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Backports"},{"line_number":260,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"In order to backport a commit that has been merged to master, the commit must"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4a4d8820_06307860","line":259,"in_reply_to":"8038c9f7_28ad484b","updated":"2025-07-30 15:02:09.000000000","message":"Done","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"946dcf49944e0d471c4cb7adbb8bac31f3552d94","unresolved":true,"context_lines":[{"line_number":260,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"In order to backport a commit that has been merged to master, the commit must"},{"line_number":263,"context_line":"be backported to all `stable branches \u003c/common/releases#stable-branches\u003e`"},{"line_number":264,"context_line":"between master and the target stable branch (even if some of those branches are"},{"line_number":265,"context_line":"Unmaintained). If a commit must be backported to multiple stable branches, each"},{"line_number":266,"context_line":"backport should be cherry-picked from the next-newest backport. For example, to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baea648b_11f89067","line":263,"updated":"2025-07-29 16:45:29.000000000","message":"As above.\n\n```suggestion\nbe backported to all :ref:`stable branches \u003cstable-branches\u003e`\n```\n\nMore comments in the next file.","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"74a70bd79ec44264d0e8cd0e9ed22c10b1adba61","unresolved":false,"context_lines":[{"line_number":260,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"In order to backport a commit that has been merged to master, the commit must"},{"line_number":263,"context_line":"be backported to all `stable branches \u003c/common/releases#stable-branches\u003e`"},{"line_number":264,"context_line":"between master and the target stable branch (even if some of those branches are"},{"line_number":265,"context_line":"Unmaintained). If a commit must be backported to multiple stable branches, each"},{"line_number":266,"context_line":"backport should be cherry-picked from the next-newest backport. For example, to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b6e8068e_fbb6d77c","line":263,"in_reply_to":"baea648b_11f89067","updated":"2025-07-30 15:02:09.000000000","message":"Done","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fd4e58277ab9f64b5e14c1f41a3d986e874f40aa","unresolved":true,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":".. code-block:: console"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"  git switch stable/2025.1"},{"line_number":272,"context_line":"  git cherry-pick -x 82984e7  # Produces commit ef52c67"},{"line_number":273,"context_line":"  git switch stable/2024.2"},{"line_number":274,"context_line":"  git cherry-pick -x ef52c67  # Produces commit a73df29"},{"line_number":275,"context_line":"  git switch stable/2024.1"},{"line_number":276,"context_line":"  git cherry-pick -x a73df29"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":".. _+2: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-2"},{"line_number":279,"context_line":".. _+1: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b94ae75e_54c72032","line":276,"range":{"start_line":271,"start_character":0,"end_line":276,"end_character":28},"updated":"2025-07-22 11:22:21.000000000","message":"so i would say this is incorrect for 3 reasons \n\none it skips the git review step to submit the review so you didn\u0027t actually submit the cherry-pick for review and second you shoudl not commit directly to the branch, third you shoudl use the git review tool and avoid git switch.\n\nthe way i normal do this is as follows assuming this is for bug 123\n\n```suggestion\n  git fetch --all\n  git checkout -b bug/123 gerrit/stable/2025.1\n  git review -X 456\n  # Produces review 457\n  git review -f\n  git checkout -b bug/123 gerrit/stable/2024.2\n  git review -X 457\n  # Produces review 458\n  git review -f\n  git checkout -b bug/123 gerrit/stable/2024.1\n  git review -X 458\n  # Produces review 459\n  git review -f\n```\n\ntwo thing to note about this workflow are that in general the cherry picked lines will need to be update with the actuall commit sha for the commit that merged as its likely that something else will merge before this.\n\nby convention the branch and topic for a backport should be bug/\u003cbug number\u003e\nacross all branches so you shoudl not suffix the topic with the stable branch name.","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":37881,"name":"Wesley Hershberger","display_name":"Wesley Hershberger","email":"wesley.hershberger@canonical.com","username":"whershberger","status":"Support Engineering @ Canonical"},"change_message_id":"7418572bdc36de1ec0d23f536aa3e82d6f2bfbd2","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":".. code-block:: console"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"  git switch stable/2025.1"},{"line_number":272,"context_line":"  git cherry-pick -x 82984e7  # Produces commit ef52c67"},{"line_number":273,"context_line":"  git switch stable/2024.2"},{"line_number":274,"context_line":"  git cherry-pick -x ef52c67  # Produces commit a73df29"},{"line_number":275,"context_line":"  git switch stable/2024.1"},{"line_number":276,"context_line":"  git cherry-pick -x a73df29"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":".. _+2: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-2"},{"line_number":279,"context_line":".. _+1: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b561520f_a02deb35","line":276,"range":{"start_line":271,"start_character":0,"end_line":276,"end_character":28},"in_reply_to":"43929cc3_ce21d1b7","updated":"2025-08-15 16:06:19.000000000","message":"Done","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b25178cf4f0dd95de079d1ad8864d0186457b7b","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":".. code-block:: console"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"  git switch stable/2025.1"},{"line_number":272,"context_line":"  git cherry-pick -x 82984e7  # Produces commit ef52c67"},{"line_number":273,"context_line":"  git switch stable/2024.2"},{"line_number":274,"context_line":"  git cherry-pick -x ef52c67  # Produces commit a73df29"},{"line_number":275,"context_line":"  git switch stable/2024.1"},{"line_number":276,"context_line":"  git cherry-pick -x a73df29"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":".. _+2: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-2"},{"line_number":279,"context_line":".. _+1: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f354094_df876ba8","line":276,"range":{"start_line":271,"start_character":0,"end_line":276,"end_character":28},"in_reply_to":"43929cc3_ce21d1b7","updated":"2025-07-29 16:42:33.000000000","message":"I agree that the `git review -f` steps were missing. I also agree that you should have multiple `cherry picked from` lines and apologise for not making this clearer on https://review.opendev.org/c/openstack/nova/+/955310/comment/81513f60_d4b469a9/ I *don\u0027t* think we need to use `checkout` rather than `switch`, since existing users will continue to use `checkout` and new users should probably prefer the newer commands (as Wesley notes, `checkout` is hopelessly overloaded and we only understand it through years of ~pain~ use 😄), but that is not a hill I\u0027d like to die on. Finally, regarding this comment:\n\n\u003e the cherry picked lines will need to be update with the actuall commit sha for the commit that merged as its likely that something else will merge before this\n\nI think Sean is mistaken here as Gerrit (and least OpenDev\u0027s instance) will do a merge rather than a rebase. As a result, the commit ID will never change unless you make a change to the commit. It might be worth noting here that if you need to rework a commit on a later release (i.e. to add some missing context to a commit message or to remove a errant conflict marker) then the commit ID will change and you will need to re-cherry-pick the change to the earlier branches. This is one downside of proposing backports to multiple branches upfront rather than doing them one-by-one as they merge but it\u0027s not a particularly common situation to find yourself in.\n\nI suspect we\u0027ve talked enough about this now, so I\u0027m marking this thread as resolved.","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":37881,"name":"Wesley Hershberger","display_name":"Wesley Hershberger","email":"wesley.hershberger@canonical.com","username":"whershberger","status":"Support Engineering @ Canonical"},"change_message_id":"c5596204e10fc9322a91754c31caa8a86e798e9e","unresolved":true,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":".. code-block:: console"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"  git switch stable/2025.1"},{"line_number":272,"context_line":"  git cherry-pick -x 82984e7  # Produces commit ef52c67"},{"line_number":273,"context_line":"  git switch stable/2024.2"},{"line_number":274,"context_line":"  git cherry-pick -x ef52c67  # Produces commit a73df29"},{"line_number":275,"context_line":"  git switch stable/2024.1"},{"line_number":276,"context_line":"  git cherry-pick -x a73df29"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":".. _+2: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-2"},{"line_number":279,"context_line":".. _+1: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f5cd7594_40e2c436","line":276,"range":{"start_line":271,"start_character":0,"end_line":276,"end_character":28},"in_reply_to":"b94ae75e_54c72032","updated":"2025-07-24 20:37:57.000000000","message":"Thanks for the review!\n\nI\u0027m not sure I understand what you mean by \"the cherry picked lines will need to be update with the actuall commit sha for the commit that merged as its likely that something else will merge before this\"\n\n1. Will fix.\n2. Will fix.\n3. \n  - I\u0027m extremely skeptical of `git checkout`; it\u0027s a hostile command for inexperienced git users because its meaning is overloaded. I would much prefer `git switch -c \u003cnewbranch\u003e \u003cbase\u003e`, which accomplishes the same as `checkout -b` here.\n  - This change was inspired by [this convo](https://review.opendev.org/c/openstack/nova/+/955310/1..3//COMMIT_MSG#b23); doesn\u0027t using `git review -X` instead of `cherry-pick` completely defeat the purpose of backporting in a row like this? E.g. the Change-Id will be the same for each `-X` (`git review -X` doesn\u0027t accept commit hashes), so you need to manually fixup each backport\u0027s commit message for the \"right\" \"cherry picked from\" anyway?\n\nAfter submitting this I ran into [this document](https://docs.openstack.org/project-team-guide/stable-branches.html#proposing-fixes) that also uses `git cherry-pick`; my next submission will include a link to that document in the \"Backports\" section, unless you\u0027d prefer we just link it from \"Cherry-picking\" and call it a day. I have no particular preference there.","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"995a2510341924f122481c89dc75c9cda94b6f54","unresolved":true,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":".. code-block:: console"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"  git switch stable/2025.1"},{"line_number":272,"context_line":"  git cherry-pick -x 82984e7  # Produces commit ef52c67"},{"line_number":273,"context_line":"  git switch stable/2024.2"},{"line_number":274,"context_line":"  git cherry-pick -x ef52c67  # Produces commit a73df29"},{"line_number":275,"context_line":"  git switch stable/2024.1"},{"line_number":276,"context_line":"  git cherry-pick -x a73df29"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":".. _+2: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-2"},{"line_number":279,"context_line":".. _+1: https://docs.openstack.org/project-team-guide/review-the-openstack-way.html#code-review-plus-1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"43929cc3_ce21d1b7","line":276,"range":{"start_line":271,"start_character":0,"end_line":276,"end_character":28},"in_reply_to":"f5cd7594_40e2c436","updated":"2025-07-24 22:26:57.000000000","message":"honsetly i ithink using git swtich vs chekcout is purly personal prence and i personlay find it to be much more confusing vs checkout.\n\n\nanyone who has used git before switch was introduced is very unlikely to adopt it.\ni personaly find it much less intuitive i would generally find using git switch to be a regressions.\n\nthe reason for this guide is on how to use gerrit.\ngit review was devleop to natively integrat gerrits workflow into the git cli.\nso we shoudl prefer the command provided by git review over raw git commands.\n\nregarding the change id the fact that the change id is the same across branches is actully a requirement for backporting.\nit incorrect to have different change ids across branches.\ngerrit understands branches and is able ot properly track review with the same chagne id with diffent target branches. its imporant to keep it the same as we use the change id to know if it has been backprot to a given branch and there is tooling that relies on that.\n\nthat is partly why specificly in nova we have extra tooling to try and make sure the patch is merged in new branches when backporting. we want to ensure you never skip a branch unless the branch is eol. that really only happens when going form stable to unmaintained branches but its still an important rule.\n\nregarding  git review -X no you do not need to fix up the cherry picked lines provided you do not need to rebase a patch after its submitted.\ngit review -X accpets the gerrit review number that you are cherry picking form and will extract the sha automatically and append it to the commit message for you.\n\nwhat you have misunderstood about https://review.opendev.org/c/openstack/nova/+/955310/comment/81513f60_d4b469a9/\n\nis that you shoudl have multiple cherry picked lines not one.\nevery time you backport an additional branch you shoudl have one additional cherry picked from line.\n\nthat server both to recored which commit your backporting form since you do not backport form master directly but also allows you to count the backports and spot if a branch was potentially skipped by mistatke.\n\n\nlinking that document is also fine.\nit was created to codeify some of the practices used in nova and ohter porject btu its focus is more on the reviewsrs fo the code rather then the authors.\n\ni.e. that doc is callign out the thing that hte stable reviewers shoudl check are correct when reviewing a backport rather then a descriptive document for how to actually do it. it does have example of but it was not written primarly for new contibutors so its good as a refence but not nessiarly inteded for someone new to backporting.","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b25178cf4f0dd95de079d1ad8864d0186457b7b","unresolved":true,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. code-block:: console"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"  git review -X \u003cchange ID\u003e"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"46a7e3c2_b2e9f774","line":255,"updated":"2025-07-29 16:42:33.000000000","message":"See my comment on PS1: I think Sean has put you astray here (though we should likely wait for them to weigh in again rather than going back and forth)","commit_id":"afa878b763b0784399815f4870621d2ffb2cb957"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"74a70bd79ec44264d0e8cd0e9ed22c10b1adba61","unresolved":true,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. code-block:: console"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"  git review -X \u003cchange ID\u003e"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"833690ee_ac93e354","line":255,"in_reply_to":"46a7e3c2_b2e9f774","updated":"2025-07-30 15:02:09.000000000","message":"This still needs to be reverted","commit_id":"afa878b763b0784399815f4870621d2ffb2cb957"},{"author":{"_account_id":37881,"name":"Wesley Hershberger","display_name":"Wesley Hershberger","email":"wesley.hershberger@canonical.com","username":"whershberger","status":"Support Engineering @ Canonical"},"change_message_id":"7418572bdc36de1ec0d23f536aa3e82d6f2bfbd2","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. code-block:: console"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"  git review -X \u003cchange ID\u003e"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The change ID is the same as in the previous case."},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fb5199cc_581d7957","line":255,"in_reply_to":"833690ee_ac93e354","updated":"2025-08-15 16:06:19.000000000","message":"Done","commit_id":"afa878b763b0784399815f4870621d2ffb2cb957"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b25178cf4f0dd95de079d1ad8864d0186457b7b","unresolved":true,"context_lines":[{"line_number":264,"context_line":"between master and the target stable branch (even if some of those branches are"},{"line_number":265,"context_line":"Unmaintained). If a commit must be backported to multiple stable branches, each"},{"line_number":266,"context_line":"backport should be cherry-picked from the next-newest backport. For example, to"},{"line_number":267,"context_line":"pick change `I06b19044"},{"line_number":268,"context_line":"\u003chttps://review.opendev.org/q/I06b19044876aab9b4585384352f8dccc39984526\u003e` with"},{"line_number":269,"context_line":"change number `946581 \u003chttps://review.opendev.org/c/openstack/nova/+/946581\u003e`"},{"line_number":270,"context_line":"from `master` (2025.2) to `stable/2024.1`:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6a3bfd57_270d24d4","line":267,"range":{"start_line":267,"start_character":0,"end_line":267,"end_character":11},"updated":"2025-07-29 16:42:33.000000000","message":"```suggestion\ncherry-pick change `I06b19044\n```\n\n??","commit_id":"afa878b763b0784399815f4870621d2ffb2cb957"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"74a70bd79ec44264d0e8cd0e9ed22c10b1adba61","unresolved":false,"context_lines":[{"line_number":264,"context_line":"between master and the target stable branch (even if some of those branches are"},{"line_number":265,"context_line":"Unmaintained). If a commit must be backported to multiple stable branches, each"},{"line_number":266,"context_line":"backport should be cherry-picked from the next-newest backport. For example, to"},{"line_number":267,"context_line":"pick change `I06b19044"},{"line_number":268,"context_line":"\u003chttps://review.opendev.org/q/I06b19044876aab9b4585384352f8dccc39984526\u003e` with"},{"line_number":269,"context_line":"change number `946581 \u003chttps://review.opendev.org/c/openstack/nova/+/946581\u003e`"},{"line_number":270,"context_line":"from `master` (2025.2) to `stable/2024.1`:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1147b2eb_8e278bd1","line":267,"range":{"start_line":267,"start_character":0,"end_line":267,"end_character":11},"in_reply_to":"6a3bfd57_270d24d4","updated":"2025-07-30 15:02:09.000000000","message":"Done","commit_id":"afa878b763b0784399815f4870621d2ffb2cb957"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb469307dac3ac2f6754785949b90de9028afd44","unresolved":true,"context_lines":[{"line_number":263,"context_line":""},{"line_number":264,"context_line":"In order to backport a commit that has been merged to master, the commit must"},{"line_number":265,"context_line":"be backported to all :ref:`stable branches \u003cstable-branches\u003e`"},{"line_number":266,"context_line":"between master and the target stable branch (even if some of those branches are"},{"line_number":267,"context_line":"Unmaintained). If a commit must be backported to multiple stable branches, each"},{"line_number":268,"context_line":"backport should be cherry-picked from the next-newest backport. For example, to"},{"line_number":269,"context_line":"cherry-pick change `I06b19044"},{"line_number":270,"context_line":"\u003chttps://review.opendev.org/q/I06b19044876aab9b4585384352f8dccc39984526\u003e`__ with"}],"source_content_type":"text/x-rst","patch_set":4,"id":"24d2ece9_57466a6a","line":267,"range":{"start_line":266,"start_character":45,"end_line":267,"end_character":14},"updated":"2025-08-15 16:48:48.000000000","message":"just a nit.\n\nyou will never go form stable/n to unmainted/n-1 and then back to stable/n-2\n\nwhen a non slurp reaches reaches 18 months  it goes eol with no option to go to unmaintianed.\n\nadn the prio slup renease ie stable/n-2 will actully be unmaintained/n-2 after 18 months.\n\n\nso this  would be clearer if you said\n```\nbetween master and the target branch (even if some of those branches are\nUnmaintained). \n```\nwhen non a non slurp branch reach eol state after 18 months it taged with \u003crelease\u003e-eol and the branch is deleted\n\nso the important thin is when back-porting form any branch to an older branch that still exists you should not skip any open branches.\nyou can skip a release if an only if the intermediary release was an non slupr and the branch has been deleted.\n\nthis only applies to unmaintained backports.\n\nas we will never eol a branch until it leaves the stable state.\n\ni.e. you will never skip branches when backporting to a stabel branch.","commit_id":"6826afb750c77ddacc6e4cd4bddd92270c297c4d"},{"author":{"_account_id":37881,"name":"Wesley Hershberger","display_name":"Wesley Hershberger","email":"wesley.hershberger@canonical.com","username":"whershberger","status":"Support Engineering @ Canonical"},"change_message_id":"adb5d6b9ecd0b550c4ddbae7a83297a8b0f3f62e","unresolved":false,"context_lines":[{"line_number":263,"context_line":""},{"line_number":264,"context_line":"In order to backport a commit that has been merged to master, the commit must"},{"line_number":265,"context_line":"be backported to all :ref:`stable branches \u003cstable-branches\u003e`"},{"line_number":266,"context_line":"between master and the target stable branch (even if some of those branches are"},{"line_number":267,"context_line":"Unmaintained). If a commit must be backported to multiple stable branches, each"},{"line_number":268,"context_line":"backport should be cherry-picked from the next-newest backport. For example, to"},{"line_number":269,"context_line":"cherry-pick change `I06b19044"},{"line_number":270,"context_line":"\u003chttps://review.opendev.org/q/I06b19044876aab9b4585384352f8dccc39984526\u003e`__ with"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bdd12dff_b8570c5d","line":267,"range":{"start_line":266,"start_character":45,"end_line":267,"end_character":14},"in_reply_to":"24d2ece9_57466a6a","updated":"2025-08-15 17:04:28.000000000","message":"Thanks; I removed the qualifiers around \"stable branches\" in PS5; if the important thing is not to skip open branches, then the docs should just say that.\n\nReally appreciate your patience.","commit_id":"6826afb750c77ddacc6e4cd4bddd92270c297c4d"}],"doc/source/common/releases.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"946dcf49944e0d471c4cb7adbb8bac31f3552d94","unresolved":true,"context_lines":[{"line_number":76,"context_line":"projects release at the same time so these can be picked up by downstream"},{"line_number":77,"context_line":"teams to package and further distribute."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Stable Branches"},{"line_number":80,"context_line":"---------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Once a 6-month development cycle is completed the code for that release"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9e04c07a_14f602b6","line":79,"updated":"2025-07-29 16:45:29.000000000","message":"Following-on from the previous file.\n\n```suggestion\n.. _stable-branches:\n\nStable Branches\n```","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a4782b4c5895d02f47a6b248a40ad435990b1802","unresolved":false,"context_lines":[{"line_number":76,"context_line":"projects release at the same time so these can be picked up by downstream"},{"line_number":77,"context_line":"teams to package and further distribute."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Stable Branches"},{"line_number":80,"context_line":"---------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Once a 6-month development cycle is completed the code for that release"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0e0ae9fe_bdcd7ef6","line":79,"in_reply_to":"9e04c07a_14f602b6","updated":"2025-07-30 15:02:19.000000000","message":"Done","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"946dcf49944e0d471c4cb7adbb8bac31f3552d94","unresolved":true,"context_lines":[{"line_number":94,"context_line":"* Be self contained"},{"line_number":95,"context_line":"* Be included in master and backported to all releases between master"},{"line_number":96,"context_line":"  and the stable branch in question (see"},{"line_number":97,"context_line":"  `Backports \u003c/code-and-documentation/using-gerrit#backports`)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Project teams do point releases off stable branches when enough"},{"line_number":100,"context_line":"changes accumulate in the stable branch to justify creating another release for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c846b0bc_f192f83a","line":97,"updated":"2025-07-29 16:45:29.000000000","message":"```suggestion\n  :ref:`Backports \u003cbackporting\u003e`)\n```","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a4782b4c5895d02f47a6b248a40ad435990b1802","unresolved":false,"context_lines":[{"line_number":94,"context_line":"* Be self contained"},{"line_number":95,"context_line":"* Be included in master and backported to all releases between master"},{"line_number":96,"context_line":"  and the stable branch in question (see"},{"line_number":97,"context_line":"  `Backports \u003c/code-and-documentation/using-gerrit#backports`)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Project teams do point releases off stable branches when enough"},{"line_number":100,"context_line":"changes accumulate in the stable branch to justify creating another release for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1b60772c_9f4c4dd5","line":97,"in_reply_to":"c846b0bc_f192f83a","updated":"2025-07-30 15:02:19.000000000","message":"Done","commit_id":"ccebedfc3a71550c4b1500a77cea42eb503d6d03"}]}
