Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor production blocks registration 4 #33667

Merged
merged 13 commits into from
Oct 27, 2023

Conversation

monsieur-z
Copy link
Contributor

Proposed changes:

Registers the following production blocks by specifying the path to their block.json file: Paywall, Pinterest, Podcast Player, Rating Star, Recurring Payments.

This was made possible by #32697. The goal is to avoid the duplication of block metadata and use block.json as the source of truth.

In more details, for each block (when needed):

  • Write reading direction-agnostic CSS
  • Remove the editorScript property from block.json (automatically added during the build)
  • Convert icon from dashicon to SVG in the icon property of block.json
  • Remove icon.js
  • Import icon helpers from the shared-extension-utils package
  • Register the block client and server sides with block.json
  • Move data from index.js to block.json and editor.js and delete the file
  • Move data from attributes.js to block.json and delete the file
  • Fix JS tests

Other information:

  • Have you written new tests for your changes, if applicable?
  • Have you checked the E2E test CI results, and verified that your changes do not break them?
  • Have you tested your changes on WordPress.com, if applicable (if so, you'll see a generated comment below with a script to run)?

Jetpack product discussion

pedMtX-RS-p2

Does this pull request change what data or activity we track or use?

No.

Testing instructions:

  • Spin up a test site
  • Create a new post and open the block inserter
  • Test that the aforementioned blocks behave as in trunk. This PR shouldn't change anything from a user's standpoint. You'll need to activate subscriptions to test the Paywall block.

Note: I couldn't test the Recurring Payments block.

@monsieur-z monsieur-z added [Focus] Blocks Issues related to the block editor, aka Gutenberg, and its extensions developed in Jetpack [Status] Needs Team Review labels Oct 18, 2023
@monsieur-z monsieur-z requested a review from a team October 18, 2023 19:07
@monsieur-z monsieur-z self-assigned this Oct 18, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Oct 18, 2023

Thank you for your PR!

When contributing to Jetpack, we have a few suggestions that can help us test and review your patch:

  • ✅ Include a description of your PR changes.
  • ✅ Add a "[Status]" label (In Progress, Needs Team Review, ...).
  • ✅ Add testing instructions.
  • ✅ Specify whether this PR includes any changes to data or privacy.
  • ✅ Add changelog entries to affected projects

This comment will be updated as you work on your PR and make changes. If you think that some of those checks are not needed for your PR, please explain why you think so. Thanks for cooperation 🤖


The e2e test report can be found here. Please note that it can take a few minutes after the e2e tests checks are complete for the report to be available.


Once your PR is ready for review, check one last time that all required checks appearing at the bottom of this PR are passing or skipped.
Then, add the "[Status] Needs Team Review" label and ask someone from your team review the code. Once reviewed, it can then be merged.
If you need an extra review from someone familiar with the codebase, you can update the labels from "[Status] Needs Team Review" to "[Status] Needs Review", and in that case Jetpack Approvers will do a final review of your PR.


Jetpack plugin:

The Jetpack plugin has different release cadences depending on the platform:

  • WordPress.com Simple releases happen daily.
  • WoA releases happen weekly.
  • Releases to self-hosted sites happen monthly. The next release is scheduled for November 7, 2023 (scheduled code freeze on October 30, 2023).

If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 18, 2023

Are you an Automattician? Please test your changes on all WordPress.com environments to help mitigate accidental explosions.

  • To test on WoA, go to the Plugins menu on a WordPress.com Simple site. Click on the "Upload" button and follow the upgrade flow to be able to upload, install, and activate the Jetpack Beta plugin. Once the plugin is active, go to Jetpack > Jetpack Beta, select your plugin, and enable the refactor/production-blocks-registration-4 branch.

  • To test on Simple, run the following command on your sandbox:

    bin/jetpack-downloader test jetpack refactor/production-blocks-registration-4
    

Interested in more tips and information?

  • In your local development environment, use the jetpack rsync command to sync your changes to a WoA dev blog.
  • Read more about our development workflow here: PCYsg-eg0-p2
  • Figure out when your changes will be shipped to customers here: PCYsg-eg5-p2

const FEATURE_NAME = 'pinterest';
const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
const URL_PATTERN = '#^https?://(?:www\.)?(?:[a-z]{2}\.)?pinterest\.[a-z.]+/pin/(?P<pin_id>[^/]+)/?#i'; // Taken from AMP plugin, originally from Jetpack.
const URL_PATTERN = '#^https?://(?:www\.)?(?:[a-z]{2}\.)?pinterest\.[a-z.]+/pin/(?P<pin_id>[^/]+)/?#i'; // Taken from AMP plugin, originally from Jetpack.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it the same as URL_REGEX in constants ? Could it be reused?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, or it's the one below

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this be a rebase issue with #33604? The Payments button is modified there.

@@ -69,7 +69,7 @@ const PodcastPlayerEdit = ( {
replaceWithEmbedBlock,
} ) => {
// Validated attributes.
const validatedAttributes = getValidatedAttributes( attributesValidation, attributes );
const validatedAttributes = getValidatedAttributes( metadata.attributes, attributes );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This causes the block to break. You can try to add a podcast URL to the block and you will get the following errors:

image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this may be causing a notice:

Warning: Undefined array key "ratingStyle" in /wp-content/plugins/jetpack-dev/extensions/blocks/rating-star/rating-meta.php on line 123

@@ -65,5 +65,5 @@
"type": "string"
}
},
"editorScript": "file:../editor.js"
"parent": [ "jetpack/payment-buttons" ]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This block is currently broken for me:

image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also noticed this in console:
Screenshot at Oct 24 10-20-45

@jeherve jeherve added [Status] Needs Author Reply We would need you to make some changes or provide some more details about your PR. Thank you! and removed [Status] Needs Team Review labels Oct 24, 2023
@monsieur-z monsieur-z force-pushed the refactor/production-blocks-registration-4 branch from ab580cc to 2bf0f75 Compare October 24, 2023 19:21
@monsieur-z monsieur-z changed the base branch from trunk to refactor/production-blocks-registration-3 October 24, 2023 19:21
Copy link
Member

@jeherve jeherve left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the tests in extensions/blocks/rating-star/test/validate.js will need to be updated?

Base automatically changed from refactor/production-blocks-registration-3 to trunk October 25, 2023 12:29
@monsieur-z monsieur-z force-pushed the refactor/production-blocks-registration-4 branch from a4d1be2 to 4d6da24 Compare October 26, 2023 18:19
@monsieur-z monsieur-z added [Status] Needs Team Review and removed [Status] Needs Author Reply We would need you to make some changes or provide some more details about your PR. Thank you! labels Oct 26, 2023
@monsieur-z monsieur-z force-pushed the refactor/production-blocks-registration-4 branch from 4d6da24 to f9834de Compare October 26, 2023 19:15
@jeherve jeherve added [Status] Ready to Merge Go ahead, you can push that green button! and removed [Status] Needs Team Review labels Oct 27, 2023
@jeherve jeherve merged commit 4329dd4 into trunk Oct 27, 2023
54 of 56 checks passed
@jeherve jeherve deleted the refactor/production-blocks-registration-4 branch October 27, 2023 13:01
@github-actions github-actions bot added this to the jetpack/12.8 milestone Oct 27, 2023
@github-actions github-actions bot removed the [Status] Ready to Merge Go ahead, you can push that green button! label Oct 27, 2023
monsieur-z added a commit that referenced this pull request Oct 27, 2023
monsieur-z added a commit that referenced this pull request Oct 27, 2023
* Revert "Refactor production blocks registration 4 (#33667)"

This reverts commit 4329dd4.

* Remove removeInvalidProducts unused function

* Remove entry from ESLint exclude list
@monsieur-z monsieur-z mentioned this pull request Oct 27, 2023
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

None yet

3 participants