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:
Lukasz Ostrowski 2023-02-10 15:24:44 +01:00 committed by GitHub
parent 66edf158bd
commit 4340b03bb1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 83 additions and 9 deletions

View file

@ -11,17 +11,19 @@
<div align="center">
<a href="https://saleor.io/">🏠 Website</a>
<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>
<a href="https://saleor.io/blog/">📰 Blog</a>
<span></span>
<a href="https://twitter.com/getsaleor">🐦 Twitter</a>
</div>
<br />
<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>
## 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)
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.
- [🆕 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.
- [✍️ GitHub issues](https://github.com/saleor/apps/discussions/categories/integrations-features) - to submit a proposal for creating a new integration or an app.
In the `apps` folder, you will find the following applications:
- [data-importer](./apps/data-importer) - import data from CSV to Saleor.
- [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
View 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.