)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37053,"name":"Anton Lutteman","display_name":"aluttema","email":"anton.lutteman@volvocars.com","username":"aluttema"},"change_message_id":"605dcde693905be1f3d4fcc3f2332d49170c8506","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a4898037_9471cc5b","updated":"2026-02-24 07:39:11.000000000","message":"For some experimental pipelines we currently have a job that all other jobs are dependent on, which runs first and makes it possible to select which other jobs in the pipeline should run, with zuul_return and child_jobs. Could that type of functionality be implemented here, so selection of jobs in the pipeline is possible in the UI?\n\nIf job selection is moved into the web ui, it opens the opportunity to only display parameters relevant for the selected job/jobs, mapping the frozen job vars with the parameters for example.\n\nIf not we would still be able to use a similar solution as we have with experimental for job selection, but if that approach is used there would possibly be many parameters in the ui that are not relevant for the selected job.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":37053,"name":"Anton Lutteman","display_name":"aluttema","email":"anton.lutteman@volvocars.com","username":"aluttema"},"change_message_id":"e6afc7c628e5aad0d988c3b706c9d403168eddb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f1fbb006_93e55421","updated":"2026-02-24 07:29:30.000000000","message":"Would it be possible to add an option to the parameters to say if a parameter is required to be filled in or optional?","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"570a702fd4637d08cb479fa99c41329db0b63cc3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a83865c0_46121873","in_reply_to":"39fe3ed1_73cd428f","updated":"2026-03-05 01:00:54.000000000","message":"Done","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9bc6ff8d99f8bd39f1c4c5495afc850aa1f0cc5f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7e95e616_f01133f2","in_reply_to":"a4898037_9471cc5b","updated":"2026-02-25 00:05:49.000000000","message":"Selecting jobs in the UI is somewhat in opposition to our goal for repeatability and also the way we define workflows in pipelines; we\u0027re still trying to be a project gating system first and foremost, not a general purpose job runner.  So I think that we should still expect people to define workflows using pipelines, etc.\n\nBut having said that, yes, you should still be able to have a dispatch job, and you will be able to use variables supplied through the web UI as input to that job, so you can make a construct to choose the appropriate jobs.  If that ends up having too many unrelated parameters, I would seriously recommend looking at adding pipelines based on workflow needs.\n\nIf I\u0027m wrong about this and we decide we need to add job selection in the web UI later, I don\u0027t think anything about this current proposal would prevent that.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9bc6ff8d99f8bd39f1c4c5495afc850aa1f0cc5f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"39fe3ed1_73cd428f","in_reply_to":"f1fbb006_93e55421","updated":"2026-02-25 00:05:49.000000000","message":"That sounds like a good idea.  I\u0027m going to mark this comment thread as unresolved so I remember to add that in a future revision.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"127bfb03a45cb81ccf1002f326e9db863489a77e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ef421dee_f39bfb75","updated":"2026-04-07 21:38:21.000000000","message":"I think there are enough good use cases for this that it\u0027s worthwhile, and the overall shape of this seems completely reasonable.","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"31020884548a068bb2a0d599c8601737de87aa97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8f5d559b_265205ab","updated":"2026-04-08 23:22:47.000000000","message":"I think this latest patchset addresses my primary concern with unexpected behaviors in check/gate. Given that it is a +2 from me.","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"}],"doc/source/developer/specs/parameterized-builds.rst":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"aa2b6283e5f203c739ddf765fa831eea04129a71","unresolved":true,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Since Zuul has almost all of the pieces necessary to implement this"},{"line_number":53,"context_line":"functionality, let\u0027s add support for supplying parameters to builds so"},{"line_number":54,"context_line":"that users don\u0027t need these workarounds."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Requirements"},{"line_number":57,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"60d9c1d4_b39d92a6","line":54,"updated":"2026-02-26 01:24:00.000000000","message":"One consequence of this change is that Zuul could theoretically be configured to be a more generic action taker system. Like Ansible Tower? I don\u0027t know that this is necessarily a bad thing, but it is worth considering how and if this may shift some of the identity of the system and how we approach problem solving within it.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"c1a185742c15636116244ef2f749e4b1fc91d8f6","unresolved":true,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Since Zuul has almost all of the pieces necessary to implement this"},{"line_number":53,"context_line":"functionality, let\u0027s add support for supplying parameters to builds so"},{"line_number":54,"context_line":"that users don\u0027t need these workarounds."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Requirements"},{"line_number":57,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"980df645_d8a367b5","line":54,"in_reply_to":"60d9c1d4_b39d92a6","updated":"2026-02-26 01:31:23.000000000","message":"I agree it\u0027s a risk and I don\u0027t want to do that.  I think we should agree that it is not our intent.  There are a few things in this spec that discourage that (like still tying queue items to git refs, and workflow pipeline definitions).\n\nMaybe I should revise the spec to explicitly state the intention not to change the fundamental identity of the system.  I see it as expanding to cover an edge case that is related to software development that we did not (and could not have) had in OpenStack.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"38eb9ec584d1f0ba9e74a35ce39be66514fdb560","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Since Zuul has almost all of the pieces necessary to implement this"},{"line_number":53,"context_line":"functionality, let\u0027s add support for supplying parameters to builds so"},{"line_number":54,"context_line":"that users don\u0027t need these workarounds."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Requirements"},{"line_number":57,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"77d110e9_6c8eb9c8","line":54,"in_reply_to":"980df645_d8a367b5","updated":"2026-04-03 21:19:07.000000000","message":"Done.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":37053,"name":"Anton Lutteman","display_name":"aluttema","email":"anton.lutteman@volvocars.com","username":"aluttema"},"change_message_id":"0ee6a7c1d91e35e0c4690cd943614920da209096","unresolved":true,"context_lines":[{"line_number":129,"context_line":"         parameters:"},{"line_number":130,"context_line":"           - name: target_cluster"},{"line_number":131,"context_line":"             description: Which cluster to deploy to"},{"line_number":132,"context_line":"             type: selection"},{"line_number":133,"context_line":"             values:"},{"line_number":134,"context_line":"               - production"},{"line_number":135,"context_line":"               - staging"},{"line_number":136,"context_line":"               - dev"},{"line_number":137,"context_line":"           - name: version"},{"line_number":138,"context_line":"             description: What version to deploy"},{"line_number":139,"context_line":"             type: string"}],"source_content_type":"text/x-rst","patch_set":1,"id":"213a1b3b_cbe3095e","line":136,"range":{"start_line":132,"start_character":0,"end_line":136,"end_character":20},"updated":"2026-03-02 16:12:47.000000000","message":"For the selection field with multiple values, could it be possible to specify if the selection is multi select or select one?","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"570a702fd4637d08cb479fa99c41329db0b63cc3","unresolved":false,"context_lines":[{"line_number":129,"context_line":"         parameters:"},{"line_number":130,"context_line":"           - name: target_cluster"},{"line_number":131,"context_line":"             description: Which cluster to deploy to"},{"line_number":132,"context_line":"             type: selection"},{"line_number":133,"context_line":"             values:"},{"line_number":134,"context_line":"               - production"},{"line_number":135,"context_line":"               - staging"},{"line_number":136,"context_line":"               - dev"},{"line_number":137,"context_line":"           - name: version"},{"line_number":138,"context_line":"             description: What version to deploy"},{"line_number":139,"context_line":"             type: string"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4aa2d448_f4690ca5","line":136,"range":{"start_line":132,"start_character":0,"end_line":136,"end_character":20},"in_reply_to":"213a1b3b_cbe3095e","updated":"2026-03-05 01:00:54.000000000","message":"Done","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"aa2b6283e5f203c739ddf765fa831eea04129a71","unresolved":true,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* User navigates to a page dedicated to enqueing builds at ``/enqueue``."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"* User selects the project, branch (or other ref), and pipeline."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* User presses a submit button which triggers the freeze operations in the web server."},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"4a9de221_f6a5958a","line":150,"range":{"start_line":150,"start_character":51,"end_line":150,"end_character":63},"updated":"2026-02-26 01:24:00.000000000","message":"I\u0027m wondering if we would consider this valid for any pipeline. And in the case where a project has not defined any parameters I guess we would end up with a frozen config that doesn\u0027t want any parameters and the enqueue wouldn\u0027t be any different than what is possible today when enqueing builds without parameters?\n\nOr would we try to limit it specifically to special pipelines that are configured to accept parameters? I think this may end up being less confusing to users, but also potentially less functional since the alternative described above is a bit more flexible.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"31020884548a068bb2a0d599c8601737de87aa97","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* User navigates to a page dedicated to enqueing builds at ``/enqueue``."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"* User selects the project, branch (or other ref), and pipeline."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* User presses a submit button which triggers the freeze operations in the web server."},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"d684b71f_667a2b77","line":150,"range":{"start_line":150,"start_character":51,"end_line":150,"end_character":63},"in_reply_to":"1ec06508_e36800ae","updated":"2026-04-08 23:22:47.000000000","message":"Done","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"c1a185742c15636116244ef2f749e4b1fc91d8f6","unresolved":true,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* User navigates to a page dedicated to enqueing builds at ``/enqueue``."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"* User selects the project, branch (or other ref), and pipeline."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* User presses a submit button which triggers the freeze operations in the web server."},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1ec06508_e36800ae","line":150,"range":{"start_line":150,"start_character":51,"end_line":150,"end_character":63},"in_reply_to":"4a9de221_f6a5958a","updated":"2026-02-26 01:31:23.000000000","message":"See below.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"aa2b6283e5f203c739ddf765fa831eea04129a71","unresolved":true,"context_lines":[{"line_number":184,"context_line":"used at all, or in which pipelines, the pipeline definitions"},{"line_number":185,"context_line":"themselves will accept a new attribute, ``allow-parameters`` which"},{"line_number":186,"context_line":"must be set to ``true`` in order for parameters to be accepted.  The"},{"line_number":187,"context_line":"default will be ``false``."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Drawbacks"},{"line_number":190,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"00140040_38f0f82c","line":187,"updated":"2026-02-26 01:24:00.000000000","message":"I think this paragraph answers my question above. This will be opt in for each pipeline and not valid in any arbitrary pipeline.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"c1a185742c15636116244ef2f749e4b1fc91d8f6","unresolved":true,"context_lines":[{"line_number":184,"context_line":"used at all, or in which pipelines, the pipeline definitions"},{"line_number":185,"context_line":"themselves will accept a new attribute, ``allow-parameters`` which"},{"line_number":186,"context_line":"must be set to ``true`` in order for parameters to be accepted.  The"},{"line_number":187,"context_line":"default will be ``false``."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Drawbacks"},{"line_number":190,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d981ac07_a73ac0a1","line":187,"in_reply_to":"00140040_38f0f82c","updated":"2026-02-26 01:31:23.000000000","message":"Yes -- I think it\u0027s important for tenant admins to be able to selectively enable this so that users don\u0027t evade their workflow definitions.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"31020884548a068bb2a0d599c8601737de87aa97","unresolved":false,"context_lines":[{"line_number":184,"context_line":"used at all, or in which pipelines, the pipeline definitions"},{"line_number":185,"context_line":"themselves will accept a new attribute, ``allow-parameters`` which"},{"line_number":186,"context_line":"must be set to ``true`` in order for parameters to be accepted.  The"},{"line_number":187,"context_line":"default will be ``false``."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Drawbacks"},{"line_number":190,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a45d2723_7c8a4eaa","line":187,"in_reply_to":"d981ac07_a73ac0a1","updated":"2026-04-08 23:22:47.000000000","message":"Acknowledged","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"aa2b6283e5f203c739ddf765fa831eea04129a71","unresolved":true,"context_lines":[{"line_number":207,"context_line":"There is no way to prevent users from using this new feature to"},{"line_number":208,"context_line":"produce release artifacts, but we should highlight the drawbacks in"},{"line_number":209,"context_line":"the documentation and encourage users only to use it for ephemeral"},{"line_number":210,"context_line":"workloads."}],"source_content_type":"text/x-rst","patch_set":1,"id":"32117b0c_0c03e7ed","line":210,"updated":"2026-02-26 01:24:00.000000000","message":"I think that we would also need to warn against or prevent the case of the artifact being a git commit. Specifically, you could theoretically configure a gate queue to be parameterized then supply the ref as a gerrit change ref (or the github PR equivalent), have that get tested and if the pipeline is configured to submit merge the change?\n\nIn this case I think we can prevent this from happening by disallowing allow-parameters: true and submit: true in the same pipeline definition? This weird corner case may be worth calling out explicitly simply because it has some hard to think about consequences if used this way.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"c1a185742c15636116244ef2f749e4b1fc91d8f6","unresolved":true,"context_lines":[{"line_number":207,"context_line":"There is no way to prevent users from using this new feature to"},{"line_number":208,"context_line":"produce release artifacts, but we should highlight the drawbacks in"},{"line_number":209,"context_line":"the documentation and encourage users only to use it for ephemeral"},{"line_number":210,"context_line":"workloads."}],"source_content_type":"text/x-rst","patch_set":1,"id":"44459274_52a6e14d","line":210,"in_reply_to":"32117b0c_0c03e7ed","updated":"2026-02-26 01:31:23.000000000","message":"I agree.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"570a702fd4637d08cb479fa99c41329db0b63cc3","unresolved":false,"context_lines":[{"line_number":207,"context_line":"There is no way to prevent users from using this new feature to"},{"line_number":208,"context_line":"produce release artifacts, but we should highlight the drawbacks in"},{"line_number":209,"context_line":"the documentation and encourage users only to use it for ephemeral"},{"line_number":210,"context_line":"workloads."}],"source_content_type":"text/x-rst","patch_set":1,"id":"c2f7ab17_3f07ea1f","line":210,"in_reply_to":"44459274_52a6e14d","updated":"2026-03-05 01:00:54.000000000","message":"Added a line about this in the next revision.","commit_id":"5cec65e6ccd6bd25ec926038de2471f0f2c53eda"},{"author":{"_account_id":37053,"name":"Anton Lutteman","display_name":"aluttema","email":"anton.lutteman@volvocars.com","username":"aluttema"},"change_message_id":"b4197626f0a7d217ec12f3be860a7b32b1cd3c8c","unresolved":true,"context_lines":[{"line_number":143,"context_line":"The user will be prompted for ``target_cluster`` and ``version`` input"},{"line_number":144,"context_line":"values, and they will be passed to the ``deploy-app`` job as variables."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Field types will include at least the following: `string`,"},{"line_number":147,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":148,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":149,"context_line":"to specify whether the parameters are required or optional.  This will"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6245ff9a_2d01ca90","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":48},"updated":"2026-03-23 14:45:18.000000000","message":"A nice to have would be to allow grouping of parameters, something like: https://plugins.jenkins.io/parameter-separator/","commit_id":"2c45b8b55c9971da3c62f7e04e208edd695ae10f"},{"author":{"_account_id":37053,"name":"Anton Lutteman","display_name":"aluttema","email":"anton.lutteman@volvocars.com","username":"aluttema"},"change_message_id":"b4197626f0a7d217ec12f3be860a7b32b1cd3c8c","unresolved":true,"context_lines":[{"line_number":143,"context_line":"The user will be prompted for ``target_cluster`` and ``version`` input"},{"line_number":144,"context_line":"values, and they will be passed to the ``deploy-app`` job as variables."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Field types will include at least the following: `string`,"},{"line_number":147,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":148,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":149,"context_line":"to specify whether the parameters are required or optional.  This will"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dc694724_fe310542","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":47},"updated":"2026-03-23 14:45:18.000000000","message":"A nice to have would be to allow one parameter to dictate what values should populate another parameter.\n\nExample:\n- name: test-suite\n  description: What test suite to select from\n  type: selection\n  values:\n    - A\n    - B\n\n- name: tests\n  description: What test to run\n  type: selection\n  values:\n    - A1 # Only shows if you selected test-suite: A\n    - A2 # Only shows if you selected test-suite: A\n    - B1 # Only shows if you selected test-suite: B\n    - B2 # Only shows if you selected test-suite: B","commit_id":"2c45b8b55c9971da3c62f7e04e208edd695ae10f"},{"author":{"_account_id":37053,"name":"Anton Lutteman","display_name":"aluttema","email":"anton.lutteman@volvocars.com","username":"aluttema"},"change_message_id":"9a2a9bc9750e6d12c22365ba016a553d7cf2c346","unresolved":false,"context_lines":[{"line_number":143,"context_line":"The user will be prompted for ``target_cluster`` and ``version`` input"},{"line_number":144,"context_line":"values, and they will be passed to the ``deploy-app`` job as variables."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Field types will include at least the following: `string`,"},{"line_number":147,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":148,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":149,"context_line":"to specify whether the parameters are required or optional.  This will"}],"source_content_type":"text/x-rst","patch_set":2,"id":"038ea7bf_1e401814","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":48},"in_reply_to":"004fcdbb_256373ac","updated":"2026-03-26 06:01:37.000000000","message":"Acknowledged","commit_id":"2c45b8b55c9971da3c62f7e04e208edd695ae10f"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"901793a07ef5d4ca084a120216cd8f21cd46f389","unresolved":true,"context_lines":[{"line_number":143,"context_line":"The user will be prompted for ``target_cluster`` and ``version`` input"},{"line_number":144,"context_line":"values, and they will be passed to the ``deploy-app`` job as variables."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Field types will include at least the following: `string`,"},{"line_number":147,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":148,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":149,"context_line":"to specify whether the parameters are required or optional.  This will"}],"source_content_type":"text/x-rst","patch_set":2,"id":"004fcdbb_256373ac","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":48},"in_reply_to":"6245ff9a_2d01ca90","updated":"2026-03-24 21:10:21.000000000","message":"Maybe we could do this with a sort of \"Text\" parameter, that doesn\u0027t actually take any input, but can be used to add something to the web form.  I\u0027m not sure we need this for the initial implementation (I\u0027d like to keep it simple), but I don\u0027t see any reason at the moment we couldn\u0027t add it later, and we can keep that in mind during development.","commit_id":"2c45b8b55c9971da3c62f7e04e208edd695ae10f"},{"author":{"_account_id":37053,"name":"Anton Lutteman","display_name":"aluttema","email":"anton.lutteman@volvocars.com","username":"aluttema"},"change_message_id":"9a2a9bc9750e6d12c22365ba016a553d7cf2c346","unresolved":false,"context_lines":[{"line_number":143,"context_line":"The user will be prompted for ``target_cluster`` and ``version`` input"},{"line_number":144,"context_line":"values, and they will be passed to the ``deploy-app`` job as variables."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Field types will include at least the following: `string`,"},{"line_number":147,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":148,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":149,"context_line":"to specify whether the parameters are required or optional.  This will"}],"source_content_type":"text/x-rst","patch_set":2,"id":"81cbc520_54d8a9e3","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":47},"in_reply_to":"a39ac2ff_661c8351","updated":"2026-03-26 06:01:37.000000000","message":"Acknowledged","commit_id":"2c45b8b55c9971da3c62f7e04e208edd695ae10f"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"901793a07ef5d4ca084a120216cd8f21cd46f389","unresolved":true,"context_lines":[{"line_number":143,"context_line":"The user will be prompted for ``target_cluster`` and ``version`` input"},{"line_number":144,"context_line":"values, and they will be passed to the ``deploy-app`` job as variables."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Field types will include at least the following: `string`,"},{"line_number":147,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":148,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":149,"context_line":"to specify whether the parameters are required or optional.  This will"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a39ac2ff_661c8351","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":47},"in_reply_to":"dc694724_fe310542","updated":"2026-03-24 21:10:21.000000000","message":"I agree that would be cool, but I think that would require a pretty sophisticated configuration/programming language, and I don\u0027t think we want to do that for parameter input.","commit_id":"2c45b8b55c9971da3c62f7e04e208edd695ae10f"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"127bfb03a45cb81ccf1002f326e9db863489a77e","unresolved":true,"context_lines":[{"line_number":62,"context_line":"Requirements"},{"line_number":63,"context_line":"------------"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"* Custom field entry in the web UI; users should be able to define the"},{"line_number":66,"context_line":"  field names that appear in the web UI."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Auditability: the values supplied should be easily accessible after"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e33ab05c_ae798814","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":35},"updated":"2026-04-07 21:38:21.000000000","message":"Given the web ui is a js layer on the rest api, presumably this implies that someone should be able to do a param trigger from the api too?","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"dd5129c955096b0235cdf5db3c784d37e3ba0b4b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Requirements"},{"line_number":63,"context_line":"------------"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"* Custom field entry in the web UI; users should be able to define the"},{"line_number":66,"context_line":"  field names that appear in the web UI."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Auditability: the values supplied should be easily accessible after"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c0ba32f5_348bfcaf","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":35},"in_reply_to":"2a7017a3_0722236d","updated":"2026-04-15 17:25:40.000000000","message":"Done","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"cf174ed1d3f3ea0b89294fe1ee94545f68b87236","unresolved":true,"context_lines":[{"line_number":62,"context_line":"Requirements"},{"line_number":63,"context_line":"------------"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"* Custom field entry in the web UI; users should be able to define the"},{"line_number":66,"context_line":"  field names that appear in the web UI."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Auditability: the values supplied should be easily accessible after"}],"source_content_type":"text/x-rst","patch_set":3,"id":"2a7017a3_0722236d","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":35},"in_reply_to":"e33ab05c_ae798814","updated":"2026-04-07 21:57:49.000000000","message":"Absolutely.  The list of parameters requested will also be available via the API (via the freeze job endpoint, I think) for the same reason.  So someone can make other tooling to work with this.","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"81caf755229b6699bcdb2e1f351023e722e6c04c","unresolved":true,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Field types will include at least the following: `string`,"},{"line_number":153,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":154,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":155,"context_line":"to specify whether the parameters are required or optional.  This will"},{"line_number":156,"context_line":"be used by the UI to ensure that users supply input in required"},{"line_number":157,"context_line":"fields, but if the queue item is triggered via some method (like a"},{"line_number":158,"context_line":"Gerrit event) that does not include the ability to supply parameters,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1668cfd9_7a1e3672","line":155,"range":{"start_line":154,"start_character":41,"end_line":155,"end_character":59},"updated":"2026-04-13 12:57:15.000000000","message":"Would it make sense to also allow default values?","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"b66095959a4700bd32d132bd9c92768e34f32977","unresolved":true,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Field types will include at least the following: `string`,"},{"line_number":153,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":154,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":155,"context_line":"to specify whether the parameters are required or optional.  This will"},{"line_number":156,"context_line":"be used by the UI to ensure that users supply input in required"},{"line_number":157,"context_line":"fields, but if the queue item is triggered via some method (like a"},{"line_number":158,"context_line":"Gerrit event) that does not include the ability to supply parameters,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4078c212_29822200","line":155,"range":{"start_line":154,"start_character":41,"end_line":155,"end_character":59},"in_reply_to":"1668cfd9_7a1e3672","updated":"2026-04-14 18:11:54.000000000","message":"I originally thought that would be better served by having job or role default values.  But I don\u0027t see a reason why we can\u0027t add them here if they would be useful.  It might make sense for visibility to have it all set in the same place.","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"dd5129c955096b0235cdf5db3c784d37e3ba0b4b","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Field types will include at least the following: `string`,"},{"line_number":153,"context_line":"`selection`, `multiple-selection`, `bool`, each implemented with"},{"line_number":154,"context_line":"appropriate UI elements in the browser.  Developers will also be able"},{"line_number":155,"context_line":"to specify whether the parameters are required or optional.  This will"},{"line_number":156,"context_line":"be used by the UI to ensure that users supply input in required"},{"line_number":157,"context_line":"fields, but if the queue item is triggered via some method (like a"},{"line_number":158,"context_line":"Gerrit event) that does not include the ability to supply parameters,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"804adf33_d76f59af","line":155,"range":{"start_line":154,"start_character":41,"end_line":155,"end_character":59},"in_reply_to":"4078c212_29822200","updated":"2026-04-15 17:25:40.000000000","message":"Done","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"d9bde58daefcad8349de58a1219a83da680e5fed","unresolved":true,"context_lines":[{"line_number":185,"context_line":"deep-link to a page with the project, ref, and pipeline already"},{"line_number":186,"context_line":"supplied as query parameters.  Users can use this to bookmark"},{"line_number":187,"context_line":"frequently used configurations."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"In order to maintain auditability, we will add a new database field to"},{"line_number":190,"context_line":"the `buildset` table to store input values (it will be a large blob"},{"line_number":191,"context_line":"field so that we can store them all as a single JSON record).  We will"},{"line_number":192,"context_line":"also add a field to store the user id of the authenticated user that"},{"line_number":193,"context_line":"enqueued the item."},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"abbd794b_954d7db7","line":191,"range":{"start_line":188,"start_character":1,"end_line":191,"end_character":61},"updated":"2026-04-12 18:50:34.000000000","message":"Down the line it would be desirable to be able to filter builds on these parameters with the builds REST endpoint; for example, find all builds on the on-demand pipeline that set target_cluster to production. Storing the parameters as a JSON string in the database might make this difficult.","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"6e507550073e69bd09b5c2d840cf63556897bcbc","unresolved":false,"context_lines":[{"line_number":185,"context_line":"deep-link to a page with the project, ref, and pipeline already"},{"line_number":186,"context_line":"supplied as query parameters.  Users can use this to bookmark"},{"line_number":187,"context_line":"frequently used configurations."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"In order to maintain auditability, we will add a new database field to"},{"line_number":190,"context_line":"the `buildset` table to store input values (it will be a large blob"},{"line_number":191,"context_line":"field so that we can store them all as a single JSON record).  We will"},{"line_number":192,"context_line":"also add a field to store the user id of the authenticated user that"},{"line_number":193,"context_line":"enqueued the item."},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bacdde6d_268dfef0","line":191,"range":{"start_line":188,"start_character":1,"end_line":191,"end_character":61},"in_reply_to":"4c5a6336_949cf20c","updated":"2026-04-15 07:03:37.000000000","message":"sounds good, thanks!","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"b66095959a4700bd32d132bd9c92768e34f32977","unresolved":true,"context_lines":[{"line_number":185,"context_line":"deep-link to a page with the project, ref, and pipeline already"},{"line_number":186,"context_line":"supplied as query parameters.  Users can use this to bookmark"},{"line_number":187,"context_line":"frequently used configurations."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"In order to maintain auditability, we will add a new database field to"},{"line_number":190,"context_line":"the `buildset` table to store input values (it will be a large blob"},{"line_number":191,"context_line":"field so that we can store them all as a single JSON record).  We will"},{"line_number":192,"context_line":"also add a field to store the user id of the authenticated user that"},{"line_number":193,"context_line":"enqueued the item."},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"4c5a6336_949cf20c","line":191,"range":{"start_line":188,"start_character":1,"end_line":191,"end_character":61},"in_reply_to":"abbd794b_954d7db7","updated":"2026-04-14 18:11:54.000000000","message":"I believe all of our databases support JSON types; we could use that instead of BLOB.  That would let us use the DB-native JSON tools in where clauses in the future.  How does that sound?","commit_id":"0b2510e1bd028fbcf98406b0a4eebb4fa9231e53"}]}
