forked from fastapi/full-stack-fastapi-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
🔧 Simplify scripts and development (fastapi#155)
* 🔧 Update scripts and configs * 🔧 Add shebang to script * 🔥 Remove test and dev configs, pass inline * ✨ Add local development dev-link set up * 📝 Update generated docs with refactor * 📝 Add Contributing guide
- Loading branch information
Showing
13 changed files
with
261 additions
and
152 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,4 @@ | |
testing-project | ||
.mypy_cache | ||
poetry.lock | ||
dev-link/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,4 +9,4 @@ services: | |
- docker | ||
|
||
script: | ||
- bash ./test.sh | ||
- bash ./scripts/test.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# Contributing | ||
|
||
Here are some short guidelines to guide you if you want to contribute to the development of the Full Stack FastAPI PostgreSQL project generator itself. | ||
|
||
After you clone the project, there are several scripts that can help during development. | ||
|
||
* `./scripts/dev-fsfp.sh`: | ||
|
||
Generate a new default project `dev-fsfp`. | ||
|
||
Call it from one level above the project directory. So, if the project is at `~/code/full-stack-fastapi-postgresql/`, call it from `~/code/`, like: | ||
|
||
```console | ||
$ cd ~/code/ | ||
|
||
$ bash ./full-stack-fastapi-postgresql/scripts/dev-fsfp.sh | ||
``` | ||
|
||
It will generate a new project with all the defaults at `~/code/dev-fsfp/`. | ||
|
||
You can go to that directory with a full new project, edit files and test things, for example: | ||
|
||
```console | ||
$ cd ./dev-fsfp/ | ||
|
||
$ docker-compose up -d | ||
``` | ||
|
||
It is outside of the project generator directory to let you add Git to it and compare versions and changes. | ||
|
||
* `./scripts/dev-fsfp-back.sh`: | ||
|
||
Move the changes from a project `dev-fsfp` back to the project generator. | ||
|
||
You would call it after calling `./scripts/dev-fsfp.sh` and adding some modifications to `dev-fsfp`. | ||
|
||
Call it from one level above the project directory. So, if the project is at `~/code/full-stack-fastapi-postgresql/`, call it from `~/code/`, like: | ||
|
||
```console | ||
$ cd ~/code/ | ||
|
||
$ bash ./full-stack-fastapi-postgresql/scripts/dev-fsfp-back.sh | ||
``` | ||
|
||
That will also contain all the generated files with the generated variables, but it will let you compare the changes in `dev-fsfp` and the source in the project generator with git, and see what to commit. | ||
|
||
* `./scripts/discard-dev-files.sh`: | ||
|
||
After using `./scripts/dev-fsfp-back.sh`, there will be a bunch of generated files with the variables for the generated project that you don't want to commit, like `README.md` and `.gitlab-ci.yml`. | ||
|
||
To discard all those changes at once, run `discard-dev-files.sh` from the root of the project, e.g.: | ||
|
||
```console | ||
$ cd ~/code/full-stack-fastapi-postgresql/ | ||
|
||
$ bash ./scripts/dev-fsfp-back.sh | ||
``` | ||
|
||
* `./scripts/test.sh`: | ||
|
||
Run the tests. It creates a project `testing-project` *inside* of the project generator and runs its tests. | ||
|
||
Call it from the root of the project, e.g.: | ||
|
||
```console | ||
$ cd ~/code/full-stack-fastapi-postgresql/ | ||
|
||
$ bash ./scripts/test.sh | ||
``` | ||
|
||
* `./scripts/dev-link.sh`: | ||
|
||
Set up a local directory with links to the files for live development with the source files. | ||
|
||
This script generates a project `dev-link` *inside* the project generator, just to generate the `.env` and `./frontend/.env` files. | ||
|
||
Then it removes everything except those 2 files. | ||
|
||
Then it creates links for each of the source files, and adds those 2 files back. | ||
|
||
The end result is that you can go into the `dev-link` directory and develop locally with it as if it was a generated project, with all the variables set. But all the changes are actually done directly in the source files. | ||
|
||
This is probably a lot faster to iterate than using `./scripts/dev-fsfp.sh`. But it's tested only in Linux, it might not work in other systems. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#! /usr/bin/env bash | ||
|
||
# Exit in case of error | ||
set -e | ||
|
||
if [ ! -d ./full-stack-fastapi-postgresql ] ; then | ||
echo "Run this script from outside the project, to generate a sibling dev-fsfp project with independent git" | ||
exit 1 | ||
fi | ||
|
||
rm -rf ./dev-fsfp | ||
|
||
cookiecutter --no-input -f ./full-stack-fastapi-postgresql project_name="Dev FSFP" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
#! /usr/bin/env bash | ||
|
||
# Exit in case of error | ||
set -e | ||
|
||
# Run this from the root of the project to generate a dev-link project | ||
# It will contain a link to each of the files of the generator, except for | ||
# .env and frontend/.env, that will be the generated ones | ||
# This allows developing with a live stack while keeping the same source code | ||
# Without having to generate dev-fsfp and integrating back all the files | ||
|
||
rm -rf dev-link | ||
mkdir -p tmp-dev-link/frontend | ||
|
||
cookiecutter --no-input -f ./ project_name="Dev Link" | ||
|
||
mv ./dev-link/.env ./tmp-dev-link/ | ||
mv ./dev-link/frontend/.env ./tmp-dev-link/frontend/ | ||
|
||
rm -rf ./dev-link/ | ||
mkdir -p ./dev-link/ | ||
|
||
cd ./dev-link/ | ||
|
||
for f in ../\{\{cookiecutter.project_slug\}\}/* ; do | ||
ln -s "$f" ./ | ||
done | ||
|
||
cd .. | ||
|
||
mv ./tmp-dev-link/.env ./dev-link/ | ||
mv ./tmp-dev-link/frontend/.env ./dev-link/frontend/ | ||
|
||
rm -rf ./tmp-dev-link |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,13 @@ | ||
#! /usr/bin/env bash | ||
|
||
set -e | ||
|
||
rm -rf \{\{cookiecutter.project_slug\}\}/.git | ||
rm -rf \{\{cookiecutter.project_slug\}\}/backend/app/poetry.lock | ||
rm -rf \{\{cookiecutter.project_slug\}\}/frontend/node_modules | ||
rm -rf \{\{cookiecutter.project_slug\}\}/frontend/dist | ||
git checkout \{\{cookiecutter.project_slug\}\}/README.md | ||
git checkout \{\{cookiecutter.project_slug\}\}/.gitlab-ci.yml | ||
git checkout \{\{cookiecutter.project_slug\}\}/cookiecutter-config-file.yml | ||
git checkout \{\{cookiecutter.project_slug\}\}/docker-compose.deploy.networks.yml | ||
git checkout \{\{cookiecutter.project_slug\}\}/.env | ||
git checkout \{\{cookiecutter.project_slug\}\}/frontend/.env | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.