woocommerce/plugins/woocommerce-admin
Jeff Stieler 8e61f55017 Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286)
* Use yarn instead of npm.

In prep for workspaces, since we're locked to npm < 7. See: https://github.com/woocommerce/woocommerce-admin/pull/7126#issue-661287749

* Initial workspace creation.

* Add initial tsc build to @woocommerce/number.

* Attempt to build experimental package.

* Try currency package.

* Define all packages as workspaces.

* Use tsconfig common to packages.

* Fix currency package build.

* Build csv-export with tsc.

* Try to build customer-effort-score with tsc.

* Fix JSX pragma.

* Build data package with tsc.

* Build date package with tsc.

* Build experimental package with tsc.

* Try to build explat package with tsc.

* Build navigation package with tsc.

* Build notices package with tsc.

* Build onboarding package with tsc.

* Build components package with tsc.

* Swap in package JS build into main script.

* Fix experimental package build.

* Try per-package css build with components.

* Try to run components package tests in isolation.

Broken on JSX in test files not being transformed.

* Move @woocommerce/wc-admin-settings into a package.

* Try to fix components package tests.

Fails because we aren't setting up the jest/jest-dom globals.

* Move JS test code to reusable (private) package.

* Enable incremental TS builds.

* Use workspaces to run JS tests.

* Use new jest configs for update snapshot scripts.

* Fix style builds.

* Fix package version in components.

* Fix client test debug and watch scripts.

* Update yarn lock.

* Update test-staged behavior.

* Try to fix storybook.

* Fix storybook.

* Update more npm commands to yarn.

* Add changelog.

* Fix lint errors.

* Update packages readme script references.

* Clean up unused gitignore match.

* Fix another npm command.

* Fix JS builds on watch.

* Fix start script.

* Fix start scripts for packages.

* Use tsc to build packages before tests

* yarn -> npm.

# Conflicts:
#	package-lock.json
#	package.json

* Fix linter error.

* Remove workspace definitions.

* Fix missing Fragment import.

* Fix package lock.

* Fix missing reference.

* Only build commonjs module for js-tests helper.

* Remove errant dependency from components.

* Remove noop scripts.

* Fix package JS build before testing.

* Revert noisy formatting changes.

* Fix precommit and test scripts.

* Fix minimum expected recommended extension count.

Japan test case breaks this.

* Revert babel config changes.

* chore(release): publish

 - @woocommerce/components@7.2.0
 - @woocommerce/csv-export@1.4.0
 - @woocommerce/currency@3.2.0
 - @woocommerce/customer-effort-score@1.1.0
 - @woocommerce/data@1.4.0
 - @woocommerce/date@3.1.0
 - @woocommerce/dependency-extraction-webpack-plugin@1.7.0
 - @woocommerce/eslint-plugin@1.3.0
 - @woocommerce/experimental@1.5.0
 - @woocommerce/explat@1.1.0
 - @woocommerce/js-tests@1.1.0
 - @woocommerce/navigation@6.1.0
 - @woocommerce/notices@3.1.0
 - @woocommerce/number@2.2.0
 - @woocommerce/onboarding@1.1.0
 - @woocommerce/tracks@1.1.0
 - @woocommerce/wc-admin-settings@1.1.0

* Add script for running 'start' in a package.

* Remove yarn from gitignore.

* Update package changelogs, prep versions for release.

* Try to fix E2E tests after main merge.

* Some cleanup.

* Add changelog.

Co-authored-by: Paul Sealock <psealock@gmail.com>
2021-07-14 16:38:57 -04:00
..
.github use Jetpack Changelogger for changelog management (https://github.com/woocommerce/woocommerce-admin/pull/6870) 2021-07-08 19:03:51 -07:00
bin Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
changelogs Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
client Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
config Remove unused WC Pay feature flags (https://github.com/woocommerce/woocommerce-admin/pull/7273) 2021-07-06 10:15:18 +12:00
docker Update docker test suite readme (https://github.com/woocommerce/woocommerce-admin/pull/6783) 2021-04-12 17:04:06 -03:00
docs Add a delete option to completed tasks (https://github.com/woocommerce/woocommerce-admin/pull/7300) 2021-07-06 15:35:40 -03:00
images Add PayU to default payment gateway suggestions (https://github.com/woocommerce/woocommerce-admin/pull/7279) 2021-07-05 17:40:48 -04:00
includes Fix use of feature checks and remove deprecated method calls (https://github.com/woocommerce/woocommerce-admin/pull/6687) 2021-03-26 13:00:05 -04:00
languages Master -> main. (https://github.com/woocommerce/woocommerce-admin/pull/4618) 2020-06-17 13:39:41 -04:00
packages Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
src Remote Inbox: Add feature to list of optional feature flags (https://github.com/woocommerce/woocommerce-admin/pull/7298) 2021-07-14 11:07:48 +12:00
storybook Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
tests Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
typings Fix some minor inbox panel issues, left over from re-factor (https://github.com/woocommerce/woocommerce-admin/pull/7125) 2021-06-09 16:38:22 -03:00
.browserslistrc Add CSS autoprefixer (https://github.com/woocommerce/woocommerce-admin/pull/244) 2018-07-30 10:05:22 -04:00
.distignore Create E2E package (https://github.com/woocommerce/woocommerce-admin/pull/7084) 2021-07-13 16:38:05 -03:00
.editorconfig Remove Trailing Whitespace in `readme.txt` (https://github.com/woocommerce/woocommerce-admin/pull/6940) 2021-05-11 13:41:45 +08:00
.eslintignore Add initial end to end test suite (https://github.com/woocommerce/woocommerce-admin/pull/5028) 2020-09-04 14:31:09 +12:00
.eslintrc.js Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
.gitattributes Update Paths to Exclude from Composer (https://github.com/woocommerce/woocommerce-admin/pull/6642) 2021-04-09 07:50:59 +08:00
.gitignore Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
.nvmrc Add nvmrc for newest lts release (https://github.com/woocommerce/woocommerce-admin/pull/1108) 2018-12-18 16:06:27 -06:00
.prettierrc.js Update @wordpress/eslint-plugin dependency to latest version. (https://github.com/woocommerce/woocommerce-admin/pull/5856) 2021-01-26 13:24:28 +13:00
.stylelintignore CSS Linting: Exclude Storybook CSS (https://github.com/woocommerce/woocommerce-admin/pull/6785) 2021-04-13 10:03:44 +12:00
.stylelintrc.json Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674) 2020-02-14 15:23:21 +13:00
.wp-env.json Add docker setup using WP-ENV (https://github.com/woocommerce/woocommerce-admin/pull/6448) 2021-03-02 13:13:21 -08:00
CONTRIBUTING.md Add some guidelines on changelog and testing instructions. (https://github.com/woocommerce/woocommerce-admin/pull/6653) 2021-03-25 11:28:13 +13:00
Gruntfile.js Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674) 2020-02-14 15:23:21 +13:00
LICENSE.md update to consistent license 2019-05-16 13:14:03 -03:00
README.md Publish storybook docs, remove react docgen based docs (https://github.com/woocommerce/woocommerce-admin/pull/7055) 2021-06-02 15:54:00 +12:00
SECURITY.md Add a security doc based on other woocommerce repos (https://github.com/woocommerce/woocommerce-admin/pull/6931) 2021-05-06 09:20:41 +12:00
TESTING-INSTRUCTIONS.md Fix undefined method error when setting up WC Tax (https://github.com/woocommerce/woocommerce-admin/pull/7344) 2021-07-14 12:50:30 -07:00
babel.config.js Add Typescript and page objects to E2E suite (https://github.com/woocommerce/woocommerce-admin/pull/6582) 2021-03-17 16:22:09 -03:00
changelog.txt Remove unreleased section (https://github.com/woocommerce/woocommerce-admin/pull/7317) 2021-07-08 19:32:20 -07:00
chunk-src-version-param.js Remove dynamic content hash from chunk names. (https://github.com/woocommerce/woocommerce-admin/pull/5229) 2020-10-06 08:58:15 -04:00
composer.json use Jetpack Changelogger for changelog management (https://github.com/woocommerce/woocommerce-admin/pull/6870) 2021-07-08 19:03:51 -07:00
composer.lock use Jetpack Changelogger for changelog management (https://github.com/woocommerce/woocommerce-admin/pull/6870) 2021-07-08 19:03:51 -07:00
docker-compose.yaml Add initial end to end test suite (https://github.com/woocommerce/woocommerce-admin/pull/5028) 2020-09-04 14:31:09 +12:00
lerna.json Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674) 2020-02-14 15:23:21 +13:00
license.txt include license.txt and update component package.json files 2019-05-18 01:19:20 -03:00
lint-staged.config.js Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
package-lock.json Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
package.json Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
phpcs.xml.dist Bump PHP test version to 7.0 in PHPCS config (https://github.com/woocommerce/woocommerce-admin/pull/6706) 2021-03-31 07:42:56 +08:00
phpunit.xml.dist Update PHPUnit to version 7 (https://github.com/woocommerce/woocommerce-admin/pull/3571) 2020-01-16 10:03:44 -04:00
readme.txt Remove facebook extension from onboarding extensions fallback list (https://github.com/woocommerce/woocommerce-admin/pull/7287) 2021-07-13 11:15:51 +08:00
renovate.json Adjust renovate to automerge devDependencies. (https://github.com/woocommerce/woocommerce-admin/pull/4979) 2020-08-14 13:11:09 +12:00
tsconfig.json Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
uninstall.php Fix usage of "package" tag in file headers (https://github.com/woocommerce/woocommerce-admin/pull/4940) 2020-08-11 16:18:47 -03:00
unminify.js Use Route based code splitting to optimize bundle size (https://github.com/woocommerce/woocommerce-admin/pull/4094) 2020-04-29 12:01:27 -06:00
webpack.config.js Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
woocommerce-admin.php Update version to 2.5.0-dev and sync changelog and testing instructions (https://github.com/woocommerce/woocommerce-admin/pull/7156) 2021-06-11 11:38:19 +08:00

README.md

WooCommerce Admin

This is a feature plugin for a modern, javascript-driven WooCommerce Admin experience.

Prerequisites

WordPress 5.4 or greater and WooCommerce 4.8.0 or greater should be installed prior to activating the WooCommerce Admin feature plugin.

For better debugging, it's also recommended you add define( 'SCRIPT_DEBUG', true ); to your wp-config. This will load the unminified version of all libraries, and specifically the development build of React.

Development

After cloning the repo, install dependencies:

  • npm install to install JavaScript dependencies.
  • composer install to gather PHP dependencies.

Now you can build the files using one of these commands:

  • npm run build : Build a production version
  • npm run dev : Build a development version
  • npm start : Build a development version, watch files for changes
  • npm run build:release : Build a WordPress plugin ZIP file (woocommerce-admin.zip will be created in the repository root)
  • DRY_RUN=1 npm run build:release : Builds a Wordpress plugin ZIP without pushing it to Github and creating a release.

For more helper scripts see here

For some debugging tools/help see here

For local development setup using Docker see here

Testing

End-to-end tests

Tests live in ./tests/e2e. An existing build is required prior running, please refer to the section above for steps. E2E tests use the @woocommerce/e2e-environment package which hosts a Docker container for testing, by default the container can be accessed at http://localhost:8084

All the commands from @woocommerce/e2e-environment can be run through npx.

# Set up the e2e environment
npm i
npx wc-e2e docker:up

Run tests using:

npx wc-e2e test:e2e-dev

or in headless mode:

npx wc-e2e test:e2e

Run a single test by adding the path to the file name:

npx wc-e2e test:e2e-dev tests/e2e/specs/activate-and-setup/complete-onboarding-wizard.test.ts

Documentation

There is documentation in 2 forms available in the repo. A static set of documentation supported by docsify and also a Storybook containing component documentation for @woocommerce/components.

To view the docsify docs locally you can do:

npm install
cd docs
npx docsify serve

When deployed the docsify docs also host an embedded version of the storybook docs. To generate that and test it locally in docsify you'll need to run:

npm install
npm run docs
cd docs
npx docsify serve

Then navigate to Components from the left hand menu in the docs.

If you would like to view the storybook docs hosted standalone, then you can run:

npm install
npm run storybook

Common Issues

If you're encountering any issue setting things up, chances are we have been there too. Please have a look at our wiki for a list of common problems.

Privacy

If you have enabled WooCommerce usage tracking ( option woocommerce_allow_tracking ) then, in addition to the tracking described in https://woocommerce.com/usage-tracking/, this plugin also sends information about the actions that site administrators perform to Automattic - see https://automattic.com/privacy/#information-we-collect-automatically for more information.

Contributing

There are many ways to contribute reporting bugs, adding translations, feature suggestions and fixing bugs. For full details, please see CONTRIBUTING.md