Add forking & development readme (#133)
* Add forking readme * Add development guidlenies * Apply grammarly * Update README.md * Create forking.md * Update README.md --------- Co-authored-by: Adrian Pilarczyk <admin@peelar.dev>
This commit is contained in:
parent
66edf158bd
commit
4340b03bb1
2 changed files with 83 additions and 9 deletions
62
README.md
62
README.md
|
@ -11,17 +11,19 @@
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://saleor.io/">🏠 Website</a>
|
<a href="https://saleor.io/">🏠 Website</a>
|
||||||
<span> • </span>
|
<span> • </span>
|
||||||
<a href="https://docs.saleor.io/docs/3.x/developer/extending/apps/key-concepts">📚 Docs</a>
|
<a href="https://docs.saleor.io/docs/3.x">📚 Docs</a>
|
||||||
<span> • </span>
|
<span> • </span>
|
||||||
<a href="https://saleor.io/blog/">📰 Blog</a>
|
<a href="https://saleor.io/blog/">📰 Blog</a>
|
||||||
<span> • </span>
|
<span> • </span>
|
||||||
<a href="https://twitter.com/getsaleor">🐦 Twitter</a>
|
<a href="https://twitter.com/getsaleor">🐦 Twitter</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://docs.saleor.io/docs/3.x/developer/extending/apps/quickstart/getting-started">Build an app ▶️</a>
|
<a href="https://docs.saleor.io/docs/3.x/developer/extending/apps/quickstart/getting-started">🆕 Apps Quickstart</a>
|
||||||
|
<span> • </span>
|
||||||
|
<a href="https://github.com/orgs/saleor/projects/22/views/1">🗓️ Roadmap</a>
|
||||||
|
<span> • </span>
|
||||||
|
<a href="https://github.com/saleor/apps/discussions/categories/integrations-features">✍️ Propose an app</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
@ -32,9 +34,51 @@ This repository serves as a starting point in the exploration of Saleor apps.
|
||||||
>
|
>
|
||||||
> [docs.saleor.io](https://docs.saleor.io/docs/3.x/developer/extending/apps/key-concepts)
|
> [docs.saleor.io](https://docs.saleor.io/docs/3.x/developer/extending/apps/key-concepts)
|
||||||
|
|
||||||
From here, you can visit:
|
### Apps list
|
||||||
|
|
||||||
- [🔍 Apps documentation](https://docs.saleor.io/docs/3.x/developer/extending/apps/key-concepts) - to learn more about how you can use apps to extend the capabilities of Saleor.
|
In the `apps` folder, you will find the following applications:
|
||||||
- [🆕 Quickstart Tutorial](https://docs.saleor.io/docs/3.x/developer/extending/apps/quickstart/getting-started) - to build your first app using [Saleor CLI](https://docs.saleor.io/docs/3.x/cli).
|
|
||||||
- [🗓️ Roadmap](https://github.com/orgs/saleor/projects/22/views/1) - to see the current progress on the development of official Saleor apps.
|
- [data-importer](./apps/data-importer) - import data from CSV to Saleor.
|
||||||
- [✍️ GitHub issues](https://github.com/saleor/apps/discussions/categories/integrations-features) - to submit a proposal for creating a new integration or an app.
|
- [invoices](./apps/invoices) - generate invoice PDF for each order.
|
||||||
|
- [klaviyo](./apps/klaviyo) - send Saleor events to Klaviyo, where you can notify the customers.
|
||||||
|
- [search](./apps/search) - connect Saleor with search engines.
|
||||||
|
- [slack](./apps/slack) - get notifications on Slack channel from Saleor events.
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
|
||||||
|
Make sure you have installed `pnpm`:
|
||||||
|
```bash
|
||||||
|
npm install -g pnpm
|
||||||
|
```
|
||||||
|
|
||||||
|
Install all dependencies:
|
||||||
|
```bash
|
||||||
|
pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
Start the apps` dev servers:
|
||||||
|
```bash
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
|
> The apps' ports will be displayed in the terminal output.
|
||||||
|
>
|
||||||
|
> You can find the required env vars for each app in `apps/NAME/.env.example` file.
|
||||||
|
|
||||||
|
To start an individual app, run:
|
||||||
|
```bash
|
||||||
|
pnpm dev --filter=saleor-app-X
|
||||||
|
```
|
||||||
|
|
||||||
|
where X is the app's name (matching saleor/X).
|
||||||
|
|
||||||
|
### Build
|
||||||
|
To build all apps, run:
|
||||||
|
```bash
|
||||||
|
pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- [Forking](/docs/forking.md)
|
||||||
|
|
30
docs/forking.md
Normal file
30
docs/forking.md
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# Forking
|
||||||
|
|
||||||
|
Saleor apps come out of the box in Saleor Cloud plans, but all apps are open source and can be used
|
||||||
|
under the [BSD-3 license](../LICENSE).
|
||||||
|
|
||||||
|
When forking, you are most likely interested in an individual app. This monorepo, however, contains all of the Saleor apps.
|
||||||
|
|
||||||
|
Luckily, you can still fork and be able to track and merge the original source code with two strategies:
|
||||||
|
|
||||||
|
## 1. Delete unused apps
|
||||||
|
|
||||||
|
The repository contains apps and packages which are imported by apps. Apps never import other apps,
|
||||||
|
so you can safely delete them.
|
||||||
|
|
||||||
|
When you remove all the apps except the one you need, Turborepo will continue to work the same way.
|
||||||
|
|
||||||
|
Additionally, you can run scripts per individual apps with `turbo run SCRIPT --filter=saleor-app-NAME`.
|
||||||
|
|
||||||
|
We recommend not removing anything else to avoid unnecessary conflicts.
|
||||||
|
|
||||||
|
If you want to update the repository, you can still merge or rebase it with the original source code.
|
||||||
|
You may face conflicts for apps you don't have anymore, but you can safely delete them again during conflict resolution.
|
||||||
|
|
||||||
|
## 2. Keep everything
|
||||||
|
|
||||||
|
To avoid conflicts to a minimum, you can leave other apps and just ignore them. These tips can help you with a single app experience:
|
||||||
|
- Mark other app folders as "excluded" in your IDE to avoid indexing these files.
|
||||||
|
- Run your scripts with Turborepo filters, e.g. `turbo run SCRIPT --filter=saleor-app-NAME`.
|
||||||
|
- Use `pnpm` to avoid duplicated packages. `pnpm` installs packages once and links them, which causes minimal performance overhead of node_modules.
|
||||||
|
|
Loading…
Reference in a new issue