Merge pull request #9102 from supabase/docs/readme-for-turborepo

docs: turborepo based readmes
This commit is contained in:
Jonathan Summers-Muir authored and GitHub committed 2022-11-10 11:25:18 +08:00
commit b76bf09df1
2 files changed
+160 -153

No files matched your search

+55 -153
View File
@@ -1,45 +1,47 @@
# Developing Supabase
1. [Development setup](#development-setup)
- [Install dependencies](#install-dependencies)
- [Fork the repository](#fork-the-repository)
1. [Build Supabase](#build-supabase)
- [Choose a directory](#choose-a-directory)
1. [Start a development server](#start-a-development-server)
- [Supabase Website](#supabase-website)
- [Supabase Docs](#supabase-docs)
- [Supabase Studio](#supabase-studio)
1. [Create a pull request](#create-a-pull-request)
1. [Getting started](#getting-started)
- [Install dependencies](#install-dependencies)
2. [Local development](#local-development)
- [Fork the repository](#fork-the-repository)
- [Clone the repo](#clone-the-repo)
- [Running turborepo](#running-turborepo)
- [Shared components](#shared-components)
- [Installing packages](#installing-packages)
3. [Create a pull request](#create-a-pull-request)
- [Common tasks](#common-tasks)
- [Add a redirect](#add-a-redirect)
- [Monorepo](#monorepo)
- [Getting started](#getting-started)
- [Shared components](#shared-components)
- [Installing packages](#installing-packages)
- [Development](#development)
- [Community channels](#community-channels)
## Development setup
## Getting started
Thanks for your interest in Supabase and for wanting to contribute! Before you begin, read the
Thanks for your interest in [Supabase](https://supabase.com) and for wanting to contribute! Before you begin, read the
[code of conduct](https://github.com/supabase/.github/blob/main/CODE_OF_CONDUCT.md) and check out the
[existing issues](https://github.com/supabase/supabase/issues).
This document describes how to set up your development environment to build and test Supabase.
This document describes how to set up your development environment to build and test [Supabase](https://supabase.com).
### Install dependencies
You need to install and configure the following dependencies on your machine to build Supabase:
You need to install and configure the following dependencies on your machine to build [Supabase](https://supabase.com):
- [Git](http://git-scm.com/)
- [Node.js v16.x (LTS)](http://nodejs.org)
- [npm](https://www.npmjs.com/) version 7+ or [Yarn](https://yarnpkg.com/)
## Local development
We are in the process of migrating this repository to monorepo, using [Turborepo](https://turborepo.org/docs).
Eventually, all the apps will be run using [Turborepo](https://turborepo.org/docs), which will significantly improve the developer workflow.
If you are working on the ([docs site](https://supabase.com/docs)), please refer to this [developers guide](https://github.com/supabase/supabase/tree/master/apps/reference/DEVELOPERS.md).
### Fork the repository
To contribute code to Supabase, you must fork the [Supabase Repository](https://github.com/supabase/supabase).
To contribute code to [Supabase](https://supabase.com), you must fork the [Supabase Repository](https://github.com/supabase/supabase).
## Build Supabase
### Clone the repo
1. Clone your GitHub forked repository:
@@ -52,104 +54,61 @@ To contribute code to Supabase, you must fork the [Supabase Repository](https://
cd supabase
```
### Choose a directory
### Running turborepo
Choose if you want to work on the [Supabase Website](https://supabase.com), [Supabase Docs](https://supabase.com/docs), or [Supabase Studio](https://app.supabase.com).
[Supabase](https://supabase.com) uses [Turborepo](https://turborepo.org/docs) to manage and run this monorepo.
1. Go to the [Supabase Website](https://supabase.com) directory
1. Install the dependences in the root of the repo.
```sh
cd apps/www
npm install # install dependencies
```
Go to the [Supabase Docs](https://supabase.com/docs) directory
2. You can then run the apps simultaneously with the following.
```sh
cd apps/docs
npm run dev # start all the applications
```
Go to the [Supabase Studio](https://app.supabase.com) directory
Then visit, and edit, any of the following sites:
```sh
cd studio
```
| Site | Directory | Scope name | Description | Local development server |
| -------------------------------------------- | -------------- | ---------- | ------------------------------------ | ------------------------ |
| [supabase.com](https://supabase.com) | `/apps/www` | www | The main website | http://localhost:3000 |
| [app.supabase.com](https://app.supabase.com) | `/studio` | studio | Studio dashboard | http://localhost:8082 |
| [supabase.com/docs] Next.js based Docs site | `/apps/docs` . | docs | Guides and Reference (Next.js based) | http://localhost:3001 |
1. Install npm/yarn dependencies:
#### Running sites individually
npm
You can run any of the sites indiviudally by using the scope name. For example:
```sh
npm install
```
```sh
npm run dev:www
```
or with yarn
#### Shared components
```sh
yarn install
```
The monorepo has a set of shared components under `/packages`:
## Start a development server
- `/packages/common`: Common React code, shared between all sites.
- `/packages/config`: All shared config
- `/packages/spec`: Generates documentation using spec files.
- `/packages/tsconfig`: Shared Typescript settings
To debug code and to see your changes in real time, it is often useful to have a local HTTP server. Click one of the three links below to choose which development server you want to start.
#### Installing packages
- [Supabase Website](#supabase-website)
- [Supabase Docs](#supabase-docs)
- [Supabase Studio](#supabase-studio)
Installing a package with NPM workspaces requires you to add the `-w` flag to tell NPM which workspace you want to install into. Do not install dependencies in their local folder, install them from the route using the `-w` flag.
### Supabase Website
The format is: `npm install <package name> -w=<workspace to install in>`.
The website is moving to a new monorepo setup. See the [Monorepo](#monorepo) section below.
For example:
### Supabase Docs
- `npm install react -w common`: installs into `./packages/common`
- `npm install react -w www`: installs into `./apps/www`
- `npm install react -w studio`: installs into `./studio`
1. Build development server
You do not need to install `devDependencies` in each workspace. These can all be installed in the root package.
npm
```sh
npm run build
```
or with yarn
```sh
yarn build
```
1. Start development server
npm
```sh
npm run dev
```
or with yarn
```sh
yarn dev
```
1. Access the local server in your web browser at http://localhost:3001/docs.
### Supabase Studio
1. Start development server
npm
```sh
npm run dev
```
or with yarn
```sh
yarn dev
```
1. Access the local server in your web browser at http://localhost:8082/.
See the [Supabase Studio readme](./studio/README.md) for more information.
---
## Create a pull request
@@ -165,63 +124,6 @@ Did you have an issue, like a merge conflict, or don't know how to open a pull r
Create a new entry in the [`redirects.js`](https://github.com/supabase/supabase/blob/master/apps/www/lib/redirects.js) file in our main site.
## Monorepo
We are in the process of migrating this repository to monorepo, using Turborepo.
Eventually, the docs and the Studio will be run using Turborepo, which will significantly improve the developer workflow.
You must be using NPM 7 or higher.
### Getting started
```sh
npm install # install dependencies
npm run dev # start all the applications
```
Then edit and visit any of the following sites:
Site | Directory | Description | Local development server
---- | --------- | ----------- | ------------------------
[supabase.com](https://supabase.com) | `/apps/www` | The main website | http://localhost:3000
[supabase.com/docs](https://supabase.com/docs) | `apps/docs` | Guides and Reference documentation | http://localhost:3001/docs
[POC] Community forum | `/apps/temp-community-forum` | GitHub Discussions in a Next.js site | http://localhost:3002
[POC] DEV articles site | `/apps/temp-community-tutorials` | A Next.js site for our DEV articles (which community members can write) | http://localhost:3003
### Shared components
The monorepo has a set of shared components under `/packages`:
- `/packages/common`: Common React code, shared between all sites.
- `/packages/config`: All shared config
- `/packages/spec`: Generates documentation using spec files.
- `/packages/tsconfig`: Shared Typescript settings
- `/packages/ui`: Shared UI components (formerly @supabase/ui)
To use these 'packages', or any of their components from a Next.JS app, you must use `next-transpile-modules` in the `next.config.js` file. This looks like:
```tsx
// next.config.js
const withTM = require('next-transpile-modules')(['ui', 'common'])
module.exports = withTM({})
```
### Installing packages
Installing a package with NPM workspaces requires you to add the `-w` flag to tell NPM which workspace you want to install into.
The format is: `npm install <package name> -w=<workspace to install in>`.
For example:
- `npm install @supabase/ui -w common`: installs into `./packages/common`
- `npm install @supabase/ui -w www`: installs into `./apps/www`
You do not need to install `devDependencies` in each workspace. These can all be installed in the root package.
### Development
`npm run dev`
---
## Community channels
+105
View File
@@ -0,0 +1,105 @@
# Developing Supabase Docs
1. [Development setup](#development-setup)
- [Install dependencies](#install-dependencies)
- [Fork the repository](#fork-the-repository)
2. [Build Supabase](#build-supabase)
- [Run the docs locally](#run-the-docs-locally)
- [Editing files](#editing-files)
3. [Create a pull request](#create-a-pull-request)
- [Monorepo](#monorepo)
- [Community channels](#community-channels)
## Development setup
Thanks for your interest in Supabase and for wanting to contribute! Before you begin, read the
[code of conduct](https://github.com/supabase/.github/blob/main/CODE_OF_CONDUCT.md) and check out the
[existing issues](https://github.com/supabase/supabase/issues).
This document describes how to set up your development environment to build and test Supabase.
### Install dependencies
You need to install and configure the following dependencies on your machine to build Supabase:
- [Git](http://git-scm.com/)
- [Node.js v16.x (LTS)](http://nodejs.org)
- [npm](https://www.npmjs.com/) version 7+ or [Yarn](https://yarnpkg.com/)
### Fork the repository
To contribute code to Supabase, you must fork the [Supabase Repository](https://github.com/supabase/supabase).
## Build Supabase
1. Clone your GitHub forked repository:
```sh
git clone https://github.com/<github_username>/supabase.git
```
1. Go to the Supabase directory:
```sh
cd supabase
```
### Run the docs locally
1. Build the development server
npm
```sh
npm run build
```
or with yarn
```sh
yarn build
```
1. Start the development server
npm
```sh
npm run start
```
or with yarn
```sh
yarn start
```
1. Access the local server in your web browser at http://localhost:3010/docs.
---
### Editing files
Our docs site are comprised of guides, tutorials, quickstarts, and reference docs. Note that the [reference docs](https://supabase.com/docs/reference) are generated from spec files.
If you go to any page in the [Supabase docs](https://supabase.com/docs), you'll see an **Edit this page** link at the bottom. This link indicates which file you need to edit.
For example, the [NextJS Quickstart](https://supabase.com/docs/guides/with-nextjs) is a markdown file you can edit directly. However, this [signUp() reference doc](https://supabase.com/docs/reference/javascript/auth-signup) is generated from a [spec file](https://github.com/supabase/supabase/edit/master/spec/supabase_js_v1_legacy.yml).
## Create a pull request
After making your changes, open a pull request (PR). Once you submit your pull request, others from the Supabase team/community will review it with you.
Did you have an issue, like a merge conflict, or don't know how to open a pull request? Check out [GitHub's pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests) tutorial on how to resolve merge conflicts and other issues. Once your PR has been merged, you will be proudly listed as a contributor in the [contributor chart](https://github.com/supabase/supabase/graphs/contributors).
---
## Monorepo
We are in the process of migrating this repository to monorepo, using Turborepo.
This app is currently not in that workflow, but if you want to contribute to any of the other apps, please refer to [the developers readme](https://github.com/supabase/supabase/blob/master/DEVELOPERS.md).
---
## Community channels
Stuck somewhere? Have any questions? Join the [Discord Community Server](https://discord.supabase.com/) or the [Github Discussions](https://github.com/supabase/supabase/discussions). We are here to help!