Skip to content

Commit

Permalink
Catch up your branch (#2)
Browse files Browse the repository at this point in the history
* Social: Fix auto-conversion cleanup logic (Automattic#34666)

* Fix logic to be mindful of absent option

* changelog

* Fixup versions

* Launchpad: Improve the WC task visibility check (Automattic#34648)

* Improve the WC task visibility check

* Bump version

* Fix composer

* changelog

* Bump version

---------

Co-authored-by: Valter Lorran <valter.lorran@automattic.com>

* Improve sharing buttons events performance (Automattic#34652)

* Backport mu-wpcom-plugin 2.0.7, jetpack 13.0-a.5 Changes (Automattic#34676)

* Changelog edits.

* Init new cycle

* Carousel: fix unresponsive navigation (Automattic#34678)

* Check for both aksimet and antispam for backwards compatibility (Automattic#34674)

* Jetpack Google Fonts: Fix the fonts provided by theme are still added (Automattic#34608)

* Google Fonts: Ignore the fonts that are provied by the active theme

* changelog

* Update syntax

* Subscribers: fix the reach count above 1000 (Automattic#34689)

Allows strings in translation strings. Ensures reachCount is consistently a Number, and convert it to string for localization.

* Subscriptions: localize number format in access panel (Automattic#34691)

* Added preemptive check full sync posts processing (Automattic#34661)

* Added preemptive check to break the loop of adding metadata if we are already over the MAX SIZE

* Added changelog

* Added break 2 since there is no point in doing the comparison in the outer loop which will break too

* Version bump

* Like block: remove like module dependency (Automattic#34664)

* - Remove dependency on likes module
- Render master iframe (only once)

* Changelog

* Don't render anything when post_id is missing

* Better check

* Change master to main

* Enqueue styles & register them on first usage

* Remove require_once

* Update iframe for WPCOM

* Require the module

* Docs: update quick start guide (Automattic#34656)

* Clarify quick start guide is geared for a12s

* Cleanup cloning and install script steps

* Move env checker script heading below install steps

* Adjust heading levels

* Move jtube a11n-only note to top of its section

* Add ngrok/jtube info to full dev-env guide

* CRM: Ensure segments can be deleted (Automattic#34690)

* Update JS unit testing packages (major) (Automattic#34694)

* Update JS unit testing packages
* Update indirect @adobe/css-tools dep

---------

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>

* Update storybook monorepo to v7.6.5 (Automattic#34696)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Show an error when one is encountered while rendering a payment button (Automattic#34380)

* Render an error message when the button cannot be rendered

* changelog

* CRM: Resolves 3399 - make KB links consistent in settings (Automattic#34695)

* Adjust wording to clarify all fields can show in Woo My Account

* Add KB link

* Use consistent UI to link to KB from settings

* Simplify wording

* Remove stray end tag

* Remove errant colspan attribute

* Add changelog

* Only contact fields

* Feature: AI Assistant UI fixes (Automattic#34383)

* use spinner instead of ai icon

* adjust main action button styles

* only show main action buttons when there's content. Switch between icon and label for mobile. Do not show clear button is state is requesting

* do not show clearbutton

* changelog

* fix versions

* keep spinner while suggesting state

* remove clear button

* AI Assistant: change main action buttons style and behavior (Automattic#34370)

* optimize style declaration

* always use inputValue

* AI Assistant: add suggestions actions (Automattic#34399)

* add suggestion action buttons

* add editRequest state to handle back and forth editing 'mode'

* add discard callback on AI control, pass on tryAgain handler

* add changelog entries

* adjust behavior upon observations

* AI Assistant: improve spacing and sizes for block and action buttons (Automattic#34444)

* address spacing and size issues on the assistant block

* modify loading icon wrapper and size

* avoid height jumps when buttons wrapper is introduced

* fix spacing on icon buttons

* add changelogger entry for js-package

* AI Assistant: fix block to bottom when content exceeds the viewport height (Automattic#34452)

* fix ai block to bottom when content exceeds the viewport height

* add outside wrapper

* move positioning directive to outside wrapper

* adjust bottom space for outside wrapper

* AI Assistant: remove try again toolbar button (Automattic#34464)

* make handleTryAgain optional so to remove when not present

* add changelog entry

* AI Assistant bar: fix positioning on mobile (Automattic#34476)

* wrap assistant bar to control positioning

* always make sure the assistant bar is placed AFTER the toolbar

* add changelog entry

* AI Assistant: add prompt to attributes (Automattic#34438)

* add userPrompt to the block's attributes

* set last value to default to initial prop

* add requestingState to attributes to keep consistency between reloads

* add changelog entry

* AI assistant: change guideline component (Automattic#34496)

* fix multiple line display on ai control footer message

* export AI control message as FooterMessage

* add changelog entry

* AI Assistant: fix bottom padding issue (Automattic#34519)

* fix bottom padding by using bottom directive for sticky positioning

* add changelog entry

* remove unnecessary directive

* AI Assistant: restrict stored state value (Automattic#34522)

* restrict stored states to 'init' and 'done' so we don't reload into half way scenarios

* add changelog entry

* fix misuse of ternary

* add cancel button to get rid of the assistant block (Automattic#34524)

* AI Client: fix empty prompts handling (Automattic#34547)

* use a default value to keep track of changes in the prompt, allow for empty prompts to show suggestion action buttons

* use null instead of a made up default value

* handle edit mode logic on one-click actions (Automattic#34584)

* AI Assistant: prepare new UI/UX features for merge (Automattic#34620)

* consolidate changelog entry for ai-client

* consolidate changelog entry for Jetpack plugin

* add test instructions for the new AI Assistant UI/UX

* AI Assistant: change prompt placeholder (Automattic#34671)

* remove typing effect from prompt placeholders

* use a fixed placeholder with suggestions on how to create a prompt

* use different placeholders depending on whether there is content or not

* move ternary out of jsx chunk

* take i18n out of ternary

* change placeholder text

* remove back to edit button (Automattic#34675)

* add showRemove attribute to AIControl (Automattic#34677)

* Cleanup quick wins after feedback (Automattic#34679)

* clean up changelog entries for ai-client

* clean up changelog entries for jetpack plugin

* AI assistant: fix positioning (Automattic#34700)

* remove some confusing 100% widths messing with border alignments

* fix colliding bottom directives on assistant bar

* Membership services: small refactor (Automattic#34635)

* Very small clean up

* Rename abstract class filename

* Create membership-abstract-token-class

* Fix path

* fix typing

* Update class-wpcom-online-subscription-service.php

* Update projects/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-asbtract-token-subscription-service.php

Co-authored-by: Miguel Lezama <miguel@automattic.com>

* Update projects/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jetpack-token-subscription-service.php

Co-authored-by: Miguel Lezama <miguel@automattic.com>

* Rename file

* Update class-wpcom-online-subscription-service.php

* Rename references to Token_Subscription_Service

* Fix naming

---------

Co-authored-by: Miguel Lezama <miguel@automattic.com>

* Boost: Refactor module, index and more into React (Automattic#34662)

* Create skeleton for Module component in React

* Refactor UpgradeCTA to React

* Added a small variant for toggle control

* Use small variant of toggle control

* Fix onEnable, onMountEnable, and onDisable

* Do not pass yearlyPricing

* Implement onEnable and onDisable

* changelog

* Create index component

* Make module errors consistent with old design

* Fix ISA alignment

* Improve alignments and spacing

* Add resize unavailable notice

* Add fake recommendations meta

* Add missing pieces

* Cleanup

* Remove Index.svelte

* Move pricing to ds based config

* Remove Module.svelte

* Use React DS based moduleState management

* Restore tsconfig change

* Change interface for useModuleState callbacks

* Call useModuleState hook directly on the component

* Fix infinite loop on purchase success

* Fixup project version

* Fix selector in test

* Make speed score dependent on useModulesState for auto-refresh to work

* Fix isModuleEnabled check

* Update modules-state endpoint in tests

---------

Co-authored-by: Mark George <thingalon@gmail.com>

* Boost: Migrate Tips to react (Automattic#34697)

* Update Tips to react

* add changelog

* Backport crm 6.3.2 Changes (Automattic#34708)

* Fix missing class fatal related to PR Automattic#34635 (Automattic#34705)

* CRM: start 6.3.3-alpha release cycle (Automattic#34710)

* Fix My plan dashboard js errors due to nested anchor tags  (Automattic#34707)

* Moved href from Button props to ExternalLink props to avoid duplicate anchor tags

* Added changelog

* Admin Page: avoid react warning with VideoPress card (Automattic#34713)

This should avoid us getting the following warning:

```
Warning: Failed prop type: Invalid prop `overrideContent` of type `boolean` supplied to `DashItem`, expected a single ReactElement.
DashItem@wp-content/plugins/jetpack/_inc/build/admin.js?ver=28b3a12169ab227bdcfa:36878:1
SettingsForm@wp-content/plugins/jetpack/_inc/build/admin.js?ver=28b3a12169ab227bdcfa:43524:3
ConnectFunction@wp-content/plugins/jetpack/_inc/build/admin.js?ver=28b3a12169ab227bdcfa:8870:68
ConnectFunction@wp-content/plugins/jetpack/_inc/build/admin.js?ver=28b3a12169ab227bdcfa:8870:68
DashVideoPress@wp-content/plugins/jetpack/_inc/build/admin.js?ver=28b3a12169ab227bdcfa:34467:1
```

* Fix missing class fatal related to PR Automattic#34635 (Automattic#34718)

* Subscriptions: update "verify your email" wall copy (Automattic#34716)

Co-authored-by: Jeremy Herve <jeremy@jeremy.hu>

* Fix sharing buttons window open (Automattic#34703)

* Contact Form: add extra field settings to base field (Automattic#34704)

* Contact Form: add extra field settings to base field

* Fix package version

* Fix the media validation notice shown even when auto conversion is enabled. (Automattic#34730)

Co-authored-by: Gergely Juhasz <gergely.juhasz@automattic.com>

* Add `wpcom_ai_site_prompt` option to the site settings endpoint (Automattic#34709)

* Social: Fix endpoint backwards compatibility (Automattic#34566)

* Readd REST controllers with updated logic

* Readd class-settings classes for initial state population

* changelog

* Use depreacted and next_version tags

* Fixup versions

* Boost: Update Settings Page to react (Automattic#34714)

* Update Settings Page to react

* add changelog

* Sharing: update Twitter and X buttons to support official X button (Automattic#34719)

* Sharing: update Twitter and X buttons to support official X button

See Automattic#34459

- The official Twitter button is no more; it has been updated to the X design. Let's update our preview Twitter button match.
- Since we now have an official X button, let's offer it with the X service.

* Adjust official button styles in wp-admin

* This method is not needed

* Update domain name

* Update source name

* Bump version by specifying Jetpack version when enqueuing

* Update logo

* Update icon with more radius

* Social | Hide conversion notice for Simple sites (Automattic#34733)

* Hide notice on simple sites

* changelog

* Make auto-conversion disabled if not available

* Fixup versions

* Sharing buttons block alternate settings screen (Automattic#34673)

* build: Use a GitHub webhook to trigger the betadownload site (Automattic#34604)

Once Automattic/jetpack-builder#36 is deployed, we can update our build
script to produce the artifact for forked PRs and set up a GitHub
webhook for the `workflow_run` event to support testing with PRs from
forked repositories.

This requires the GitHub "Fork pull request workflows from outside
collaborators" setting to be set to "Require approval for all outside
contributors" to avoid unreviewed code potentially producing malicious
zips for the betadownload server. We've had that set since March 2023
(p9dueE-6Rp-p2).

This also updates the Jetpack Live Branches script to remove the check
for a forked PR, since we can now test with them.

* Contact Form: minify stylesheets in prod (Automattic#34672)

* Contact Form: minify stylesheets in prod

* Update registered styles paths

* Fix package version

* Tools: Add the Readme to the release script (Automattic#34722)

* Make sure the readme.txt file gets updated after saving changelog edits

* Fix command being run

* comment out a check

* pass the correct flag

* Undo comments

* Update the next steps at the end

* Fix token subscription service name (Automattic#34723)

* Rename Token_Subscript_Service to Abstract_Token_Subscription_Service

* changelog

* Allow old class just in case

* `use` classes at the top to shorten up the class check.

* Content Lens: move feature to `beta` (Automattic#34740)

* move `content-lens` feature to beta

* changelog

* Newsletter prepublish panel: update toggle appearance (Automattic#34724)

* Contact Form: add accessible name to form (Automattic#34667)

* Contact Form: add accessible name to form

* Update accessible name on content change

* Remove unused code

* Fix package version

* Add warning notice

* Backport mu-wpcom-plugin 2.0.8, jetpack 13.0-a.7 Changes (Automattic#34742)

* Changelog and readme.txt edits.

* Init new cycle

* Fix the stable tag

* [Boost] Fix importmap deferral (Automattic#34746)

* Add importmap to the set of script types we exclude from deferral

* changelog

* Fix versions in packages/forms

* changelog

---------

Co-authored-by: Mark George <thingalon@gmail.com>

* Update changelog (Automattic#34747)

* Admin page: remove alt attribute from decorative icon (Automattic#34715)

The Alt value isn't necessary here, since the icon doesn't bring any additional info on the page for folks using screen readers.

This has the added benefit of getting rid of a React warning:

```
Warning: Failed prop type: Invalid prop `alt` of type `object` supplied to `PlanIcon`, expected `string`.
PlanIcon@wp-content/plugins/jetpack/_inc/build/admin.js?ver=15a830895a6f6d1e3c39:44686:1
MyPlanCard@wp-content/plugins/jetpack/_inc/build/admin.js?ver=15a830895a6f6d1e3c39:51709:20
```

* Add/fix typo (Automattic#34712)

* Fix typo

* Chnagelog

---------

Co-authored-by: Fabien MILLERAND <fab.millerand@automattic.com>

* Boost: Refactor navigation into react (Automattic#34731)

* Use react router

* Add redirects

* Fix typo

* Add dummy ISA page

* Add tracks

* Restore getting started functionality

* Move props to DS

* Move connection to DS and cleanup props

* Remove connection from JS constants

* Improve getting started handling

* Remove wrapping individual components with `DataSyncProvider`

* Only start ISA if ISA is active

* changelog

* Use hook and component provided by react-router-dom

* Remove data-sync provider wrapping from settings-page

* Remove jetpack connection prop from analytics

Analytics isn't collected while there is no connection. So, this prop is unnecessary anyway.

* Pop bubbles for performanceHistoryNeedsUpdate

* Fix priority support

* Cast wpcom blogId into integer

* Fix getting started with free

* Fix getting started for real

* Show index for missing routes

* Stats: add passing select UTM parameters (Automattic#34431)

This commit adds select UTM parameters to the pixel requests send to wp.com, so that we can show more statistics to site owners.

---------

Co-authored-by: Gergely Márk Juhász <36671565+gmjuhasz@users.noreply.github.com>
Co-authored-by: valterlorran <valterlorran@hotmail.com>
Co-authored-by: Valter Lorran <valter.lorran@automattic.com>
Co-authored-by: Andrii Lysenko <60262784+andrii-lysenko@users.noreply.github.com>
Co-authored-by: Steve D <33553323+sdixon194@users.noreply.github.com>
Co-authored-by: Kev <kevin.zoschke@automattic.com>
Co-authored-by: arthur791004 <arthur.chu@automattic.com>
Co-authored-by: Mikael Korpela <mikael@ihminen.org>
Co-authored-by: Juanma Rodriguez Escriche <juanma.rodriguez.escriche@automattic.com>
Co-authored-by: Tim Broddin <tim@wannabes.be>
Co-authored-by: Samiff <samiff@users.noreply.github.com>
Co-authored-by: Karen Attfield <karenlattfield@gmail.com>
Co-authored-by: Calypso Bot <sysops+ghmatticbot@automattic.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
Co-authored-by: Chris McCluskey <chris.mccluskey@automattic.com>
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
Co-authored-by: Christian Gastrell <cgastrell@gmail.com>
Co-authored-by: MILLER/F <millerf@automattic.com>
Co-authored-by: Miguel Lezama <miguel@automattic.com>
Co-authored-by: Adnan Haque <3737780+haqadn@users.noreply.github.com>
Co-authored-by: Mark George <thingalon@gmail.com>
Co-authored-by: Peter Petrov <peter.petrov89@gmail.com>
Co-authored-by: Jeremy Herve <jeremy@jeremy.hu>
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
Co-authored-by: Gergely Juhasz <gergely.juhasz@automattic.com>
Co-authored-by: Griffith Chen <cferrios@gmail.com>
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
Co-authored-by: Christopher Smith <8002138+chrisfromthelc@users.noreply.github.com>
Co-authored-by: Damián Suárez <rdsuarez@gmail.com>
Co-authored-by: thingalon <mark@thingalon.com>
Co-authored-by: Fabien MILLERAND <fab.millerand@automattic.com>
Co-authored-by: Piotr Stankowski <6437642+trakos@users.noreply.github.com>
  • Loading branch information
1 parent 3ed8e9b commit 2434b7a
Show file tree
Hide file tree
Showing 289 changed files with 4,278 additions and 3,750 deletions.
29 changes: 6 additions & 23 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ jobs:
name: Create artifact for Jetpack Beta plugin
runs-on: ubuntu-latest
needs: build
if: ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'Automattic/jetpack' ) && needs.build.outputs.any_plugins == 'true'
if: needs.build.outputs.any_plugins == 'true'
timeout-minutes: 10 # 2021-06-24: Successful runs should take just a few seconds now. But sometimes the upload is slow.
steps:
- uses: actions/checkout@v3
Expand All @@ -224,8 +224,7 @@ jobs:
# Assume GH run IDs are monotonic.
VERSUFFIX="${GITHUB_RUN_ID}-g${SHA:0:8}"
# Plugin data is passed as a JSON object.
PLUGIN_DATA="{}"
ANY_BUILT=false
while IFS=$'\t' read -r SRC MIRROR SLUG; do
echo "::group::$MIRROR (src=$SRC slug=$SLUG)"
Expand Down Expand Up @@ -263,40 +262,24 @@ jobs:
# Zip the plugin
( cd work && zip -9 -r "../zips/${SLUG}-dev.zip" "${SLUG}-dev" )
# Record plugin data.
PLUGIN_DATA=$( jq -c --arg slug "$SLUG" --arg ver "$CURRENT_VERSION" '.[ $slug ] = { version: $ver }' <<<"$PLUGIN_DATA" )
ANY_BUILT=true
echo "::endgroup::"
done < build/plugins.tsv
if [[ "$PLUGIN_DATA" == "{}" ]]; then
if ! $ANY_BUILT; then
echo "No plugins were built"
fi
echo "plugin-data=$PLUGIN_DATA" >> "$GITHUB_OUTPUT"
echo "any-built=$ANY_BUILT" >> "$GITHUB_OUTPUT"
- name: Create plugins artifact
uses: actions/upload-artifact@v3
if: steps.prepare.outputs.plugin-data != '{}'
if: steps.prepare.outputs.any-built == 'true'
with:
name: plugins
path: zips
# Only need to retain for a day since the beta builder slurps it up to distribute.
retention-days: 1

- name: Inform Beta Download webhook
if: steps.prepare.outputs.plugin-data != '{}'
env:
SECRET: ${{ secrets.JPBETA_SECRET }}
PLUGIN_DATA: ${{ steps.prepare.outputs.plugin-data }}
PR: ${{ github.event.number }}
SHA: ${{ github.event.pull_request.head.sha || github.sha }}
run: |
curl -v --fail -L \
--url "https://betadownload.jetpack.me/gh-action.php?run_id=$GITHUB_RUN_ID&pr=$PR&commit=$SHA" \
--form-string "repo=$GITHUB_REPOSITORY" \
--form-string "branch=${GITHUB_REF#refs/heads/}" \
--form-string "plugins=$PLUGIN_DATA" \
--form-string "secret=$SECRET"
update_mirrors:
name: Push to mirror repos
runs-on: ubuntu-latest
Expand Down
9 changes: 9 additions & 0 deletions docs/development-environment.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
- [Composer](#composer)
- [jetpack CLI](#jetpack-cli)
- [Check if your environment is ready for Jetpack development](#check-if-your-environment-is-ready-for-jetpack-development)
- [Testing Jetpack cloud features](#testing-jetpack-cloud-features)
- [Development workflow](#development-workflow)
- [Building your project](#building-your-project)
- [Syncing local changes with Unison](#syncing-local-changes-with-unison)
Expand Down Expand Up @@ -165,6 +166,14 @@ Once you're all set here, you can continue developing. If you're setting up an l

`jetpack build` will provide prompts to determine the project you need or you can pass it a complete command, like `jetpack build plugins/jetpack --with-deps`

### Testing Jetpack cloud features

In order to test features that require a WordPress.com connection and other network related Jetpack features, you'll need a test site that can create local HTTP tunnels.

If you're an Automattician, we recommend using [Jurassic Tube](./quick-start.md#setting-up-jurassic-tube).

For other methods, check out [ngrok](../tools/docker/README.md#using-ngrok-with-jetpack) or [another similar service](https://alternativeto.net/software/ngrok/).

# Development workflow

Once you have a local copy of Jetpack and all development tools installed, you can start developing.
Expand Down
74 changes: 38 additions & 36 deletions docs/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,23 @@

This guide is designed to get you up and running working with the Jetpack Monorepo quickly following recommended and supported guidelines.

This guide assumes you are using MacOS or a Linux machine and are an Automattician. For more detailed information, including alternate local dev environments, running unit tests, best coding practices, and more, you can use the [full Development Environment guide here](development-environment.md#clone-the-repository).
**This guide assumes you are using MacOS or a Linux machine and are an Automattician**. For more detailed information, including setting up local dev environments for all contributors, running unit tests, best coding practices, and more, you can use the [full Development Environment guide here](development-environment.md#clone-the-repository).

## Installation

### Using the installation script

To speed up the installation process, you may use our monorepo installation script. To do so:
- clone the Jetpack repo using one of these two methods:
- A public SSH key ([recommended](https://github.com/Automattic/jetpack/blob/trunk/docs/development-environment.md#clone-the-repository)): `git clone git@github.com:Automattic/jetpack.git`
- HTTPS: `git clone https://github.com/Automattic/jetpack.git`
- `cd` into the cloned `jetpack` folder.
- run `tools/install-monorepo.sh` from the monorepo root.
Once the installation is complete, continue onto the section [Running Jetpack locally](#running-jetpack-locally).

- Clone the Jetpack Monorepo:
- Using a public SSH key ([recommended](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)): `git clone git@github.com:Automattic/jetpack.git`
- Or use HTTPS: `git clone https://github.com/Automattic/jetpack.git`
- Note that the monorepo should not be cloned into the WordPress plugins directory. If you plan on not using the provided Docker environment, read the [full Development Environment guide here](development-environment.md#clone-the-repository) to find out how to add symlinks.
- `cd` into the cloned `jetpack` folder.
- Run `tools/install-monorepo.sh` from the monorepo root.
- You can use the [environment checker script](#check-if-your-environment-is-ready-for-jetpack-development) to confirm that all required tools are installed.

Once the installation is complete, continue onto the section [Running Jetpack locally](#running-jetpack-locally).

### Installing manually

Expand All @@ -26,11 +30,11 @@ Prior to installation, we recommend using [`Homebrew`](https://brew.sh/) to mana
- nvm: `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash`

The Jetpack Monorepo requires various software to be installed on your machine.
- Start by cloning the GitHub repo using one of these two methods:
- A public SSH key ([recommended](https://github.com/Automattic/jetpack/blob/trunk/docs/development-environment.md#clone-the-repository)): `git clone git@github.com:Automattic/Jetpack.git`
- HTTPS: `git clone https://github.com/Automattic/jetpack.git`
- If you're not an Automattician, you can [fork the repo following the instructions here](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
- Note that the Monorepo should not be cloned into the WordPress plugins directory (you will see a warning on your plugins page in that case saying that the Jetpack Monorepo is not a plugin and shouldn't be installed as one). If you are not cloning into a Docker environment, read the [full Development Environment guide here](development-environment.md#clone-the-repository) to find out how to add symlinks.

- Clone the Jetpack Monorepo:
- Using a public SSH key ([recommended](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)): `git clone git@github.com:Automattic/jetpack.git`
- Or use HTTPS: `git clone https://github.com/Automattic/jetpack.git`
- Note that the monorepo should not be cloned into the WordPress plugins directory. If you plan on not using the provided Docker environment, read the [full Development Environment guide here](development-environment.md#clone-the-repository) to find out how to add symlinks.
- This software needs to be installed or updated system-wide:
- Bash (will need to be updated from default Mac version): `brew install bash`
- jq (JSON processor used in scripts): `brew install jq`
Expand All @@ -42,6 +46,20 @@ The Jetpack Monorepo requires various software to be installed on your machine.
- Jetpack CLI (an internal tool that assists with development): `pnpm install && pnpm jetpack cli link`
- [You can read more about using the CLI here](https://github.com/Automattic/jetpack/blob/trunk/tools/cli/README.md).

### Check if your environment is ready for Jetpack development

We provide a script to help you in assessing if everything's ready on your system to contribute to Jetpack.

```sh
tools/check-development-environment.sh
```

Running the script will tell you if you have your environment already set up and what you need to do in order to get it ready for Jetpack development:

- All green `YES` or `OK` messages mean you're ready to start
- Red `NO` messages mean something is wrong or missing, and a link will be provided to help you with a fix.
- Yellow messages indicate something optional is broken or missing.

## Running Jetpack locally

After everything is installed, you're ready to run Jetpack locally! While there are other supported methods of doing this, we recommend and support using Docker containers.
Expand All @@ -60,9 +78,11 @@ To setup Docker:

For more in depth Docker instructions, follow the [Docker environment for Jetpack Development guide](../tools/docker/README.md).

### Setting up Jurassic Tube
## Setting up Jurassic Tube

In order to test features that require a WordPress.com connection and other network related Jetpack features, you'll need a test site that can create local HTTP tunnels. If you're an Automattician, we recommend using Jurassic Tube:
In order to test features that require a WordPress.com connection and other network related Jetpack features, you'll need a test site that can create local HTTP tunnels. If you're an Automattician, we recommend using Jurassic Tube.

Note: This is for Automattician use only. For other methods, check out [ngrok](../tools/docker/README.md#using-ngrok-with-jetpack) or [another similar service](https://alternativeto.net/software/ngrok/).

**Warning: This creates a tunnel to your local machine which should not be trusted as secure. If it is compromised, so is your computer and everything it has access to. Only `jetpack docker jt-up` when needed for testing things that require the site to be publicly accessible, and `jetpack docker jt-down` when completed.**

Expand All @@ -77,27 +97,7 @@ In order to test features that require a WordPress.com connection and other netw
- Now, you can start your site with `jetpack docker jt-up`
- Your site should be available at `https://custom-subdomain.jurassic.tube`

Note: This is for Automattician use only. For other methods, check out [ngrok](https://github.com/Automattic/jetpack/blob/trunk/tools/docker/README.md#using-ngrok-with-jetpack) or [another similar service](https://alternativeto.net/software/ngrok/).

### Check if your environment is ready for Jetpack development

We provide a script to help you in assessing if everything's ready on your system to contribute to Jetpack.

```sh
tools/check-development-environment.sh
```

Running the script will tell you if you have your environment already set up and what you need to do in order to get it ready for Jetpack development:

- All green `YES` or `OK` messages mean you're ready to start
- Red `NO` messages mean something is wrong or missing, and a link will be provided to help you with a fix.
- Yellow messages indicate something optional is broken or missing.

#### Running Tests

To run PHP and JS tests, you can use the Jetpack CLI: `jetpack test` and then choose the project and type of test you'd like to run.

# Development Workflow
## Development Workflow

Once you have a local copy of Jetpack and all development tools installed, you can start developing.

Expand All @@ -110,6 +110,8 @@ By default the development build above will run once and if you change any of th
```sh
jetpack watch
```
### Running Tests

That's all!
To run PHP and JS tests, you can use the Jetpack CLI: `jetpack test` and then choose the project and type of test you'd like to run.

That's all!
Loading

0 comments on commit 2434b7a

Please sign in to comment.