Make WordPress Core

#55567 closed task (blessed) (fixed)

Editor: Backport bug fixes for WordPress 6.0 from Gutenberg

Reported by: gziolo's profile gziolo Owned by: hellofromtonya's profile hellofromTonya
Milestone: 6.0 Priority: normal
Severity: normal Version: 6.0
Component: Editor Keywords: has-patch commit fixed-major dev-reviewed
Focuses: Cc:

Description

This is the follow-up for #55505 where we backported all necessary changes from the Gutenberg plugin for WordPress 6.0 Beta 1. That was a big task on its own so I prefer we have another one to track only bug fixes and related WordPress packages updates.

Change History (104)

This ticket was mentioned in PR #2576 on WordPress/wordpress-develop by anton-vlasenko.


23 months ago
#1

This PR aims to fix an issue with fetching remote patterns multiple times inside the WP_REST_Block_Patterns_Controller::get_items method.

Trac ticket: https://core.trac.wordpress.org/ticket/55567
Also, see https://github.com/WordPress/wordpress-develop/pull/2488

#4 @jorgefilipecosta
22 months ago

In 53208:

Block editor: Prevent styles from being added in the site editor.

The site editor, unlike other editors, generates the styles coming from global styles (presets, styles) dynamically in the client. This is because the user can modify any value that we need to consolidate (merge core, theme, and user style preferences). We don't want to have the global styles twice, as it introduces subtle bugs.

Props oandregal, youknowriad.
See #55567.

This ticket was mentioned in PR #2600 on WordPress/wordpress-develop by Mamaduka.


22 months ago
#7

Backports changes from https://github.com/WordPress/gutenberg/pull/40416

Adds the missing inserter field to the Patterns item schema.
Currently, this field is omitted from the response, and patterns that should be hidden in the inserter are visible.

Props, @ndiego, for discovering a bug and testing the fix.

Trac ticket: https://core.trac.wordpress.org/ticket/55567

This ticket was mentioned in PR #2602 on WordPress/wordpress-develop by Mamaduka.


22 months ago
#8

The editor noticed this issue while I was browsing the blocks.php file. PHP considers variables undefined until a value is assigned (or the global keyword is used).

The updated logic matches one used in register_block_style_handle.

It was introduced in https://core.trac.wordpress.org/changeset/53091.

Trac ticket: https://core.trac.wordpress.org/ticket/55567

Cc @gziolo, @peterwilsoncc.

peterwilsoncc commented on PR #2602:


22 months ago
#9

@Mamaduka By "editor" are you referring to the block-editor, your code editor or something else?

Mamaduka commented on PR #2602:


22 months ago
#10

@peterwilsoncc, sorry, I should've been more clear. Intelephense in VSCode triggers the notice.

peterwilsoncc commented on PR #2602:


22 months ago
#11

Thanks boss.

No need to apologize. I was double checking I understood correctly, the block editor throwing a PHP notice would be quite important.

#13 @gziolo
22 months ago

In 53209:

REST API: Don't load remote patterns twice in the controller

This PR aims to fix an issue with fetching remote patterns multiple times inside the WP_REST_Block_Patterns_Controller::get_items method.

Follow-up [53152].

Props antonvlasenko.
See #55567.

#15 @gziolo
22 months ago

In 53210:

REST API: Add inserter field to the schema of Patterns endpoint

Backports changes from https://github.com/WordPress/gutenberg/pull/40416. Adds the missing inserter field to the Patterns item schema. This field was omitted from the response, and patterns that should be hidden in the inserter were visible.

Props mamaduka, ndiego.
See #55567.
Follow-up [53152].

Mamaduka commented on PR #2600:


22 months ago
#18

Sorry about copy-pasta, @gziolo.

gziolo commented on PR #2600:


22 months ago
#19

Sorry about copy-pasta, @gziolo.

Actually, it'd be perfectly fine to avoid using the text domain in the Gutenberg plugin in files that we know are meant to be moved to core 😄

#20 @gziolo
22 months ago

Closed #55580 with [53212] that contains a bug fix to the Cover block registration that is now dynamic and needs some additional PHP handling.

#21 @gziolo
22 months ago

In 53214:

Editor: Fix Comment Query block isn't lazy loading meta data

Related GitHub issue: https://github.com/WordPress/gutenberg/issues/40241.
Primes comment meta data cache within calls to WP_Comment_Query.

Props peterwilsoncc, cbravobernal.
See #55567.
Follow-up [53138].

#22 @gziolo
22 months ago

In 53217:

REST API: Respect _fields query arg in preloaded requests

Ensures that preloaded request can include a _fields query param that asks that only selected response fields are returned.

Props jsnajdr, timothyblynjacobs.
Fixes #55213.
See #55567.

#24 @gziolo
22 months ago

In 53219:

Editor: Update WordPress packages for 6.0 Beta 2

Included cherry-picked commits from the Gutenberg plugin that fix bugs discovered after WordPress 6.0 Beta 1.

Props zieladam, ndiego.
See #55567.

This ticket was mentioned in PR #2613 on WordPress/wordpress-develop by DAreRodz.


22 months ago
#26

  • Keywords has-unit-tests added

Finish the backport of the Comment blocks, adding the remaining unit tests that were not included previously. I also backported some minor changes that were made in Gutenberg.

This is a follow up of #2543

Trac ticket: https://core.trac.wordpress.org/ticket/55567

This ticket was mentioned in PR #2615 on WordPress/wordpress-develop by Mamaduka.


22 months ago
#27

Backports changes from https://github.com/WordPress/gutenberg/pull/40468.

The lock attribute needs to be supported by every block, but currently, it is only done on the client site. As a result, it was causing block rendered API requests to fail when blocks are locked.

PR updates the WP_Block_Type class to handle built-in/core attribute registration.

Trac ticket: https://core.trac.wordpress.org/ticket/55567

cc @gziolo, @hellofromtonya

Mamaduka commented on PR #2615:


22 months ago
#28

The issue is from WP 5.9, but it's more visible now that we have UI.

This ticket was mentioned in PR #2622 on WordPress/wordpress-develop by hellofromtonya.


22 months ago
#29

This is a backport of the internal-only theme.json webfonts handler https://github.com/WordPress/gutenberg/pull/40493.

Please note: This is a stopgap solution for WP 6.0. It will be replaced once the Webfonts API is ready for Core.

There's a lot of context that goes into why this implementation is being backported for 6.0 during beta. Please see full see Gutenberg's PR 40493 and its tracking issue.

The design is funky, but intentional. It's hiding all of the inner-workings to prevent backwards-compatibility breaks once the public Webfonts API is merged into Core (since that API is still in development).

Trac ticket: https://core.trac.wordpress.org/ticket/55567

cc @peterwilsoncc

peterwilsoncc commented on PR #2622:


22 months ago
#30

I've pushed six commits with the changes requests in my original review. I've since added a couple more comments regarding the test failure and ability to upload files.

I am considering whether it would be easier to:

  • add the font types to wp_get_mime_types() directly
  • disallow fonts for users with filtered access in get_allowed_mime_types()

It seems likely the fonts will be added to the former function once the API is introduced.

hellofromtonya commented on PR #2622:


22 months ago
#31

I am considering whether it would be easier to

  • add the font types to wp_get_mime_types() directly

I thought about that too. But if the API itself is still in experimental / development, my thinking was to keep it within this stoppgap function so that it can easily be turned off with a single remove_action(), letting the API continue on its path towards maturing as a Core API. In doing so, Gutenberg can turn off all of this stopgap code with one line of code, thus replacing it with the API.

  • disallow fonts for users with filtered access in get_allowed_mime_types()

Hey @peterwilsoncc, do you mean removing font types before they go through the 'upload_mimes' filter? If yes, how would the API in Gutenberg modify the font types, if needed, during its continued development?

This ticket was mentioned in PR #2624 on WordPress/wordpress-develop by oandregal.


22 months ago
#32

Backports https://github.com/WordPress/gutenberg/pull/37728
Trac ticket https://core.trac.wordpress.org/ticket/55567

This fixes an issue by which link color behaves differently in the editor and front end.

Step by step reproduction instructions:

  • Create a group block and set the link color to red.
  • Create a paragraph block and set the link color to purple.

The expected result is that both editor and front end show the paragraph link color as purple.

This ticket was mentioned in PR #2623 on WordPress/wordpress-develop by luisherranz.


22 months ago
#33

This is a backport that exposes the default_comments_status option in the Editor, under the discussion settings, which then is then used by the Post Comments and Post Comments Form blocks.

The Gutenberg PR where this was introduced (Post Comments block): #40484

The option is also used now in the Post Comments Form block: #40563

Trac ticket: https://core.trac.wordpress.org/ticket/55567

gziolo commented on PR #2623:


22 months ago
#34

Let's use the existing ticket for backports: https://core.trac.wordpress.org/ticket/55567

#35 @gziolo
22 months ago

In 53258:

Tests: Add missing unit tests to Comment Template block

Follow-up for [53138], [53172].
Props darerodz.
See #55567.

#36 @gziolo
22 months ago

In 53259:

Editor: Add default comment status to discussion settings

This is a backport that exposes the default_comments_status option in the Editor, under the discussion settings, which then is then used by the Post Comments and Post Comments Form blocks.

Related change in Gutenberg: https://github.com/WordPress/gutenberg/pull/40484.

Props luisherranz.
See #55567.

#39 @gziolo
22 months ago

In 53260:

Editor: Fix styles for nested elements (link color)

This fixes an issue by which link color behaves differently in the editor and front end.

Related Gutenberg PR: https://github.com/WordPress/gutenberg/pull/37728.

Props oandregal.
See #55567.

gziolo commented on PR #2615:


22 months ago
#41

Let's plan to land this patch tomorrow. I see two remaining tasks:

  • CORE_ATTRIBUTES -> GLOBAL_ATTRIBUTES
  • setup for attributes should happen before the register_block_type_args filter

#42 @gziolo
22 months ago

In 53262:

Build: Update the constant used to remove experimental Gutenberg code

We missed the change for blocks that got applied to packages. process.env.GUTENBERG_PHASE got renamed to process.env.IS_GUTENBERG_PLUGIN.

See #55567.
Follow-up for [53157].

#43 @gziolo
22 months ago

In 53268:

Editor: Register 'lock' attribute for every block on the server

Backports changes from https://github.com/WordPress/gutenberg/pull/40468.

The lock attribute needs to be supported by every block, but currently, it is only done on the client site. As a result, it was causing block rendered API requests to fail when blocks are locked.

Props mamaduka, peterwilsoncc.
See #55567.

This ticket was mentioned in PR #2629 on WordPress/wordpress-develop by adamziel.


22 months ago
#45

## What?
This huge PR is required to ship WordPress 6.0 Beta 3. It is part of the process described in the developer handbook.

This PR was prepared using the same process as https://github.com/WordPress/wordpress-develop/pull/2564, except part of it got automated thanks to https://github.com/WordPress/wordpress-develop/pull/2621.

cc @gziolo

Trac Ticket: https://core.trac.wordpress.org/ticket/55567

This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.

#46 @gziolo
22 months ago

In 53278:

Editor: Update WordPress packages for 6.0 Beta 3

Included cherry-picked commits from the Gutenberg plugin that fix bugs discovere after WordPress 6.0 Beta 2.

Props zieladam, ndiego.
See #55567.

jffng commented on PR #2622:


22 months ago
#47

I tested the latest version of this PR against TT2's style variations #2440 and the fonts are loading as expected 👏 :

https://user-images.githubusercontent.com/5375500/165312741-1207d75b-b543-4ed4-baaf-d654180d0d9e.mp4

hellofromtonya commented on PR #2622:


22 months ago
#49

Thank you @peterwilsoncc @aristath @jffng! I pushed some unhappy path integration tests. Once CI is all green 🟢 , I'll get this backport PR committed.

#50 @hellofromTonya
22 months ago

In 53282:

Themes: Add internal-only theme.json's webfonts handler (stopgap).

Adds _wp_theme_json_webfonts_handler() for handling fontFace declarations in a theme's theme.json file to generate the @font-face styles for both the editor and front-end.

Design notes:

  • It is not a public API, but rather an internal, Core-only handler.
  • It is a stopgap implementation that will be replaced when the public Webfonts API is introduced in Core.
  • The code design is intentional, albeit funky, with the purpose of avoiding backwards-compatibility issues when the public Webfonts API is introduced in Core.
    • It hides the inter-workings.
    • Does not exposing API ins and outs for external consumption.
    • Only works for theme.json.
    • Does not provide registration or enqueuing access for plugins.

For more context on the decision to include this stopgap and the Webfonts API, see:

Props aristath, hellofromTonya, peterwilsoncc, costdev, jffng, zieladam, gziolo, bph, jonoaldersonwp, desrosj.

See #55567, #46370.

#52 follow-up: @kebbet
22 months ago

  • Keywords needs-patch added; has-patch removed

53282 introduced incorrect textdomain for l18n-strings, should be default, not 'gutenberg'

#53 @hellofromTonya
22 months ago

In 53288:

Themes: Remove 'gutenberg' as translation context in _wp_theme_json_webfonts_handler().

Follow-up to [53282].

Props kebbet.

See #55567, #46370.

#54 in reply to: ↑ 52 @hellofromTonya
22 months ago

  • Keywords has-unit-tests needs-patch removed

Replying to kebbet:

53282 introduced incorrect textdomain for l18n-strings, should be default, not 'gutenberg'

Thank you @kebbet! Fixed in [53282].

Resetting keywords as all PRs / patches have been committed.

This ticket was mentioned in PR #2640 on WordPress/wordpress-develop by Mamaduka.


22 months ago
#55

  • Keywords has-patch added

Backports changes from https://github.com/WordPress/gutenberg/pull/40650.

Patch fixes regression introduced in a807e86391817a45dd82f54bef234be1a28d4c6d, and moves core "Featured" pattern category registraion from _load_remote_featured_patterns into _register_core_block_patterns_and_categories

## Testing Instructions

  1. Activate the 2016 theme or any theme that doesn't register Featured pattern categories.
  2. Open a Post or Page.
  3. Open Block inserter -> Patterns Tab
  4. Confirm that the "Featured" patterns category is registered.

Trac ticket: https://core.trac.wordpress.org/ticket/55567

cc @gziolo, @hellofromtonya

#56 @gziolo
22 months ago

In 53312:

Editor: Fix core 'Featured' pattern category registration

Backports changes from https://github.com/WordPress/gutenberg/pull/40650.

Patch fixes regression, and moves core "Featured" pattern category registration from _load_remote_featured_patterns into _register_core_block_patterns_and_categories.

Follow-up [53152].
Props mamaduka, ntsekouras.
See #55567.

#59 @gziolo
22 months ago

In 53329:

Editor: Update WordPress packages for 6.0 Beta 4

Included cherry-picked commits from the Gutenberg plugin that fix bugs discovere after WordPress 6.0 Beta 3.

Props zieladam, ndiego, darerodz.
See #55567.

kebbet commented on PR #2651:


22 months ago
#60

Is there a fix planned for this issue? https://github.com/WordPress/gutenberg/issues/40675

gziolo commented on PR #2651:


22 months ago
#61

Is there a fix planned for this issue? WordPress/gutenberg#40675

It's listed on the board with fixes for 6.0 but there is no patch. It won't be included today.

This ticket was mentioned in Slack in #core by chaion07. View the logs.


22 months ago

#65 @hellofromTonya
22 months ago

In 53338:

Editor: Update WordPress packages for 6.0 RC1.

Included cherry-picked commits from the Gutenberg plugin that fix bugs discovered after WordPress 6.0 Beta 4.

Props gziolo, zieladam, ndiego.

See #55567.

#67 @hellofromTonya
22 months ago

  • Resolution set to fixed
  • Status changed from new to closed

As RC1 is today and all backports have been committed ahead of it, closing this ticket for now. Please reopen during the RC cycle if/when there are backports needed.

#68 @gziolo
22 months ago

  • Resolution fixed deleted
  • Status changed from closed to reopened

#70 @gziolo
22 months ago

In 53377:

Editor: Update WordPress packages for 6.0 RC 2

Included cherry-picked commits from the Gutenberg plugin that fix bugs discovere after WordPress 6.0 RC 1.

Props zieladam, ndiego, hellofromtonya.
See #55567.

#72 @hellofromTonya
22 months ago

  • Keywords commit dev-feedback added

Marking [53377] for backport consideration to 6.0-branch.

#73 @kebbet
22 months ago

Sorry but I think the ”“ (“ and ”) should be inside the translateable string, as the use of them differs in different locales. In sv_SE we never user “, only ”.

#74 follow-up: @hellofromTonya
22 months ago

@kebbet is referring to this line of code:

`php
$post_title = '“' . get_the_title() . '”';
`

https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/blocks/comments-title.php#L26

and converting it into:

`php
/* translators: %s: Post title. */
$post_title = ( '“%s”', get_the_title() );
`

This change will to be done in Gutenberg as the block specific files are managed and published from there. @gziolo is there time before RC2?

Version 0, edited 22 months ago by hellofromTonya (next)

gziolo commented on PR #2697:


22 months ago
#76

I included a partial bug fix from https://github.com/WordPress/wordpress-develop/pull/2679 for the Gutenberg syncing script.

#77 @gziolo
22 months ago

In 53378:

Editor: Update WordPress packages for 6.0 RC 2 (part 2)

Includes cherry-picked commit from the Gutenberg plugin that fix a bug discovere just before WordPress 6.0 RC 2.

Props hellofromtonya, zieladam, kebbet.
See #55567.

#78 @gziolo
22 months ago

@kebbet, I fixed the issue you raised with [53378]. Thank you for help!

#80 in reply to: ↑ 74 ; follow-up: @SergeyBiryukov
22 months ago

Replying to hellofromTonya:

and converting it into:

/* translators: %s: Post title. */
$post_title          = __( '“%s”', get_the_title() );

Alternatively, two existing strings from wptexturize() could be reused here:

/* translators: Opening curly double quote. */
$opening_quote = _x( '“', 'opening curly double quote' );
/* translators: Closing curly double quote. */
$closing_quote = _x( '”', 'closing curly double quote' );

#81 @hellofromTonya
22 months ago

  • Keywords dev-reviewed added; dev-feedback removed

[53377] and [53378] both have string changes in it. The text portion of the [53377]
strings are not changed; rather, the empty space and %s post title placeholder are not part of the translatable string. These changes were openly discussed within the Making WordPress #polyglots channel. Looks like Polyglots are aware and there's consensus for the change 👍

Marking [53377] and [53378] ready for backport to 6.0-branch.

Last edited 22 months ago by hellofromTonya (previous) (diff)

#82 in reply to: ↑ 80 @hellofromTonya
22 months ago

Replying to SergeyBiryukov:

Alternatively, two existing strings from wptexturize() could be reused here:

/* translators: Opening curly double quote. */
$opening_quote = _x( '“', 'opening curly double quote' );
/* translators: Closing curly double quote. */
$closing_quote = _x( '”', 'closing curly double quote' );

Oh even better. That change would need to happen in the Gutenberg repository. Could be a consistency follow-up for RC3.

#83 @hellofromTonya
22 months ago

  • Owner set to hellofromTonya
  • Resolution set to fixed
  • Status changed from reopened to closed

In 53381:

Editor: Update WordPress packages for 6.0 RC 2.

[53377] Included cherry-picked commits from the Gutenberg plugin that fix bugs discovered after WordPress 6.0 RC 1.

[53378] Includes cherry-picked commit from the Gutenberg plugin that fix a bug discovered just before WordPress 6.0 RC 2.

Props zieladam, ndiego, kebbet, hellofromTonya.
Merges [53377] and [53378] to the 6.0 branch.
Fixes #55567.

#84 @gziolo
22 months ago

In 53402:

Theme: Use a better method to determine the theme name during export

See the same change in the Gutenberg plugin: https://github.com/WordPress/gutenberg/pull/40829.

Props scruffian, davidbaumwald, jeremyfelt.
See #55567.

#85 @gziolo
22 months ago

  • Keywords fixed-major added
  • Resolution fixed deleted
  • Status changed from closed to reopened

#87 @gziolo
22 months ago

In 53403:

Editor: Update WordPress packages for 6.0 RC 3

Included cherry-picked commits from the Gutenberg plugin that fix bugs discovered after WordPress 6.0 RC 2.

Props zieladam, ndiego.
See #55567.

#89 @gziolo
22 months ago

In 53404:

Editor: Return additional block patterns to server-generated settings

Reverts changes from [53155] to ensure backward compatibility.

Companion to Gutenberg changes https://github.com/WordPress/gutenberg/pull/40818. That makes sure that patterns registered with admin_init or current_screen hooks are not lost.

Props jsnajdr, zieladam, peterwilsoncc, johnstonphilip.
See #55567.

This ticket was mentioned in PR #2672 on WordPress/wordpress-develop by jsnajdr.


22 months ago
#90

This reverts commit 31c2639b80cf532abe2506c0a20c2ddd61ca71fc.

As a companion to Gutenberg https://github.com/WordPress/gutenberg/pull/40818, start adding __experimentaBlockPatterns and __experimentalBlockPatternCategories to server-generated editor settings. That makes sure that patterns registered in admin_init or current_screen are not lost.

Fixes https://github.com/WordPress/gutenberg/issues/40736

Trac ticket: https://core.trac.wordpress.org/ticket/55567

#92 @gziolo
22 months ago

  • Keywords dev-feedback added; dev-reviewed removed

Marking 3 commits [53402], [53403], [53404] for backport consideration to 6.0-branch. They are necessary to include all the bug fixes resolved for WordPress 6.0 RC 3 for the editor.

Last edited 22 months ago by SergeyBiryukov (previous) (diff)

#93 @SergeyBiryukov
22 months ago

  • Keywords dev-reviewed added; dev-feedback removed

[53402], [53403], and [53404] look good to backport.

#94 @gziolo
22 months ago

  • Resolution set to fixed
  • Status changed from reopened to closed

In 53405:

Editor: Update WordPress packages for 6.0 RC 3

[53402] Theme: Use a better method to determine the theme name during export

[53403] Editor: Update WordPress packages for 6.0 RC 3

[53404] Editor: Return additional block patterns to server-generated settings

Props SergeyBiryukov, scruffian, davidbaumwald, jeremyfelt, zieladam, ndiego, jsnajdr, peterwilsoncc, johnstonphilip.
Merges [53402], [53403] and [53404] to the 6.0 branch.
Fixes #55567.

#95 @gziolo
21 months ago

In 53419:

Editor: Fix opinionated block styles loading in editor

Related changes in Gutenberg: https://github.com/WordPress/gutenberg/pull/40937.

Backport for WordPress 6.0 RC 4.

Props jffng.
See #55567.

#97 @gziolo
21 months ago

In 53420:

Editor: Update WordPress packages for 6.0 RC 4

Included cherry-picked commits from the Gutenberg plugin that fix bugs discovered after WordPress 6.0 RC 3.

Props zieladam.
See #55567.

#99 follow-up: @gziolo
21 months ago

  • Keywords dev-feedback added; dev-reviewed removed
  • Resolution fixed deleted
  • Status changed from closed to reopened

Marking 2 commits [53419], [53420] for backport consideration to 6.0-branch. They are necessary to include all the bug fixes resolved for WordPress 6.0 RC 4 for the editor.

#100 in reply to: ↑ 99 @SergeyBiryukov
21 months ago

Replying to gziolo:

Marking 2 commits [53419], [53420] for backport consideration to 6.0-branch.

[53419] looks good to backport.

In [53420], it seems like the new $fallback_gap_value parameter of wp_get_layout_style() is missing a description, it should be added to the function DocBlock. Otherwise, looks good too.

#101 @gziolo
21 months ago

In 53421:

Docs: Add missing documentation for fallback_gap_value param

Follow-up for [53420].

Props SergeyBiryukov.
See #55567.

#102 @gziolo
21 months ago

In [53420], it seems like the new $fallback_gap_value parameter of wp_get_layout_style() is missing a description, it should be added to the function DocBlock. Otherwise, looks good too.

Good catch! Fixed with [53421] so we will have to backport to 6.0 that commit, too.

#103 @SergeyBiryukov
21 months ago

  • Keywords dev-reviewed added; dev-feedback removed

👍

#104 @gziolo
21 months ago

  • Resolution set to fixed
  • Status changed from reopened to closed

In 53422:

Editor: Update WordPress packages for 6.0 RC 4

[53419] Editor: Fix opinionated block styles loading in editor

[53420] Editor: Update WordPress packages for 6.0 RC 4

[53421] Docs: Add missing documentation for fallback_gap_value param

Props SergeyBiryukov, zieladam, jffng.
Merges [53419], [53420] and [53421] to the 6.0 branch.
Fixes #55567.

Note: See TracTickets for help on using tickets.