Patrick 17c3f34e3d chore(turbo): flip turbo caching glob from allow-list to deny-list (#2772)
### What

Flip Turborepo cache glob pattern from an allow-list to deny-list pattern.

### Why

Packages within medusa's monorepo will output their build to a `dist` directory. 

This convention does not apply to plugins since the core plugin loader expects the content of plugin packages `src` directory to be outputted at the root of the package. 

i.e. `packages/foobar-plugin/src/utils/index.ts` -> `packages/foobar-plugin/utils/index.js`

Manually maintaining an allow-list of known plugin output directories is not scalable. When a directory exists in a plugin package but is not know to the allow-list, the directory will not be re-built on subsequent builds. Troubleshooting the issue requires intimate knowledge of Turborepo caching strategies.

### How

By using a deny-list glob pattern, plugin packages can now declare any not-known directory within their `src` folder without facing any potential omission issues during the build process.

We declare `src` and its content as the only directory for turbo cache to ignore.

### Additional scope

* Use `turbo.json` file content in cache hashing algorithm in order to break CI cache when changes are made to the Turborepo config.
* Upgraded turbo minor verion.
* Added missing dependency to medusa package.

### Test
* Delete previously built output in packages. Run `yarn build --force` (replace any existing cache)
  * Expect all src content to be outputted
* Run `yarn build` right after
  * Expect a fast build time since cache will be fresh
* Add a new directory with an index.ts file in a plugin package src folder. Run `yarn build` 
  * Expect a fast build time, except for the modified plugin package.
  * Expect the newly added directory to be outputted.
* Delete the newly outputted directory. Run `yarn build`
  * Expect the outputted directory to reappear. 

### References
* 5093b82f3a/packages/medusa/src/loaders/plugins.ts
* https://turbo.build/repo/docs/reference/configuration#outputs
* https://turbo.build/repo/docs/reference/configuration#globaldependencies

Resolves CORE-891
2022-12-13 17:59:48 +00:00
2021-10-12 22:10:36 +02:00
2022-07-11 08:47:48 +00:00
2022-12-12 19:26:00 +01:00
2021-06-15 15:45:59 +02:00
2022-08-29 13:26:58 +00:00
2021-12-07 11:02:35 +01:00
2022-07-12 20:14:34 +02:00
2020-09-09 09:24:51 +02:00
2022-02-15 13:44:23 +01:00
2021-07-04 20:08:55 +01:00
2022-11-10 17:52:03 +02:00
2022-01-06 13:05:04 +01:00

Medusa

Medusa

Documentation | Medusa Admin Demo | Website

An open source composable commerce engine built for developers.

Medusa is released under the MIT license. Current CircleCI build status. PRs welcome! Product Hunt Discord Chat Follow @medusajs

Getting Started

Follow our quickstart guide to learn how to set up a Medusa server.

Requirements

You can check out this documentation for details about setting up your environment.

What is Medusa

Medusa is an open source composable commerce engine built with Node.js. Medusa enables developers to build scalable and sophisticated commerce setups with low effort and great developer experience.

You can learn more about Medusas architecture in our documentation.

Features

You can learn about all of the ecommerce features that Medusa provides in our documentation.

Roadmap

Write-ups for all features will be made available in Github discussions before starting the implementation process.

2022

  • Admin revamp
  • Tax API
  • Tax Calculation Strategy
  • Cart Calculation Strategy
  • Customer Groups API
  • Promotions API
  • Price Lists API
  • Price Selection Strategy
  • Import / Export API
  • Sales Channel API
  • Extended Order API (managing placed orders)
  • PaymentCollection API (collecting payments separate from carts and draft orders)
  • Multi-warehouse API
  • Extended Product API (custom fields, publishing control, and more)

Plugins

Check out our available plugins that you can install and use instantly on your Medusa server.

Contributions

Please check our contribution guide for details about how to contribute to both our codebase and our documentation.

Upgrade Guides

Follow our upgrade guides on the documentation to keep your Medusa project up-to-date.

Community & Support

Use these channels to be part of the community, ask for help while using Medusa, or just learn more about Medusa:

  • Discord: This is the main channel to join the community. You can ask for help, showcase your work with Medusa, and stay up to date with everything Medusa.
  • GitHub Issues: for sending in any issues you face or bugs you find while using Medusa.
  • GitHub Discussions: for joining discussions and submitting your ideas.
  • Medusa Blog: find diverse tutorials and company news.
  • Twitter
  • LinkedIn

License

Licensed under the MIT License

Description
No description provided
Readme 539 MiB
Languages
TypeScript 84.9%
JavaScript 14.8%
Shell 0.2%