)]}'
{
  "log": [
    {
      "commit": "03a6f4c407a452ba2512605466b69ac42e2a1dda",
      "tree": "b04938649233b8563e2c2ee56cb2cacea11878f4",
      "parents": [
        "fde99a95e1110c328a5f29e1860c60191a75d5ae",
        "73555c6d97ee0daa8f4250827c50f7358b566d64"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Wed Jul 08 09:59:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 09:59:33 2026"
      },
      "message": "Update tiobe/tics-github-action action to v3.11.0 (#454)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[tiobe/tics-github-action](https://redirect.github.com/tiobe/tics-github-action)\n| action | minor | `v3.10.0` → `v3.11.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003etiobe/tics-github-action (tiobe/tics-github-action)\u003c/summary\u003e\n\n###\n[`v3.11.0`](https://redirect.github.com/tiobe/tics-github-action/releases/tag/v3.11.0)\n\n[Compare\nSource](https://redirect.github.com/tiobe/tics-github-action/compare/v3.10.0...v3.11.0)\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat main --\u003e\n\n#### What\u0027s Changed\n\n##### Features\n\n- Revise README to stress out differences between server and client run\nby [@\u0026#8203;tiobeacj](https://redirect.github.com/tiobeacj) in\n[#\u0026#8203;525](https://redirect.github.com/tiobe/tics-github-action/pull/525)\n- RM-38452: Added random string to tmpdir name to make them unique by\n[@\u0026#8203;janssen-tiobe](https://redirect.github.com/janssen-tiobe) in\n[#\u0026#8203;529](https://redirect.github.com/tiobe/tics-github-action/pull/529)\n\n##### Dependencies\n\n- Bump ip-address and socks by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;521](https://redirect.github.com/tiobe/tics-github-action/pull/521)\n- Bump fast-xml-builder from 1.1.5 to 1.2.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;523](https://redirect.github.com/tiobe/tics-github-action/pull/523)\n- Bump basic-ftp from 5.3.0 to 5.3.1 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;522](https://redirect.github.com/tiobe/tics-github-action/pull/522)\n- Bump actions/checkout from 6 to 7 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;527](https://redirect.github.com/tiobe/tics-github-action/pull/527)\n\n#### New Contributors\n\n- [@\u0026#8203;tiobeacj](https://redirect.github.com/tiobeacj) made their\nfirst contribution in\n[#\u0026#8203;525](https://redirect.github.com/tiobe/tics-github-action/pull/525)\n\n**Full Changelog**:\n\u003chttps://github.com/tiobe/tics-github-action/compare/v3.10.0...v3.11.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "73555c6d97ee0daa8f4250827c50f7358b566d64",
      "tree": "b04938649233b8563e2c2ee56cb2cacea11878f4",
      "parents": [
        "fde99a95e1110c328a5f29e1860c60191a75d5ae"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Jul 08 09:02:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 09:02:27 2026"
      },
      "message": "Update tiobe/tics-github-action action to v3.11.0"
    },
    {
      "commit": "fde99a95e1110c328a5f29e1860c60191a75d5ae",
      "tree": "133d604137d52757418c0ac51b0c124695d5d2a3",
      "parents": [
        "71eaec8d449a0758680d8545e7383502804ffb9f",
        "7ed562e651de7b5f91fa2f55477d3630ce64a3b6"
      ],
      "author": {
        "name": "Christopher James Halse Rogers",
        "email": "christopher.halse.rogers@canonical.com",
        "time": "Fri Jul 03 00:07:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 00:07:59 2026"
      },
      "message": "Add some basic tests for toplevel image capture (#432)\n\nThis adds some basic tests for image capture from toplevels:\n\n* Capture sources can be created from toplevels\n* Capture sessions can be created from the above source.\n* Capturing a frame from the session returns data that looks like it\ncomes from the surface\u0027s buffer.\n* A new frame is offered for capture when a new buffer is committed to\nthe surface.\n* The session reports buffer constraints changes when the surface is\nresized.\n* Frames can be captured when the toplevel is minimised.\n* The capture session sends the stopped event when it\u0027s corresponding\nsurface is destroyed.\n\nRelated: https://github.com/canonical/mir/pull/5002\n"
    },
    {
      "commit": "71eaec8d449a0758680d8545e7383502804ffb9f",
      "tree": "30f61daa38207e972993c155275603855ae25cdb",
      "parents": [
        "e8762bed86e89d308da3d5ed56f33413593f0df5",
        "2d5b52c1a965603531c325b8dea398fb7a17485f"
      ],
      "author": {
        "name": "tarek-y-ismail",
        "email": "tarek.ismail@canonical.com",
        "time": "Wed Jul 01 09:17:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 09:17:39 2026"
      },
      "message": "Test subtracted input regions (#453)\n\nAdd coverage for wl_region_subtract in the input-region tests: a region\ncovering the whole surface with a rectangular hole subtracted from the\nmiddle. New edge and corner test points check that input is seen on the\nsurrounding frame but not inside the subtracted hole, replacing the\n\u0027TODO: test subtract\u0027 placeholder.\n"
    },
    {
      "commit": "2d5b52c1a965603531c325b8dea398fb7a17485f",
      "tree": "30f61daa38207e972993c155275603855ae25cdb",
      "parents": [
        "e8762bed86e89d308da3d5ed56f33413593f0df5"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jul 01 05:20:31 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jul 01 05:20:31 2026"
      },
      "message": "Test subtracted input regions\n\nAdd coverage for wl_region_subtract in the input-region tests: a region\ncovering the whole surface with a rectangular hole subtracted from the\nmiddle. New edge and corner test points check that input is seen on the\nsurrounding frame but not inside the subtracted hole, replacing the\n\u0027TODO: test subtract\u0027 placeholder.\n"
    },
    {
      "commit": "7ed562e651de7b5f91fa2f55477d3630ce64a3b6",
      "tree": "c7370df3624e68228ea6a3b9844a1a80b996be79",
      "parents": [
        "8715e8faccbe9e8072bd072a78032311e177b074"
      ],
      "author": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Thu Jun 25 07:48:06 2026"
      },
      "committer": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Thu Jun 25 07:48:06 2026"
      },
      "message": "tests: apply feedback from review comments\n"
    },
    {
      "commit": "8715e8faccbe9e8072bd072a78032311e177b074",
      "tree": "20f9146cd439cb4e8ddc74c74731d528960341b4",
      "parents": [
        "5276e05e41d25eea60ea2c7b26202ed1d5f58894"
      ],
      "author": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Tue Jun 09 12:27:52 2026"
      },
      "committer": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Thu Jun 25 01:59:54 2026"
      },
      "message": "tests: properly handle the configure event on the xdg_surface\n"
    },
    {
      "commit": "5276e05e41d25eea60ea2c7b26202ed1d5f58894",
      "tree": "1a1b8fb516f89d339bc9d308dfe574aac43c1526",
      "parents": [
        "63ea9f1f5f94dbf7efca1c345c828bc69012370f"
      ],
      "author": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Tue Jun 09 06:27:04 2026"
      },
      "committer": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Thu Jun 25 01:59:54 2026"
      },
      "message": "tests: add tests for capture of toplevels\n"
    },
    {
      "commit": "63ea9f1f5f94dbf7efca1c345c828bc69012370f",
      "tree": "003a836f844ed94b56c8f82099e2d2af74d83306",
      "parents": [
        "7442e9e2ab10461f5b4e872a5cbfc334e41da5df"
      ],
      "author": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Tue Jun 09 05:50:42 2026"
      },
      "committer": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Thu Jun 25 01:59:54 2026"
      },
      "message": "src: add attach_visible_buffer variant that uses a provided buffer\n"
    },
    {
      "commit": "7442e9e2ab10461f5b4e872a5cbfc334e41da5df",
      "tree": "cc3c097dd7128ce29a47a10eb101d21a8e992998",
      "parents": [
        "e8762bed86e89d308da3d5ed56f33413593f0df5"
      ],
      "author": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Mon Jun 08 14:26:00 2026"
      },
      "committer": {
        "name": "James Henstridge",
        "email": "james.henstridge@canonical.com",
        "time": "Thu Jun 25 01:59:54 2026"
      },
      "message": "src, tests: move ForeignToplevelList helpers to their own file\n"
    },
    {
      "commit": "e8762bed86e89d308da3d5ed56f33413593f0df5",
      "tree": "05e29d6c8fea08e2d6aa2661aac85d808fd5b1c6",
      "parents": [
        "a9f08441a80613e6a86b024ddf2833d556bc91ce",
        "91d728001f3f0cb1d9b15ac2654d5dfe2c255f8d"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Wed Jun 24 09:21:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 09:21:48 2026"
      },
      "message": "Update actions/setup-python action to v6.3.0 (#451)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[actions/setup-python](https://redirect.github.com/actions/setup-python)\n| action | minor | `v6.2.0` → `v6.3.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eactions/setup-python (actions/setup-python)\u003c/summary\u003e\n\n###\n[`v6.3.0`](https://redirect.github.com/actions/setup-python/releases/tag/v6.3.0)\n\n[Compare\nSource](https://redirect.github.com/actions/setup-python/compare/v6.2.0...v6.3.0)\n\n##### What\u0027s Changed\n\n##### Enhancement\n\n- Add RHEL support and include Linux distro in cache keys by\n[@\u0026#8203;priyagupta108](https://redirect.github.com/priyagupta108) in\n[#\u0026#8203;1323](https://redirect.github.com/actions/setup-python/pull/1323)\n- Fix pip cache error handling on Windows by\n[@\u0026#8203;priyagupta108](https://redirect.github.com/priyagupta108) in\n[#\u0026#8203;1040](https://redirect.github.com/actions/setup-python/pull/1040)\n\n##### Dependency update\n\n- Upgrade minimatch from 3.1.2 to 3.1.5 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot) in\n[#\u0026#8203;1281](https://redirect.github.com/actions/setup-python/pull/1281)\n- Upgrade actions dependencies by\n[@\u0026#8203;gowridurgad](https://redirect.github.com/gowridurgad) with\n[@\u0026#8203;Copilot](https://redirect.github.com/Copilot) in\n[#\u0026#8203;1303](https://redirect.github.com/actions/setup-python/pull/1303)\n- Upgrade\n[@\u0026#8203;actions/cache](https://redirect.github.com/actions/cache) to\n5.1.0, log cache write denied by\n[@\u0026#8203;jasongin](https://redirect.github.com/jasongin) in\n[#\u0026#8203;1324](https://redirect.github.com/actions/setup-python/pull/1324)\n- Upgrade dependency versions and test workflow configuration by\n[@\u0026#8203;HarithaVattikuti](https://redirect.github.com/HarithaVattikuti)\nin\n[#\u0026#8203;1322](https://redirect.github.com/actions/setup-python/pull/1322)\n\n##### Documentation\n\n- Update advanced-usage.md by\n[@\u0026#8203;Dunky-Z](https://redirect.github.com/Dunky-Z) in\n[#\u0026#8203;811](https://redirect.github.com/actions/setup-python/pull/811)\n\n##### New Contributors\n\n- [@\u0026#8203;gowridurgad](https://redirect.github.com/gowridurgad) with\n[@\u0026#8203;Copilot](https://redirect.github.com/Copilot) made their first\ncontribution in\n[#\u0026#8203;1303](https://redirect.github.com/actions/setup-python/pull/1303)\n- [@\u0026#8203;jasongin](https://redirect.github.com/jasongin) made their\nfirst contribution in\n[#\u0026#8203;1324](https://redirect.github.com/actions/setup-python/pull/1324)\n- [@\u0026#8203;Dunky-Z](https://redirect.github.com/Dunky-Z) made their\nfirst contribution in\n[#\u0026#8203;811](https://redirect.github.com/actions/setup-python/pull/811)\n\n**Full Changelog**:\n\u003chttps://github.com/actions/setup-python/compare/v6...v6.3.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzUuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "91d728001f3f0cb1d9b15ac2654d5dfe2c255f8d",
      "tree": "05e29d6c8fea08e2d6aa2661aac85d808fd5b1c6",
      "parents": [
        "a9f08441a80613e6a86b024ddf2833d556bc91ce"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Jun 24 03:24:21 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 03:24:21 2026"
      },
      "message": "Update actions/setup-python action to v6.3.0"
    },
    {
      "commit": "a9f08441a80613e6a86b024ddf2833d556bc91ce",
      "tree": "5ccabf05d49af5877143305fdc3558ac7e72e2a7",
      "parents": [
        "3bb64cf0b0356d7222cf6b1ceed0deb47bb95de5",
        "f9dcebaef4bfb969dbd07ee03204292e5a6c935e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@gmail.com",
        "time": "Wed Jun 24 02:49:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 02:49:00 2026"
      },
      "message": "Rename test files to match their primary Wayland protocol (#450)\n\nRename test source files so each is named after the protocol interface\nit exercises, giving a consistent and discoverable naming scheme:\n\n  touches.cpp                          -\u003e wl_touch.cpp\n  keyboard.cpp                         -\u003e wl_keyboard.cpp\n  surface_input_regions.cpp            -\u003e wl_surface_input_region.cpp\n  test_surface_events.cpp              -\u003e wl_surface_events.cpp\nframe_submission.cpp -\u003e wl_surface_frame_submission.cpp\npointer_constraints.cpp -\u003e wl_surface_pointer_constraints.cpp\ncopy_cut_paste.cpp -\u003e wl_data_offer_copy_cut_paste.cpp\ngtk_primary_selection.cpp -\u003e wl_data_offer_gtk_primary_selection.cpp\n  fractional_scale_v1.cpp              -\u003e wp_fractional_scale_v1.cpp\n  linux_dmabuf_v1.cpp                  -\u003e zwp_linux_dmabuf_v1.cpp\n  primary_selection.cpp                -\u003e zwp_primary_selection_v1.cpp\n  relative_pointer.cpp                 -\u003e zwp_relative_pointer_v1.cpp\ntext_input_v2_with_input_method_v1.cpp -\u003e\nzwp_text_input_v2_with_input_method_v1.cpp\ntext_input_v3_with_input_method_v2.cpp -\u003e\nzwp_text_input_v3_with_input_method_v2.cpp\n\nUpdate CMakeLists.txt to reference the new file names.\n"
    },
    {
      "commit": "f9dcebaef4bfb969dbd07ee03204292e5a6c935e",
      "tree": "5ccabf05d49af5877143305fdc3558ac7e72e2a7",
      "parents": [
        "498aaacac3697726fb97cf26b70e9d84af156896"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jun 24 00:38:18 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jun 24 00:38:18 2026"
      },
      "message": "Manual merge fix\n"
    },
    {
      "commit": "498aaacac3697726fb97cf26b70e9d84af156896",
      "tree": "41f6c7e091412986db57bb08cde1754f5e9cd18c",
      "parents": [
        "319fa3d2911ed6771d9194b47b5b1a1f0d3f0561",
        "3bb64cf0b0356d7222cf6b1ceed0deb47bb95de5"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jun 24 00:29:01 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jun 24 00:29:01 2026"
      },
      "message": "Merge remote-tracking branch \u0027origin/main\u0027 into rename-tests-to-protocol-names\n"
    },
    {
      "commit": "3bb64cf0b0356d7222cf6b1ceed0deb47bb95de5",
      "tree": "30a5fef76f889a4b0f493ee2330674f580096c65",
      "parents": [
        "dd5ac252d1ff0f2168ed30c5bb2931ec1ea8154c",
        "973bb86b65aaaafa7f60e454f419d2ee6510dd31"
      ],
      "author": {
        "name": "Christopher James Halse Rogers",
        "email": "christopher.halse.rogers@canonical.com",
        "time": "Tue Jun 23 22:58:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 22:58:39 2026"
      },
      "message": "Add drag-and-drop tests for wl_data_device (#440)\n\nAdd tests/data_device_drag_and_drop.cpp covering the previously untested\nwl_data_device.start_drag flow: starting a drag, and the data_offer,\nenter, motion, leave and drop events delivered to the data device, plus\nthe offered mime type on the wl_data_offer.\n"
    },
    {
      "commit": "dd5ac252d1ff0f2168ed30c5bb2931ec1ea8154c",
      "tree": "a3b5832874586e6f7d73afdcc566520bde397625",
      "parents": [
        "944f296c28cfc475a618edbfd40a840e3b896945",
        "39d729d7c31c8836160db741c59e8d63e9d15bb2"
      ],
      "author": {
        "name": "Christopher James Halse Rogers",
        "email": "christopher.halse.rogers@canonical.com",
        "time": "Tue Jun 23 22:55:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 22:55:07 2026"
      },
      "message": "Add wl_surface buffer state tests (#441)\n\nAdd tests/wl_surface.cpp covering the previously untested wl_surface\nbuffer-state requests: attach, set_buffer_scale, set_buffer_transform\n(90/180/270), damage_buffer and offset, along with the invalid_scale,\ninvalid_transform and invalid_offset protocol errors.\n\nThe positive tests currently only confirm the requests are accepted and\nthe surface is presented; comments describe how to extend them to verify\nthe state is actually applied.\n"
    },
    {
      "commit": "973bb86b65aaaafa7f60e454f419d2ee6510dd31",
      "tree": "edeb5ce036860b8ee287f9f48b4d39b1cd51237c",
      "parents": [
        "b56c4339742785943238650cd29953dc6c21c123",
        "944f296c28cfc475a618edbfd40a840e3b896945"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 23 22:15:08 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 22:15:08 2026"
      },
      "message": "Merge branch \u0027main\u0027 into data-device-drag-and-drop-tests"
    },
    {
      "commit": "39d729d7c31c8836160db741c59e8d63e9d15bb2",
      "tree": "a3b5832874586e6f7d73afdcc566520bde397625",
      "parents": [
        "e09c6a07f0153662ec749e2825e916276b85d548",
        "944f296c28cfc475a618edbfd40a840e3b896945"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 23 22:13:35 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 23 22:13:35 2026"
      },
      "message": "Merge remote-tracking branch \u0027origin/main\u0027 into wl-surface-buffer-state-tests\n"
    },
    {
      "commit": "944f296c28cfc475a618edbfd40a840e3b896945",
      "tree": "ba9fd3df7ea614714ca85f2ef62980d3f8d0075e",
      "parents": [
        "18e079c73b4cdcc3a824e9abf6774fce94311c61",
        "0eaa009da7f26981fc593fe9b3530e80b54330a0"
      ],
      "author": {
        "name": "Christopher James Halse Rogers",
        "email": "christopher.halse.rogers@canonical.com",
        "time": "Tue Jun 23 10:22:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 10:22:09 2026"
      },
      "message": "Update bundled wayland.xml to 1.24.91 and use wl_data_device_manager_release (#447)\n\nUpdate the bundled wayland protocol XML to the version from wayland\n1.24.91, which bumps several core interfaces (wl_compositor v7,\nwl_data_device_manager v4, wl_surface v7, wl_region v7) and adds new\nwl_shm formats.\n\nwl_data_device_manager gains a release destructor in version 4, so\nreplace its generated interface descriptor with a manual specialisation\nthat sends release when bound at version \u003e\u003d 4 and falls back to destroy\notherwise, matching the wl_compositor and wl_output pattern. Switch the\ninclude to the generated wayland-client.h so the version-4 release API\nis available.\n"
    },
    {
      "commit": "0eaa009da7f26981fc593fe9b3530e80b54330a0",
      "tree": "ba9fd3df7ea614714ca85f2ef62980d3f8d0075e",
      "parents": [
        "5bbde9a5071cee7ae519422c75732279683b6a22",
        "18e079c73b4cdcc3a824e9abf6774fce94311c61"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal.sawicz@canonical.com",
        "time": "Tue Jun 23 09:42:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 09:42:30 2026"
      },
      "message": "Merge branch \u0027main\u0027 into update-wayland-protocol-1.24.91"
    },
    {
      "commit": "18e079c73b4cdcc3a824e9abf6774fce94311c61",
      "tree": "9aac2ea6645481ce363b9958d2e1f1de8d572cac",
      "parents": [
        "6a46647af74b2d53b41db2a6e98b3d079f8975e2"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Tue Jun 23 09:41:50 2026"
      },
      "committer": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Tue Jun 23 09:41:50 2026"
      },
      "message": "renovate: add config\n"
    },
    {
      "commit": "6a46647af74b2d53b41db2a6e98b3d079f8975e2",
      "tree": "639d35c723c03a06eb91c6c151518e6b1c401060",
      "parents": [
        "80c5e7ad2c720115496839cd7503afa304ee0bbf",
        "ff3e8acc4c7876c09777a58cce295f5a633761d5"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Tue Jun 23 08:14:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 08:14:46 2026"
      },
      "message": "all: migrate to 26.04 as the development focus (#444)\n"
    },
    {
      "commit": "319fa3d2911ed6771d9194b47b5b1a1f0d3f0561",
      "tree": "e61dcad346e603fef3650cf13392670c62b2e36f",
      "parents": [
        "80c5e7ad2c720115496839cd7503afa304ee0bbf"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 23 02:28:23 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 23 02:30:04 2026"
      },
      "message": "Rename test files to match their primary Wayland protocol\n\nRename test source files so each is named after the protocol interface it\nexercises, giving a consistent and discoverable naming scheme:\n\n  touches.cpp                          -\u003e wl_touch.cpp\n  keyboard.cpp                         -\u003e wl_keyboard.cpp\n  surface_input_regions.cpp            -\u003e wl_surface_input_region.cpp\n  test_surface_events.cpp              -\u003e wl_surface_events.cpp\n  frame_submission.cpp                 -\u003e wl_surface_frame_submission.cpp\n  pointer_constraints.cpp              -\u003e wl_surface_pointer_constraints.cpp\n  copy_cut_paste.cpp                   -\u003e wl_data_offer_copy_cut_paste.cpp\n  gtk_primary_selection.cpp            -\u003e wl_data_offer_gtk_primary_selection.cpp\n  fractional_scale_v1.cpp              -\u003e wp_fractional_scale_v1.cpp\n  linux_dmabuf_v1.cpp                  -\u003e zwp_linux_dmabuf_v1.cpp\n  primary_selection.cpp                -\u003e zwp_primary_selection_v1.cpp\n  relative_pointer.cpp                 -\u003e zwp_relative_pointer_v1.cpp\n  text_input_v2_with_input_method_v1.cpp -\u003e zwp_text_input_v2_with_input_method_v1.cpp\n  text_input_v3_with_input_method_v2.cpp -\u003e zwp_text_input_v3_with_input_method_v2.cpp\n\nUpdate CMakeLists.txt to reference the new file names.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "ff3e8acc4c7876c09777a58cce295f5a633761d5",
      "tree": "a3296be41ca6f98a1453dc7b8a6a1857c5fa90ac",
      "parents": [
        "51d82d9e808d5cfe05e9f7a4e6fe28bc882bd759"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Thu Jun 18 11:19:35 2026"
      },
      "committer": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Thu Jun 18 11:19:35 2026"
      },
      "message": "ci: 26.04 now available\n"
    },
    {
      "commit": "5bbde9a5071cee7ae519422c75732279683b6a22",
      "tree": "290901d487c3659b5c596c66a5f3a34ad44c6b97",
      "parents": [
        "cc7d078dc05fe3578243afa6fd84fd0668e1b675"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Thu Jun 18 03:16:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 03:16:16 2026"
      },
      "message": "Potential fix for pull request finding\n\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "80c5e7ad2c720115496839cd7503afa304ee0bbf",
      "tree": "e115480798d1f61ca7f323bdf95bf6a578ed6c4c",
      "parents": [
        "d5fa01ba52980d70f1c1587c8dbd7c3fb7860b3a",
        "4409086837c50eb0460d01eaa95d1ade2314a189"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@gmail.com",
        "time": "Wed Jun 17 02:29:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 02:29:09 2026"
      },
      "message": "Remove unused includes (#446)\n\nDrop headers that are no longer referenced by the including file:\n- in_process_server.h: shared_library.h\n- gtk_primary_selection.h: wl_handle.h, \u003cmutex\u003e, \u003cset\u003e\n- wl_output.cpp: helpers.h, \u003cmemory\u003e\n- xdg_popup.cpp, xdg_surface_stable.cpp, xdg_surface_v6.cpp: helpers.h\n- xdg_toplevel_stable.cpp: helpers.h, \u003coptional\u003e\n"
    },
    {
      "commit": "d5fa01ba52980d70f1c1587c8dbd7c3fb7860b3a",
      "tree": "6ab38d92b8d5d9911b26ddedfe7450e6927bf55b",
      "parents": [
        "c9a4abffffd0fd2f035a8ab70d8f5ef3cc9e830e",
        "6c0928d5d58423be1172efb1682136a35ae22a18"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@gmail.com",
        "time": "Tue Jun 16 07:50:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 07:50:22 2026"
      },
      "message": "Make SHM test names consistent (#442)\n\nMerge the bad-buffer tests from test_bad_buffer.cpp into wl_shm.cpp,\nfolding them into the ShmTest fixture and giving them descriptive names\nconsistent with the existing tests. The try/catch protocol-error checks\nare converted to EXPECT_PROTOCOL_ERROR to match the file\u0027s style.\n"
    },
    {
      "commit": "cc7d078dc05fe3578243afa6fd84fd0668e1b675",
      "tree": "dfa5980b4c936e6c0b5a474d18d9df895f3b8f20",
      "parents": [
        "c9a4abffffd0fd2f035a8ab70d8f5ef3cc9e830e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 04:20:34 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 04:20:34 2026"
      },
      "message": "Update bundled wayland.xml to 1.24.91 and use wl_data_device_manager.release\n\nUpdate the bundled wayland protocol XML to the version from wayland\n1.24.91, which bumps several core interfaces (wl_compositor v7,\nwl_data_device_manager v4, wl_surface v7, wl_region v7) and adds new\nwl_shm formats.\n\nwl_data_device_manager gains a release destructor in version 4, so\nreplace its generated interface descriptor with a manual specialisation\nthat sends release when bound at version \u003e\u003d 4 and falls back to destroy\notherwise, matching the wl_compositor and wl_output pattern. Switch the\ninclude to the generated wayland-client.h so the version-4 release API is\navailable.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "6c0928d5d58423be1172efb1682136a35ae22a18",
      "tree": "6ab38d92b8d5d9911b26ddedfe7450e6927bf55b",
      "parents": [
        "0357fd7826e904c84f0ef04cc4f653fe15798100"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Tue Jun 16 04:15:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 04:15:40 2026"
      },
      "message": "Add explicit cerrno include in wl_shm test\n"
    },
    {
      "commit": "4409086837c50eb0460d01eaa95d1ade2314a189",
      "tree": "271b16fc2cc6ccf6ca172e4c55f1933ad98e915f",
      "parents": [
        "c9a4abffffd0fd2f035a8ab70d8f5ef3cc9e830e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 04:06:05 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 04:06:05 2026"
      },
      "message": "Remove unused includes\n\nDrop headers that are no longer referenced by the including file:\n- in_process_server.h: shared_library.h\n- gtk_primary_selection.h: wl_handle.h, \u003cmutex\u003e, \u003cset\u003e\n- wl_output.cpp: helpers.h, \u003cmemory\u003e\n- xdg_popup.cpp, xdg_surface_stable.cpp, xdg_surface_v6.cpp: helpers.h\n- xdg_toplevel_stable.cpp: helpers.h, \u003coptional\u003e\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "e09c6a07f0153662ec749e2825e916276b85d548",
      "tree": "c675ac306243cd5ca2ffc91e8c98ca580ce478e6",
      "parents": [
        "8f89985d4347899ac005d34612ac27c7ff5d18e3"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 03:42:53 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 03:42:53 2026"
      },
      "message": "Remove unused shared_library.h include from in_process_server.h\n\nNothing in the header references SharedLibrary, and its only users include\nshared_library.h directly.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "8f89985d4347899ac005d34612ac27c7ff5d18e3",
      "tree": "c86eafb7aeeabddbdfd8ea493de32627799a7818",
      "parents": [
        "bd09bcf86f3d417e49e238b0f10e1465eaf8f1a7"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 03:40:22 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 03:40:22 2026"
      },
      "message": "Release wl_compositor when the bound version supports it\n\nwl_compositor gained a release destructor request in version 7. Use it\nin the WlInterfaceDescriptor when the bound proxy is new enough, falling\nback to wl_compositor_destroy otherwise, mirroring the wl_output handling.\n\ndata_device.h is switched to the generated wayland-client.h so that all\ntranslation units consistently see WLCS\u0027s protocol definitions; the\ngenerated and system headers share an include guard, so mixing them left\nsome units with the older wl_compositor definition.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "0357fd7826e904c84f0ef04cc4f653fe15798100",
      "tree": "5050b500937ff2efcba27e1be8f4356e2c8eac5e",
      "parents": [
        "70ed3ebc3f76ae4359679da8337fcab90d7896b9"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 02:04:48 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 02:04:48 2026"
      },
      "message": "Throw instead of asserting in create_bad_shm_buffer\n\nassert() is compiled out under NDEBUG (as used by the Release,\nRelWithDebInfo and MinSizeRel builds), which would silently skip the\nftruncate() and leave the buffer untruncated. It also abort()s the whole\ntest runner on failure. Throw a std::system_error instead, matching the\nstyle in src/helpers.cpp, so the failure is reported as a test failure.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "70ed3ebc3f76ae4359679da8337fcab90d7896b9",
      "tree": "9ce7570097e3688f131e439d8b3011bb33f23622",
      "parents": [
        "f37fabf9798e85ca49ebbe39167db976a8bd41c3",
        "c9a4abffffd0fd2f035a8ab70d8f5ef3cc9e830e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:59:41 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:59:41 2026"
      },
      "message": "Merge branch \u0027main\u0027 into consistent-shm-test-names\n"
    },
    {
      "commit": "b56c4339742785943238650cd29953dc6c21c123",
      "tree": "4a506d48ca433cf4f7cd78aefe6ffdde08cdfbf7",
      "parents": [
        "d75b4b3c5f6af92ae625566eeee419dd87fce753"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:29:44 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:29:44 2026"
      },
      "message": "Rename DataDeviceDragAndDrop to DataDeviceDragAndDropTest\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "d75b4b3c5f6af92ae625566eeee419dd87fce753",
      "tree": "dc010f1d96f5e0540dd47d119bcfa4503fe49a30",
      "parents": [
        "ddf845fc67567b9b07e6058cf41d151c400a3358"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:27:54 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:27:54 2026"
      },
      "message": "Rename DragAndDrop tests to DataDeviceDragAndDrop\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "ddf845fc67567b9b07e6058cf41d151c400a3358",
      "tree": "978bc8d02dd9b9ab4bbe035b604ed75ad81ed247",
      "parents": [
        "cbe75712abd9b6e814fc1d742283b844ea3b5dda"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:27:08 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:27:08 2026"
      },
      "message": "Rename data_device_drag_and_drop.cpp to wl_data_device_drag_and_drop.cpp\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "cbe75712abd9b6e814fc1d742283b844ea3b5dda",
      "tree": "ad24b6df3db64c9e9f7fec18d6b34cc65c51c9ee",
      "parents": [
        "b8e2f984601039e7a87e74c1ad1c1ec41c6e34b8"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:24:20 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 01:24:20 2026"
      },
      "message": "Refactor drag-and-drop test helpers\n\nSplit the drag setup into small, clearly-named steps (move_pointer_to_source,\npress_pointer, start_drag, move_pointer_to_target) and have each test call\nthem explicitly so the sequence each test exercises is clear.\n\nTrack the surface currently under the pointer (via the data device\u0027s\nenter/leave events, since leave carries no surface) so the leave test can\nassert it specifically left the target surface rather than relying on event\nordering. Also give start_drag an explicit mime type, letting the mime-type\ntest use a distinctive value.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "b8e2f984601039e7a87e74c1ad1c1ec41c6e34b8",
      "tree": "0d44d1c9bcaef669a5d54f413e1e0daa8da86116",
      "parents": [
        "13e2146616b0a261bdefa2b57e25edccddd82f4d"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 00:52:22 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 00:52:22 2026"
      },
      "message": "Make entered_target a local variable\n\nentered_target is only used within drag_over_target(), so scope it there\nrather than as a fixture member. It is held in a shared_ptr so the mock\naction that writes to it stays valid if enter() fires again later.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "13e2146616b0a261bdefa2b57e25edccddd82f4d",
      "tree": "01f2c70da5d941725231a67524cd1bd7cdd0f412",
      "parents": [
        "276b99b163eece13ebff54f99fab36615c4a65ee",
        "c9a4abffffd0fd2f035a8ab70d8f5ef3cc9e830e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 00:46:41 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 16 00:46:41 2026"
      },
      "message": "Merge branch \u0027main\u0027 into data-device-drag-and-drop-tests\n"
    },
    {
      "commit": "bd09bcf86f3d417e49e238b0f10e1465eaf8f1a7",
      "tree": "48a05cc9ed81b4b8b02c1a0d73bed873086c1716",
      "parents": [
        "2e5165851bae742420424b64d997f6aed976c9d5"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 23:58:03 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 23:58:03 2026"
      },
      "message": "Add AtMostVersion and a pre-v5 attach offset test\n\nAdd an AtMostVersion specifier that binds the highest interface version\nno greater than the one requested. Use it to add a wl_surface test that\nbinds wl_compositor at version 4 and checks a non-zero wl_surface.attach\noffset is accepted, complementing the version 5+ \"is an error\" test.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "2e5165851bae742420424b64d997f6aed976c9d5",
      "tree": "387d9e2883b5d505b1a06b5146f264d760d3c21a",
      "parents": [
        "b60eb161c1256020f071d52f2860191c6c42fd55"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 23:26:53 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 23:51:40 2026"
      },
      "message": "Gate version-dependent wl_surface tests with bind_if_supported\n\nUse client.bind_if_supported\u003cwl_compositor\u003e(AtLeastVersion{...}) to\nrequire the wl_compositor version needed for each request, matching the\nconvention used elsewhere in the suite, instead of a hand-rolled version\ncheck and GTEST_SKIP.\n\nThis requires a WlInterfaceDescriptor\u003cwl_compositor\u003e specialisation.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "b60eb161c1256020f071d52f2860191c6c42fd55",
      "tree": "2ffc8812c3e11c9835b5a553930d89e2f1166de9",
      "parents": [
        "89c9c15b0253d95e97ba1be4439e78784c4bd4e1",
        "c9a4abffffd0fd2f035a8ab70d8f5ef3cc9e830e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 23:04:07 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 23:04:07 2026"
      },
      "message": "Merge branch \u0027main\u0027 into wl-surface-buffer-state-tests\n"
    },
    {
      "commit": "51d82d9e808d5cfe05e9f7a4e6fe28bc882bd759",
      "tree": "a81aff839e5ed3517e6b5eb28daeb8bfa8180a1c",
      "parents": [
        "818f72637e2ec53df0e7cd7a6f9ce4ba33984b24"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:31:48 2026"
      },
      "committer": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:41:10 2026"
      },
      "message": "spread: align `sbuild` task with Mir\n"
    },
    {
      "commit": "818f72637e2ec53df0e7cd7a6f9ce4ba33984b24",
      "tree": "55c5d79dbfcc744f2634394a8d73269e764a8897",
      "parents": [
        "f5a6ac930ecc6e7f38f3714dfc3b1e7ba706ad04"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:26:48 2026"
      },
      "committer": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:26:48 2026"
      },
      "message": "all: migrate to 26.04 as the development focus\n"
    },
    {
      "commit": "f5a6ac930ecc6e7f38f3714dfc3b1e7ba706ad04",
      "tree": "3ae81642ff7f51feb23527ab7cadd5050183e4f3",
      "parents": [
        "46ea45724e7862fbe1cb3c12274ad225cdf3a81b"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:23:53 2026"
      },
      "committer": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:23:53 2026"
      },
      "message": "spread: update Fedora and Alpine CI\n"
    },
    {
      "commit": "46ea45724e7862fbe1cb3c12274ad225cdf3a81b",
      "tree": "cefc764be6234a89bc10308c901504c5d888db4c",
      "parents": [
        "ba4dc590d136ec498eab6fb7fa4e70331ed0b959"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:18:06 2026"
      },
      "committer": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:18:06 2026"
      },
      "message": "skills: add release refresh skill\n"
    },
    {
      "commit": "c9a4abffffd0fd2f035a8ab70d8f5ef3cc9e830e",
      "tree": "e7c6864fc3d16c0e254792f333a0c4f07af2b637",
      "parents": [
        "ba4dc590d136ec498eab6fb7fa4e70331ed0b959",
        "2d5dd969597d49e334d02f0f1dfe4d84671916c5"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Mon Jun 15 14:16:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 14:16:52 2026"
      },
      "message": "Update pre-commit hook jackdewinter/pymarkdown to v0.9.38 (#436)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[jackdewinter/pymarkdown](https://redirect.github.com/jackdewinter/pymarkdown)\n| repository | patch | `v0.9.37` → `v0.9.38` |\n\nNote: The `pre-commit` manager in Renovate is not supported by the\n`pre-commit` maintainers or community. Please do not report any problems\nthere, instead [create a Discussion in the Renovate\nrepository](https://redirect.github.com/renovatebot/renovate/discussions/new)\nif you have any questions.\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003ejackdewinter/pymarkdown (jackdewinter/pymarkdown)\u003c/summary\u003e\n\n###\n[`v0.9.38`](https://redirect.github.com/jackdewinter/pymarkdown/releases/tag/v0.9.38):\nVersion 0.9.38 - 2026-06-09\n\n[Compare\nSource](https://redirect.github.com/jackdewinter/pymarkdown/compare/v0.9.37...v0.9.38)\n\n##### Added\n\n- [Issue\n1605](https://redirect.github.com/jackdewinter/pymarkdown/issues/1605)\n  - Add support for native file format lists in JSON, YAML, TOML\n-\n[`plugins.per-file-ignores`](./advanced_configuration.md#per-file-disabling-of-rule-plugins)\n- [`system.exclude_path`](./advanced_configuration.md#excluding-paths)\n-\n[`plugins.additional_paths`](./advanced_configuration.md#adding-rule-plugins)\n- [Issue\n1609](https://redirect.github.com/jackdewinter/pymarkdown/issues/1609)\n- Added support for `tables` and `table_line_length` for\nMD013:line-length\n\n##### Fixed\n\n- [Issue\n1604](https://redirect.github.com/jackdewinter/pymarkdown/issues/1604)\n- Fixed an issue where the rule was not properly keeping track of table\ntokens with rule Md013, resulting in the rule getting \"stuck\" on tables,\nignoring anything after that point in the document\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "ba4dc590d136ec498eab6fb7fa4e70331ed0b959",
      "tree": "8ef3c8b50d33de0d2b03d284761839311673b0b1",
      "parents": [
        "b1b8c0b33f9b38b7fb651d8e4d54f71006a5a272",
        "b40a2d36a4e9c43bb05595f453504bfbff0d821b"
      ],
      "author": {
        "name": "tarek-y-ismail",
        "email": "tarek.ismail@canonical.com",
        "time": "Mon Jun 15 08:21:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 08:21:28 2026"
      },
      "message": "Add xdg_surface configure and ack_configure tests (#437)\n\nAdd tests covering xdg_surface.ack_configure error handling and\nconfigure event behaviour:\n- ack_configure with an invalid (never-sent) serial is an error\n- ack_configure twice for the same configure event is an error\n- ack_configure without any configure event is an error\n- ack_configure for an earlier configure after a later one is an error\n- multiple configure events are received on state changes\n- only the last of multiple configure events needs acknowledging"
    },
    {
      "commit": "b1b8c0b33f9b38b7fb651d8e4d54f71006a5a272",
      "tree": "d3eeaf6a3e199e49ce2f814a1ab9c061b2b3abe6",
      "parents": [
        "4ceb68dd0cc5457abac903a887cdcd2dda4fc14f",
        "f3d109618ed0f4790c5549288cc35dedb7dfd881"
      ],
      "author": {
        "name": "Christopher James Halse Rogers",
        "email": "christopher.halse.rogers@canonical.com",
        "time": "Mon Jun 15 07:09:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 07:09:28 2026"
      },
      "message": "Rename subsurfaces.cpp to wl_subsurface.cpp (#443)\n\nName the test file after the protocol it covers, consistent with the\nother wl_* test files."
    },
    {
      "commit": "4ceb68dd0cc5457abac903a887cdcd2dda4fc14f",
      "tree": "4cb085760440c902578b493875395f685c4d5cf1",
      "parents": [
        "b752d611d42781efa5c0216d20e9cd1759421df1",
        "05f80fc031fa2c2dc0deb36cfde855121bfbdb94"
      ],
      "author": {
        "name": "Christopher James Halse Rogers",
        "email": "christopher.halse.rogers@canonical.com",
        "time": "Mon Jun 15 06:18:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 06:18:18 2026"
      },
      "message": "Use EXPECT_PROTOCOL_ERROR for invalid parent tests (#439)\n\nConvert when_parent_is_set_to_self_error_is_raised and\nwhen_parent_is_set_to_child_descendant_error_is_raised in\ntests/xdg_toplevel_stable.cpp to the EXPECT_PROTOCOL_ERROR macro,\nasserting the invalid_parent error raised by xdg_toplevel.set_parent."
    },
    {
      "commit": "b752d611d42781efa5c0216d20e9cd1759421df1",
      "tree": "6029426402d3306caec262ea4d4d59f2d53beebc",
      "parents": [
        "e424c98ce5672cdcddb106361b1aaad185a0c59e",
        "a616d86b0ae8aa61a24d09e58f3c58340bf058bd"
      ],
      "author": {
        "name": "Christopher James Halse Rogers",
        "email": "christopher.halse.rogers@canonical.com",
        "time": "Mon Jun 15 06:12:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 06:12:55 2026"
      },
      "message": "Use EXPECT_PROTOCOL_ERROR in tests (#438)\n\nConvert try/catch wlcs::ProtocolError blocks to the\nEXPECT_PROTOCOL_ERROR macro in:\n\n- tests/ext_image_copy_capture_v1.cpp\n- tests/test_bad_buffer.cpp\n- tests/wlr_layer_shell_v1.cpp\n- tests/xdg_surface_stable.cpp"
    },
    {
      "commit": "f3d109618ed0f4790c5549288cc35dedb7dfd881",
      "tree": "9a889abdb47c175228a91f64e4afd81b63b7722d",
      "parents": [
        "e424c98ce5672cdcddb106361b1aaad185a0c59e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 04:26:48 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 04:26:57 2026"
      },
      "message": "Rename subsurfaces.cpp to wl_subsurface.cpp\n\nName the test file after the protocol it covers, consistent with the\nother wl_* test files.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "f37fabf9798e85ca49ebbe39167db976a8bd41c3",
      "tree": "8bbc5f1399af1ddd6f911f53265ba5a1fafb7db9",
      "parents": [
        "e424c98ce5672cdcddb106361b1aaad185a0c59e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 04:17:34 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 04:25:07 2026"
      },
      "message": "Make SHM test names consistent\n\nMerge the bad-buffer tests from test_bad_buffer.cpp into wl_shm.cpp,\nfolding them into the ShmTest fixture and giving them descriptive names\nconsistent with the existing tests. The try/catch protocol-error checks\nare converted to EXPECT_PROTOCOL_ERROR to match the file\u0027s style.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "89c9c15b0253d95e97ba1be4439e78784c4bd4e1",
      "tree": "f311efe4ed1bdb6622d18cfe819e526e721b2146",
      "parents": [
        "e424c98ce5672cdcddb106361b1aaad185a0c59e"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 00:37:40 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 00:37:40 2026"
      },
      "message": "Add wl_surface buffer state tests\n\nAdd tests/wl_surface.cpp covering the previously untested wl_surface\nbuffer-state requests: attach, set_buffer_scale, set_buffer_transform\n(90/180/270), damage_buffer and offset, along with the invalid_scale,\ninvalid_transform and invalid_offset protocol errors.\n\nThe positive tests currently only confirm the requests are accepted and\nthe surface is presented; comments describe how to extend them to verify\nthe state is actually applied.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "e424c98ce5672cdcddb106361b1aaad185a0c59e",
      "tree": "717ec56c5f8cfb84c7f390ed5d3f4947042db737",
      "parents": [
        "fd175541af9ab03ae6ded43593fcafa94ea048eb"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 00:12:59 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 00:12:59 2026"
      },
      "message": "Fix copyright in recently added files\n"
    },
    {
      "commit": "276b99b163eece13ebff54f99fab36615c4a65ee",
      "tree": "3e5fb5c71dbc8653193f599f11658710035eeeae",
      "parents": [
        "721d3047e4efb160be4739e1b45d980e80ff3a41"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 00:10:34 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 00:10:34 2026"
      },
      "message": "Update copyright\n"
    },
    {
      "commit": "721d3047e4efb160be4739e1b45d980e80ff3a41",
      "tree": "67327c9f86230cb2f512e447337362c507f80844",
      "parents": [
        "733b6e5a8e26c7b1e0b2268179a8edf947c84744"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 00:09:44 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 15 00:09:44 2026"
      },
      "message": "Add drag-and-drop tests for wl_data_device\n\nAdd tests/data_device_drag_and_drop.cpp covering the previously\nuntested wl_data_device.start_drag flow: starting a drag, and the\ndata_offer, enter, motion, leave and drop events delivered to the\ndata device, plus the offered mime type on the wl_data_offer.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "fd175541af9ab03ae6ded43593fcafa94ea048eb",
      "tree": "cf56f53ddabe02ab3a592f60e4d3a03daf27d520",
      "parents": [
        "733b6e5a8e26c7b1e0b2268179a8edf947c84744",
        "83ad023268d481d4bfee71b7e8c335c29988c766"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Sun Jun 14 23:35:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 23:35:52 2026"
      },
      "message": "Add wl_registry conformance tests (#434)\n\nAdd tests/wl_registry.cpp verifying that wl_display.get_registry returns\nthe server\u0027s globals and that a registry can be destroyed using\nwl_fixes.destroy_registry."
    },
    {
      "commit": "05f80fc031fa2c2dc0deb36cfde855121bfbdb94",
      "tree": "4143eebb0f10c9b3c5c994a7a03189d0505832b7",
      "parents": [
        "733b6e5a8e26c7b1e0b2268179a8edf947c84744"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Sun Jun 14 23:24:46 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Sun Jun 14 23:24:46 2026"
      },
      "message": "Use EXPECT_PROTOCOL_ERROR for invalid parent tests\n\nConvert when_parent_is_set_to_self_error_is_raised and\nwhen_parent_is_set_to_child_descendant_error_is_raised in\ntests/xdg_toplevel_stable.cpp to the EXPECT_PROTOCOL_ERROR macro,\nasserting the invalid_parent error raised by xdg_toplevel.set_parent.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "a616d86b0ae8aa61a24d09e58f3c58340bf058bd",
      "tree": "11c88d00ae77c7fd36890736d88cfad05571f01e",
      "parents": [
        "733b6e5a8e26c7b1e0b2268179a8edf947c84744"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Sun Jun 14 23:19:38 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Sun Jun 14 23:19:38 2026"
      },
      "message": "Use EXPECT_PROTOCOL_ERROR in tests\n\nConvert try/catch wlcs::ProtocolError blocks to the\nEXPECT_PROTOCOL_ERROR macro in:\n\n- tests/ext_image_copy_capture_v1.cpp\n- tests/test_bad_buffer.cpp\n- tests/wlr_layer_shell_v1.cpp\n- tests/xdg_surface_stable.cpp\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "b40a2d36a4e9c43bb05595f453504bfbff0d821b",
      "tree": "279b7f1590728cc7661e64241fda914f19cd195a",
      "parents": [
        "3a90998330cb620e5d5ba6b4ceb57c087e3fd39f"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Sun Jun 14 23:03:23 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Sun Jun 14 23:10:40 2026"
      },
      "message": "Use EXPECT_PROTOCOL_ERROR in xdg_surface_stable tests\n\nReplace the verbose try/catch protocol-error assertions with the\nEXPECT_PROTOCOL_ERROR macro throughout the file.\n\nDrop redundant configure-count checks in gets_multiple_configure_events\nand only_the_last_of_multiple_configures_needs_acking: the waits for\nconfigure events already guarantee enough were received.\n\nSimplify ack_configure_for_an_earlier_configure_after_a_later_one_is_an_error\nby capturing each configure serial directly instead of tracking an index\ninto the serial vector.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "3a90998330cb620e5d5ba6b4ceb57c087e3fd39f",
      "tree": "4f9e390f4eeb7463ed4ce779ffee59ff667777b4",
      "parents": [
        "8588baebfe5715ae006d588c1603007201c102d0"
      ],
      "author": {
        "name": "pre-commit-ci-lite[bot]",
        "email": "117423508+pre-commit-ci-lite[bot]@users.noreply.github.com",
        "time": "Fri Jun 12 00:49:26 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 00:49:26 2026"
      },
      "message": "pre-commit: apply automatic fixes"
    },
    {
      "commit": "8588baebfe5715ae006d588c1603007201c102d0",
      "tree": "34cf67c36a8a02b98f980d246c33204aed1472dd",
      "parents": [
        "733b6e5a8e26c7b1e0b2268179a8edf947c84744"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Fri Jun 12 00:47:56 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Fri Jun 12 00:47:56 2026"
      },
      "message": "Add xdg_surface configure and ack_configure tests\n\nAdd tests covering xdg_surface.ack_configure error handling and\nconfigure event behaviour:\n- ack_configure with an invalid (never-sent) serial is an error\n- ack_configure twice for the same configure event is an error\n- ack_configure without any configure event is an error\n- ack_configure for an earlier configure after a later one is an error\n- multiple configure events are received on state changes\n- only the last of multiple configure events needs acknowledging\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "83ad023268d481d4bfee71b7e8c335c29988c766",
      "tree": "cf56f53ddabe02ab3a592f60e4d3a03daf27d520",
      "parents": [
        "495585ea726264fca94f385416e65a2b2ebece09"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Fri Jun 12 00:09:22 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Fri Jun 12 00:09:22 2026"
      },
      "message": "Simplify\n"
    },
    {
      "commit": "495585ea726264fca94f385416e65a2b2ebece09",
      "tree": "cb4efee303a62e66c4e4539fa0ead75e44655915",
      "parents": [
        "74135dcf07ccb1c720a2899e97983fa63323b6d4"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Fri Jun 12 00:05:39 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Fri Jun 12 00:05:39 2026"
      },
      "message": "Remove misleading comment\n"
    },
    {
      "commit": "74135dcf07ccb1c720a2899e97983fa63323b6d4",
      "tree": "7472109ddd08c275a0e95b42b0ae22f3197a64d7",
      "parents": [
        "edc4db47c8448b90330a34dae4a8c3d0250b7875"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Fri Jun 12 00:05:26 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Fri Jun 12 00:05:26 2026"
      },
      "message": "Bind test is a subset and is already done in other tests\n"
    },
    {
      "commit": "edc4db47c8448b90330a34dae4a8c3d0250b7875",
      "tree": "16a593144bda8125ed1f5b18a7e728da3760c090",
      "parents": [
        "e1dcf662b76aaa31362cd447f4f99683351b8675"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Thu Jun 11 23:56:09 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Thu Jun 11 23:56:09 2026"
      },
      "message": "Verify delete_id is emitted in registry wl_fixes test\n\nThe registry_can_be_destroyed_with_wl_fixes test now confirms the\ncompositor emits wl_display.delete_id for the registry destroyed via\nwl_fixes. Since libwayland handles delete_id internally, this is checked\nby asserting the freed object ID is re-used by a newly created object.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "e1dcf662b76aaa31362cd447f4f99683351b8675",
      "tree": "13792abe2a3c7727aa7fa93db4708d13d37ad906",
      "parents": [
        "ed849208890f69c61c285890389bca8616efe152",
        "733b6e5a8e26c7b1e0b2268179a8edf947c84744"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Thu Jun 11 23:04:03 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Thu Jun 11 23:04:03 2026"
      },
      "message": "Merge branch \u0027main\u0027 into registry-tests\n"
    },
    {
      "commit": "733b6e5a8e26c7b1e0b2268179a8edf947c84744",
      "tree": "e4de605772c5e7feeadf94e1ccddd0ac1fb3c133",
      "parents": [
        "da5725613af1de2ab2da510df80e1934322437de",
        "c85e77a720c66fe0e700d9a2b5cb135645f6b1c1"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Thu Jun 11 20:56:58 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 20:56:58 2026"
      },
      "message": "Update wayland.xml and handle new core protocol events (#435)\n\nBump the bundled wayland.xml to a newer revision and add handlers for\nthe new events that WLCS now binds to:\n\n- wl_output v4: name and description events\n- wl_surface v6: preferred_buffer_scale and preferred_buffer_transform\nevents\n\nWithout these, the positionally-initialized listener structs would leave\nnull function pointers, crashing when compositors emit the events."
    },
    {
      "commit": "2d5dd969597d49e334d02f0f1dfe4d84671916c5",
      "tree": "fed3674ed72804bbc2a250b98fffc58882693cd4",
      "parents": [
        "da5725613af1de2ab2da510df80e1934322437de"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Jun 11 04:01:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 04:01:23 2026"
      },
      "message": "Update pre-commit hook jackdewinter/pymarkdown to v0.9.38"
    },
    {
      "commit": "c85e77a720c66fe0e700d9a2b5cb135645f6b1c1",
      "tree": "e4de605772c5e7feeadf94e1ccddd0ac1fb3c133",
      "parents": [
        "da5725613af1de2ab2da510df80e1934322437de"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jun 10 23:04:51 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jun 10 23:04:51 2026"
      },
      "message": "Update wayland.xml and handle new core protocol events\n\nBump the bundled wayland.xml to a newer revision and add handlers for the\nnew events that WLCS now binds to:\n\n- wl_output v4: name and description events\n- wl_surface v6: preferred_buffer_scale and preferred_buffer_transform events\n\nWithout these, the positionally-initialized listener structs would leave\nnull function pointers, crashing when compositors emit the events.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "da5725613af1de2ab2da510df80e1934322437de",
      "tree": "fe04deeefc0c29cf2576851a8410a66f52d005ca",
      "parents": [
        "c93d80da2dbb98568a458d7f96c260b0bacf81f2",
        "c42026bea414dddc2f3950f5e8152da0857b6185"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Wed Jun 10 22:45:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 22:45:59 2026"
      },
      "message": "Add wl_shm create_pool fd and size validation tests (#433)\n\nAdd tests verifying that wl_shm.create_pool rejects an unmappable file\ndescriptor (a pipe) with INVALID_FD, and a non-positive size with\nINVALID_STRIDE."
    },
    {
      "commit": "ed849208890f69c61c285890389bca8616efe152",
      "tree": "d992ed52838c6a6430fc2b6b188ca2da1043f2ea",
      "parents": [
        "c93d80da2dbb98568a458d7f96c260b0bacf81f2"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 09 22:58:44 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 09 22:58:44 2026"
      },
      "message": "Add wl_registry conformance tests\n\nAdd tests/wl_registry.cpp verifying that wl_display.get_registry returns\nthe server\u0027s globals, that advertised core globals can be bound via\nwl_registry.bind, and that a registry can be destroyed using\nwl_fixes.destroy_registry.\n\nThe wl_fixes interface was missing from the bundled wayland.xml, so add\nits definition to make the generated bindings available.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "c42026bea414dddc2f3950f5e8152da0857b6185",
      "tree": "fe04deeefc0c29cf2576851a8410a66f52d005ca",
      "parents": [
        "c93d80da2dbb98568a458d7f96c260b0bacf81f2"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 09 04:37:12 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 09 22:34:05 2026"
      },
      "message": "Add wl_shm create_pool fd and size validation tests\n\nAdd tests verifying that wl_shm.create_pool rejects an unmappable file\ndescriptor (a pipe) with INVALID_FD, and a non-positive size with\nINVALID_STRIDE.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "c93d80da2dbb98568a458d7f96c260b0bacf81f2",
      "tree": "b4db99930ef47fca1c68000e8dd7156eaff95704",
      "parents": [
        "10f7e774dfa557043f8d8dcaafc70f03712196ca",
        "faf6eef0626e8ab5555d2ea037d4f69be4b2eddf"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 09 22:33:51 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 22:33:51 2026"
      },
      "message": "Add comprehensive wl_shm conformance tests (#431)\n\nThe existing wl_shm coverage in test_bad_buffer.cpp only exercised the\nINVALID_FD and INVALID_STRIDE error paths. Add tests/wl_shm.cpp covering\nthe remaining protocol behaviour: mandatory ARGB8888/XRGB8888 format\nadvertisement, the INVALID_FORMAT error, out-of-bounds buffer offsets,\npool resizing, and multiple buffers sharing a pool."
    },
    {
      "commit": "faf6eef0626e8ab5555d2ea037d4f69be4b2eddf",
      "tree": "b4db99930ef47fca1c68000e8dd7156eaff95704",
      "parents": [
        "dfd4176870f087ea178ad05dba62d829b6be828d"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 09 22:23:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 22:23:02 2026"
      },
      "message": "Apply suggestion from @mattkae\n\nCo-authored-by: Matthew Kosarek \u003cmatt.kosarek@canonical.com\u003e"
    },
    {
      "commit": "dfd4176870f087ea178ad05dba62d829b6be828d",
      "tree": "6b7a160ed987db423d1411e14737fa5e88994f22",
      "parents": [
        "5902fdac867233c02166e22db99801187c1d85ae"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 09 22:22:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 22:22:45 2026"
      },
      "message": "Apply suggestion from @mattkae\n\nCo-authored-by: Matthew Kosarek \u003cmatt.kosarek@canonical.com\u003e"
    },
    {
      "commit": "5902fdac867233c02166e22db99801187c1d85ae",
      "tree": "dca27febf97cdc16de601954f4036f3a1882faa2",
      "parents": [
        "46017d7c274108b00688b5710e7511c65ead6d20"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Jun 09 22:22:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 22:22:37 2026"
      },
      "message": "Apply suggestion from @mattkae\n\nCo-authored-by: Matthew Kosarek \u003cmatt.kosarek@canonical.com\u003e"
    },
    {
      "commit": "46017d7c274108b00688b5710e7511c65ead6d20",
      "tree": "16f8be9068559869fd73863a6989e02f2081313a",
      "parents": [
        "10f7e774dfa557043f8d8dcaafc70f03712196ca"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 08 02:49:18 2026"
      },
      "committer": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Mon Jun 08 02:51:37 2026"
      },
      "message": "Add comprehensive wl_shm conformance tests\n\nThe existing wl_shm coverage in test_bad_buffer.cpp only exercised the\nINVALID_FD and INVALID_STRIDE error paths. Add tests/wl_shm.cpp covering\nthe remaining protocol behaviour: mandatory ARGB8888/XRGB8888 format\nadvertisement, the INVALID_FORMAT error, out-of-bounds buffer offsets,\npool resizing, and multiple buffers sharing a pool.\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "10f7e774dfa557043f8d8dcaafc70f03712196ca",
      "tree": "7eadce0e0871db811bdd0d7b8c5fa00c3e3f3d76",
      "parents": [
        "3286444313cd444a9ad9c98de39d9992f364fc55",
        "99e42f0ae623ba99c6be213aab8d4f1968bd1fa5"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Tue Jun 02 19:35:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:35:16 2026"
      },
      "message": "Update actions/checkout action to v6.0.3 (#430)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://redirect.github.com/actions/checkout) |\naction | patch | `v6.0.2` → `v6.0.3` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eactions/checkout (actions/checkout)\u003c/summary\u003e\n\n###\n[`v6.0.3`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v603)\n\n[Compare\nSource](https://redirect.github.com/actions/checkout/compare/v6.0.2...v6.0.3)\n\n- Fix checkout init for SHA-256 repositories by\n[@\u0026#8203;yaananth](https://redirect.github.com/yaananth) in\n[#\u0026#8203;2439](https://redirect.github.com/actions/checkout/pull/2439)\n- fix: expand merge commit SHA regex and add SHA-256 test cases by\n[@\u0026#8203;yaananth](https://redirect.github.com/yaananth) in\n[#\u0026#8203;2414](https://redirect.github.com/actions/checkout/pull/2414)\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "99e42f0ae623ba99c6be213aab8d4f1968bd1fa5",
      "tree": "7eadce0e0871db811bdd0d7b8c5fa00c3e3f3d76",
      "parents": [
        "3286444313cd444a9ad9c98de39d9992f364fc55"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Jun 02 17:59:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 17:59:35 2026"
      },
      "message": "Update actions/checkout action to v6.0.3"
    },
    {
      "commit": "3286444313cd444a9ad9c98de39d9992f364fc55",
      "tree": "c1b45d4e6631386db132647b8b84b9f64a7ef198",
      "parents": [
        "0113d0e9e0af87b63a5c40c641ebf97dfc76a1e0",
        "665ed788b532c38d192a16993433317a6a5e127e"
      ],
      "author": {
        "name": "Alan Griffiths",
        "email": "alan@octopull.co.uk",
        "time": "Mon Jun 01 14:09:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 14:09:29 2026"
      },
      "message": "Update mxschmitt/action-tmate action to v3.24 (#429)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[mxschmitt/action-tmate](https://redirect.github.com/mxschmitt/action-tmate)\n| action | minor | `v3.23` → `v3.24` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003emxschmitt/action-tmate (mxschmitt/action-tmate)\u003c/summary\u003e\n\n###\n[`v3.24`](https://redirect.github.com/mxschmitt/action-tmate/releases/tag/v3.24)\n\n[Compare\nSource](https://redirect.github.com/mxschmitt/action-tmate/compare/v3.23...v3.24)\n\n#### What\u0027s Changed\n\n- chore(deps): bump js-yaml from 3.14.1 to 3.14.2 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;236](https://redirect.github.com/mxschmitt/action-tmate/pull/236)\n- chore(deps): bump minimatch from 3.1.2 to 3.1.5 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;237](https://redirect.github.com/mxschmitt/action-tmate/pull/237)\n- chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;238](https://redirect.github.com/mxschmitt/action-tmate/pull/238)\n- chore(deps-dev): bump\n[@\u0026#8203;babel/plugin-transform-modules-systemjs](https://redirect.github.com/babel/plugin-transform-modules-systemjs)\nfrom 7.22.11 to 7.29.4 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;240](https://redirect.github.com/mxschmitt/action-tmate/pull/240)\n- Update Node.js runtime from 20 to 24 by\n[@\u0026#8203;Copilot](https://redirect.github.com/Copilot) in\n[#\u0026#8203;242](https://redirect.github.com/mxschmitt/action-tmate/pull/242)\n\n#### New Contributors\n\n- [@\u0026#8203;Copilot](https://redirect.github.com/Copilot) made their\nfirst contribution in\n[#\u0026#8203;242](https://redirect.github.com/mxschmitt/action-tmate/pull/242)\n\n**Full Changelog**:\n\u003chttps://github.com/mxschmitt/action-tmate/compare/v3.23...v3.24\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwMi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "665ed788b532c38d192a16993433317a6a5e127e",
      "tree": "c1b45d4e6631386db132647b8b84b9f64a7ef198",
      "parents": [
        "0113d0e9e0af87b63a5c40c641ebf97dfc76a1e0"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Sat May 30 00:51:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 30 00:51:23 2026"
      },
      "message": "Update mxschmitt/action-tmate action to v3.24"
    },
    {
      "commit": "0113d0e9e0af87b63a5c40c641ebf97dfc76a1e0",
      "tree": "c6ad1d3782066430517be71169c7a1330296b4c1",
      "parents": [
        "2069adad60199f2a35ab8ecce51d0b15c1f626e4",
        "133c89a58fbfda3b7bf81693979a8335298de1e8"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Thu May 21 06:49:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 06:49:59 2026"
      },
      "message": "Update when_virtual_pointer_scrolls_with_steps_client_sees_axis_descrete tests for wl_seat v8+ (#424)\n\n`wl_pointer` v8 deprecated `axis_discrete` in favour of `axis_value120`\n— compositors must not send `axis_discrete` to clients bound at v8+. The\ntest `when_virtual_pointer_scrolls_with_steps_client_sees_axis_descrete`\nwas failing because it expected `axis_discrete` while the compositor\n(Mir, post smooth-scrolling update) correctly sends `axis_value120`.\n\n## Changes\n\n- **`src/protocol/wayland.xml`**: Bump `wl_seat` and `wl_pointer` to v9;\nadd:\n  - `axis_value120` event (`since\u003d\"8\"`) with its description\n  - `axis_relative_direction` enum + event (`since\u003d\"9\"`)\n  - Updated `axis_discrete` description to note v8 deprecation\n\n- **`src/in_process_server.cpp`**: Add no-op entries for `axis_value120`\nand `axis_relative_direction` in `pointer_listener` to match the\nnow-11-member struct\n\n- **`tests/wlr_virtual_pointer_v1.cpp`**:\n  - Add `axis_value120` `MOCK_METHOD` to `PointerListener`\n- Wire it up in the static `wl_pointer_listener` (no-op for\n`axis_relative_direction` to avoid StrictMock failures on optional\nevents)\n- Update the discrete-scroll test expectation: `axis_discrete` →\n`axis_value120`\n\n```cpp\n// Before (broken for v8+ compositor):\nEXPECT_CALL(listener, axis_discrete(WL_POINTER_AXIS_HORIZONTAL_SCROLL, 4));\n\n// After (correct for v8+ clients):\nEXPECT_CALL(listener, axis_value120(WL_POINTER_AXIS_HORIZONTAL_SCROLL, _));\n```\n"
    },
    {
      "commit": "2069adad60199f2a35ab8ecce51d0b15c1f626e4",
      "tree": "a329fc9e8db6214e6b9dcb734f84cc63c8edf216",
      "parents": [
        "2857ebc059532e668da60972f11aad82a10dc2a2",
        "b556c25bd3ba1e2128649311570039c4abdc29fc"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Tue May 19 13:03:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 13:03:43 2026"
      },
      "message": "Update pre-commit hook zizmorcore/zizmor-pre-commit to v1.25.2 (#428)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[zizmorcore/zizmor-pre-commit](https://redirect.github.com/zizmorcore/zizmor-pre-commit)\n| repository | patch | `v1.25.0` → `v1.25.2` |\n\nNote: The `pre-commit` manager in Renovate is not supported by the\n`pre-commit` maintainers or community. Please do not report any problems\nthere, instead [create a Discussion in the Renovate\nrepository](https://redirect.github.com/renovatebot/renovate/discussions/new)\nif you have any questions.\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003ezizmorcore/zizmor-pre-commit\n(zizmorcore/zizmor-pre-commit)\u003c/summary\u003e\n\n###\n[`v1.25.2`](https://redirect.github.com/zizmorcore/zizmor-pre-commit/releases/tag/v1.25.2)\n\n[Compare\nSource](https://redirect.github.com/zizmorcore/zizmor-pre-commit/compare/v1.25.1...v1.25.2)\n\nSee: \u003chttps://github.com/zizmorcore/zizmor/releases/tag/v1.25.2\u003e\n\n###\n[`v1.25.1`](https://redirect.github.com/zizmorcore/zizmor-pre-commit/releases/tag/v1.25.1)\n\n[Compare\nSource](https://redirect.github.com/zizmorcore/zizmor-pre-commit/compare/v1.25.0...v1.25.1)\n\nSee: \u003chttps://github.com/zizmorcore/zizmor/releases/tag/v1.25.1\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzkuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE3OS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "2857ebc059532e668da60972f11aad82a10dc2a2",
      "tree": "ce0aaeb159c206d460e2e24edac4449fa3fb8787",
      "parents": [
        "e7db5cf0453c959bebe30661fd305c31852cd35d",
        "958771262f54fb13510df94cc1e85ec07645869b"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Tue May 19 11:19:06 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 11:19:06 2026"
      },
      "message": "Use the stable xdg-shell extension for touch input tests (#420)\n"
    },
    {
      "commit": "958771262f54fb13510df94cc1e85ec07645869b",
      "tree": "ce0aaeb159c206d460e2e24edac4449fa3fb8787",
      "parents": [
        "e7db5cf0453c959bebe30661fd305c31852cd35d"
      ],
      "author": {
        "name": "Alan Griffiths",
        "email": "alan.griffiths@canonical.com",
        "time": "Wed Apr 22 09:28:53 2026"
      },
      "committer": {
        "name": "Alan Griffiths",
        "email": "alan.griffiths@canonical.com",
        "time": "Tue May 19 10:58:35 2026"
      },
      "message": "Use the stable xdg-shell extension for touch input tests\n"
    },
    {
      "commit": "b556c25bd3ba1e2128649311570039c4abdc29fc",
      "tree": "580fb6606fd91026232e48db89fda50b7b32fca0",
      "parents": [
        "e7db5cf0453c959bebe30661fd305c31852cd35d"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Sat May 16 10:06:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 16 10:06:59 2026"
      },
      "message": "Update pre-commit hook zizmorcore/zizmor-pre-commit to v1.25.2"
    },
    {
      "commit": "e7db5cf0453c959bebe30661fd305c31852cd35d",
      "tree": "288cd26535b909280a42c70ab4e17ef7dafc7406",
      "parents": [
        "028e94892827d8666101dea728be2890321399b6",
        "ec3522aae135407f8ad2dc4dc42c6025eb452ca6"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Fri May 15 09:49:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 09:49:39 2026"
      },
      "message": "Update pre-commit hook zizmorcore/zizmor-pre-commit to v1.25.0 (#427)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[zizmorcore/zizmor-pre-commit](https://redirect.github.com/zizmorcore/zizmor-pre-commit)\n| repository | minor | `v1.24.1` → `v1.25.0` |\n\nNote: The `pre-commit` manager in Renovate is not supported by the\n`pre-commit` maintainers or community. Please do not report any problems\nthere, instead [create a Discussion in the Renovate\nrepository](https://redirect.github.com/renovatebot/renovate/discussions/new)\nif you have any questions.\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003ezizmorcore/zizmor-pre-commit\n(zizmorcore/zizmor-pre-commit)\u003c/summary\u003e\n\n###\n[`v1.25.0`](https://redirect.github.com/zizmorcore/zizmor-pre-commit/releases/tag/v1.25.0)\n\n[Compare\nSource](https://redirect.github.com/zizmorcore/zizmor-pre-commit/compare/v1.24.1...v1.25.0)\n\nSee: \u003chttps://github.com/zizmorcore/zizmor/releases/tag/v1.25.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzkuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE3OS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "ec3522aae135407f8ad2dc4dc42c6025eb452ca6",
      "tree": "288cd26535b909280a42c70ab4e17ef7dafc7406",
      "parents": [
        "028e94892827d8666101dea728be2890321399b6"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu May 14 22:46:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 22:46:30 2026"
      },
      "message": "Update pre-commit hook zizmorcore/zizmor-pre-commit to v1.25.0"
    },
    {
      "commit": "028e94892827d8666101dea728be2890321399b6",
      "tree": "ca75c89fdd069618e023b036e14f2891c0a6e643",
      "parents": [
        "4218d60f278071a3b0712be45fd629c9f3a92bb3",
        "996cb5d260d34ef422612648a5cf4ebbd049828a"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Thu May 07 12:52:51 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 12:52:51 2026"
      },
      "message": "Update pre-commit hook jackdewinter/pymarkdown to v0.9.37 (#425)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[jackdewinter/pymarkdown](https://redirect.github.com/jackdewinter/pymarkdown)\n| repository | patch | `v0.9.36` → `v0.9.37` |\n\nNote: The `pre-commit` manager in Renovate is not supported by the\n`pre-commit` maintainers or community. Please do not report any problems\nthere, instead [create a Discussion in the Renovate\nrepository](https://redirect.github.com/renovatebot/renovate/discussions/new)\nif you have any questions.\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003ejackdewinter/pymarkdown (jackdewinter/pymarkdown)\u003c/summary\u003e\n\n###\n[`v0.9.37`](https://redirect.github.com/jackdewinter/pymarkdown/releases/tag/v0.9.37):\nVersion 0.9.37 - 2026-05-03\n\n[Compare\nSource](https://redirect.github.com/jackdewinter/pymarkdown/compare/v0.9.36...v0.9.37)\n\nSorry for the long duration between the last release and this release.\nOur small team was enjoying family time with our extended family, with a\ngoal to recharge ourselves for the months ahead. In addition, we are\ngoing to try and release new versions on the first weekend of the month,\nto try and bring regularity to the process.\n\nAfter a couple of months of internal testing, we are proud to release\nPML102, which raises a Rule Failure when lists contain lazy continuation\nlines. This was asked for by a couple of users, and we thought it was a\ngreat idea to add to PyMarkdown. As a great side effect, the testing for\nthat new Rule uncovered a decent number of issues that we fixed as part\nof adding PML102.\n\nIf you find any more issues with PyMarkdown, please let us know. We are\nworking towards cleaning up our backlog and winnow it down to a much\nsmaller list in the next couple of months.\n\n#### Added\n\n- [Issue\n979](https://redirect.github.com/jackdewinter/pymarkdown/issues/979)\n- Added Rule Plugin PML102 that raises Rule Failures when lists contain\nlazy continuation lines.\n\n#### Fixed\n\n- [Issue\n1482](https://redirect.github.com/jackdewinter/pymarkdown/issues/1482)\n- addressed weird case where a block quote, at least 4 levels of lists\nin, contains a new list, was generating an assert\n- [Issue\n1563](https://redirect.github.com/jackdewinter/pymarkdown/issues/1563)\n  - whitespace differences with new list items in nested containers\n- [Issue\n1564](https://redirect.github.com/jackdewinter/pymarkdown/issues/1564)\n  - extra newlines inserted\n- [Issue\n1566](https://redirect.github.com/jackdewinter/pymarkdown/issues/1566)\n- change of indent in list causes issues, making calculations wrong for\nfollowing elements\n- [Issue\n1568](https://redirect.github.com/jackdewinter/pymarkdown/issues/1568)\n- Md046 and Md031 can both fix fenced blocks, so moved to different fix\nlevels\n- added extra check to make sure that if two fenced code blocks are one\nafter the other, first one fixed spacing, not both\n- [Issue\n1569](https://redirect.github.com/jackdewinter/pymarkdown/issues/1569)\n- whitespace was reported in both the list and the paragraph with nested\ncontainers\n- [Issue\n1573](https://redirect.github.com/jackdewinter/pymarkdown/issues/1573)\n- ContainerTokenManager not handling nested block quotes separated by\nlists\n- [Issue\n1574](https://redirect.github.com/jackdewinter/pymarkdown/issues/1574)\n- in certain nested cases with adjusting indent of a list, the following\nparsing does not take that into account when calculating indentation\n- [Issue\n1576](https://redirect.github.com/jackdewinter/pymarkdown/issues/1576)\n- fixed issue with Md032 not removing a list from the stack after\nexiting the list\n- [Issue\n1577](https://redirect.github.com/jackdewinter/pymarkdown/issues/1577)\n- whitespace for block quotes within a list that has just had a new list\nitem added that is indented 1 extra space, was not correct\n- [Issue\n1578](https://redirect.github.com/jackdewinter/pymarkdown/issues/1578)\n- after correcting [Issue\n1577](https://redirect.github.com/jackdewinter/pymarkdown/issues/1577)\nregeneration was still not adding the proper indentation\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "4218d60f278071a3b0712be45fd629c9f3a92bb3",
      "tree": "7adcd786cad239f73d7e91e9ca793b9e814ff031",
      "parents": [
        "d4ae56d996a21bfd8a8f4545cb2bbf662cbfd9b9",
        "13083cf31f12e1f3b5ed31569b53fa47b42f0ac6"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Thu May 07 12:43:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 12:43:31 2026"
      },
      "message": "Update tiobe/tics-github-action action to v3.10.0 (#426)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[tiobe/tics-github-action](https://redirect.github.com/tiobe/tics-github-action)\n| action | minor | `v3.9.1` → `v3.10.0` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003etiobe/tics-github-action (tiobe/tics-github-action)\u003c/summary\u003e\n\n###\n[`v3.10.0`](https://redirect.github.com/tiobe/tics-github-action/releases/tag/v3.10.0)\n\n[Compare\nSource](https://redirect.github.com/tiobe/tics-github-action/compare/v3.9.1...v3.10.0)\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat main --\u003e\n\n#### What\u0027s Changed\n\n##### Features\n\n- RM-38009: Using the repository name if no project is specified when\nrunning qserver mode by\n[@\u0026#8203;janssen-tiobe](https://redirect.github.com/janssen-tiobe) in\n[#\u0026#8203;519](https://redirect.github.com/tiobe/tics-github-action/pull/519)\n- RM-37714: Removed CLI summary that was posted at the end of a run. by\n[@\u0026#8203;janssen-tiobe](https://redirect.github.com/janssen-tiobe) in\n[#\u0026#8203;520](https://redirect.github.com/tiobe/tics-github-action/pull/520)\n\n**Full Changelog**:\n\u003chttps://github.com/tiobe/tics-github-action/compare/v3.9.0...v3.10.0\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "13083cf31f12e1f3b5ed31569b53fa47b42f0ac6",
      "tree": "7adcd786cad239f73d7e91e9ca793b9e814ff031",
      "parents": [
        "d4ae56d996a21bfd8a8f4545cb2bbf662cbfd9b9"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed May 06 11:31:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 11:31:27 2026"
      },
      "message": "Update tiobe/tics-github-action action to v3.10.0"
    },
    {
      "commit": "996cb5d260d34ef422612648a5cf4ebbd049828a",
      "tree": "e2f4ba2511dba51339f4aa015026cf4cba3f0f20",
      "parents": [
        "d4ae56d996a21bfd8a8f4545cb2bbf662cbfd9b9"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon May 04 04:27:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 04:27:36 2026"
      },
      "message": "Update pre-commit hook jackdewinter/pymarkdown to v0.9.37"
    },
    {
      "commit": "133c89a58fbfda3b7bf81693979a8335298de1e8",
      "tree": "e683884faa201a0e1d942989c6225b24007d745f",
      "parents": [
        "0af9d2fd30ac54f78cc2c5f99946952b2f5d5d85"
      ],
      "author": {
        "name": "Alan Griffiths",
        "email": "alan.griffiths@canonical.com",
        "time": "Thu Apr 30 10:50:16 2026"
      },
      "committer": {
        "name": "Alan Griffiths",
        "email": "alan.griffiths@canonical.com",
        "time": "Thu Apr 30 10:50:16 2026"
      },
      "message": "Check the `axis_value120` value\n"
    },
    {
      "commit": "d4ae56d996a21bfd8a8f4545cb2bbf662cbfd9b9",
      "tree": "f1d5cacd4c4bb869905645cb2252d2b5d5feca35",
      "parents": [
        "14e2a6a9986966c01096a6d46ca560dbbc377f02",
        "b751caa4c565acf229c2a46c9129946e511f2543"
      ],
      "author": {
        "name": "Michał Sawicz",
        "email": "michal@sawicz.net",
        "time": "Wed Apr 29 21:25:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 21:25:16 2026"
      },
      "message": "Update tiobe/tics-github-action action to v3.9.1 (#421)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[tiobe/tics-github-action](https://redirect.github.com/tiobe/tics-github-action)\n| action | patch | `v3.9.0` → `v3.9.1` |\n\n---\n\n### Release Notes\n\n\u003cdetails\u003e\n\u003csummary\u003etiobe/tics-github-action (tiobe/tics-github-action)\u003c/summary\u003e\n\n###\n[`v3.9.1`](https://redirect.github.com/tiobe/tics-github-action/releases/tag/v3.9.1)\n\n[Compare\nSource](https://redirect.github.com/tiobe/tics-github-action/compare/v3.9.0...v3.9.1)\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat main --\u003e\n\n#### What\u0027s Changed\n\n##### Features\n\n- RM-38099: Default action name by\n[@\u0026#8203;wener-tiobe](https://redirect.github.com/wener-tiobe) in\n[#\u0026#8203;515](https://redirect.github.com/tiobe/tics-github-action/pull/515)\n\n##### Dependencies\n\n- Bump basic-ftp from 5.2.1 to 5.3.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;516](https://redirect.github.com/tiobe/tics-github-action/pull/516)\n- Bump follow-redirects from 1.15.6 to 1.16.0 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;514](https://redirect.github.com/tiobe/tics-github-action/pull/514)\n- Bump fast-xml-parser from 5.5.7 to 5.7.1 by\n[@\u0026#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in\n[#\u0026#8203;517](https://redirect.github.com/tiobe/tics-github-action/pull/517)\n\n**Full Changelog**:\n\u003chttps://github.com/tiobe/tics-github-action/compare/v3.9.0...v3.9.1\u003e\n\n\u003c/details\u003e\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\nare satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won\u0027t be reminded about this update\nagain.\n\n---\n\n- [ ] \u003c!-- rebase-check --\u003eIf you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/canonical/wlcs).\n\n\u003c!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzkuNyIsInVwZGF0ZWRJblZlciI6IjQzLjEzOS43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--\u003e\n"
    },
    {
      "commit": "b751caa4c565acf229c2a46c9129946e511f2543",
      "tree": "f1d5cacd4c4bb869905645cb2252d2b5d5feca35",
      "parents": [
        "14e2a6a9986966c01096a6d46ca560dbbc377f02"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Apr 29 21:02:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 21:02:02 2026"
      },
      "message": "Update tiobe/tics-github-action action to v3.9.1"
    },
    {
      "commit": "0af9d2fd30ac54f78cc2c5f99946952b2f5d5d85",
      "tree": "a579979311c66a7355e94ea82314ded52204a5c1",
      "parents": [
        "e4e39bee2bad9a349057578b11a8525f2135b93b"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Wed Apr 29 14:19:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 14:19:46 2026"
      },
      "message": "Rename test to match axis_value120 behavior\n\nAgent-Logs-Url: https://github.com/canonical/wlcs/sessions/619cf8d3-0d3e-49f5-a0d2-d5a730ac0c1c\n\nCo-authored-by: AlanGriffiths \u003c9048879+AlanGriffiths@users.noreply.github.com\u003e\n"
    }
  ],
  "next": "e4e39bee2bad9a349057578b11a8525f2135b93b"
}
