Make WordPress Core

Opened 2 years ago

Closed 2 years ago

#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.


2 years 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
2 years 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.


2 years 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.


2 years 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:


2 years ago
#9

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

Mamaduka commented on PR #2602:


2 years ago
#10

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

peterwilsoncc commented on PR #2602:


2 years 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
2 years 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
2 years 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:


2 years ago
#18

Sorry about copy-pasta, @gziolo.

gziolo commented on PR #2600:


2 years 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
2 years 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
2 years 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
2 years 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
2 years 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.


2 years 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.


2 years 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:


2 years 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.


2 years 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:


2 years 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:


2 years 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.


2 years 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.


2 years 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:


2 years ago
#34

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

#35 @gziolo
2 years ago

In 53258:

Tests: Add missing unit tests to Comment Template block

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

#36 @gziolo
2 years 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
2 years 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:


2 years 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
2 years 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
2 years 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.


2 years 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
2 years 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:


2 years 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:


2 years 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
2 years 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
2 years ago

  • Keywords needs-patch added; has-patch removed

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

#53 @hellofromTonya
2 years 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
2 years 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.


2 years 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
2 years 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
2 years 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:


2 years ago
#60

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

gziolo commented on PR #2651:


2 years 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.


2 years ago

#65 @hellofromTonya
2 years 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
2 years 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
2 years ago

  • Resolution fixed deleted
  • Status changed from closed to reopened

#70 @gziolo
2 years 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
2 years ago

  • Keywords commit dev-feedback added

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

#73 @kebbet
2 years 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
2 years ago

@kebbet is referring to this line of code:

$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:

/* 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?

Last edited 2 years ago by hellofromTonya (previous) (diff)

gziolo commented on PR #2697:


2 years ago
#76

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

#77 @gziolo
2 years 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
2 years ago

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

#80 in reply to: ↑ 74 ; follow-up: @SergeyBiryukov
2 years 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
2 years ago

  • Keywords dev-reviewed added; dev-feedback removed

[533377] and [533378] both have string changes in it. The text portion of the [533377]
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 [533377] and [533378] ready for backport to 6.0-branch.

Version 0, edited 2 years ago by hellofromTonya (next)

#82 in reply to: ↑ 80 @hellofromTonya
2 years 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
2 years 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
2 years 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
2 years ago

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

#87 @gziolo
2 years 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
2 years 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.


2 years 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
2 years 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 2 years ago by SergeyBiryukov (previous) (diff)

#93 @SergeyBiryukov
2 years ago

  • Keywords dev-reviewed added; dev-feedback removed

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

#94 @gziolo
2 years 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
2 years 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
2 years 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
2 years 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
2 years 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
2 years ago

In 53421:

Docs: Add missing documentation for fallback_gap_value param

Follow-up for [53420].

Props SergeyBiryukov.
See #55567.

#102 @gziolo
2 years 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
2 years ago

  • Keywords dev-reviewed added; dev-feedback removed

👍

#104 @gziolo
2 years 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.