|
| 1 | +# Contributing |
| 2 | + |
| 3 | +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. |
| 4 | + |
| 5 | +After you clone the project, there are several scripts that can help during development. |
| 6 | + |
| 7 | +* `./scripts/dev-fsfp.sh`: |
| 8 | + |
| 9 | +Generate a new default project `dev-fsfp`. |
| 10 | + |
| 11 | +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: |
| 12 | + |
| 13 | +```console |
| 14 | +$ cd ~/code/ |
| 15 | + |
| 16 | +$ bash ./full-stack-fastapi-postgresql/scripts/dev-fsfp.sh |
| 17 | +``` |
| 18 | + |
| 19 | +It will generate a new project with all the defaults at `~/code/dev-fsfp/`. |
| 20 | + |
| 21 | +You can go to that directory with a full new project, edit files and test things, for example: |
| 22 | + |
| 23 | +```console |
| 24 | +$ cd ./dev-fsfp/ |
| 25 | + |
| 26 | +$ docker-compose up -d |
| 27 | +``` |
| 28 | + |
| 29 | +It is outside of the project generator directory to let you add Git to it and compare versions and changes. |
| 30 | + |
| 31 | +* `./scripts/dev-fsfp-back.sh`: |
| 32 | + |
| 33 | +Move the changes from a project `dev-fsfp` back to the project generator. |
| 34 | + |
| 35 | +You would call it after calling `./scripts/dev-fsfp.sh` and adding some modifications to `dev-fsfp`. |
| 36 | + |
| 37 | +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: |
| 38 | + |
| 39 | +```console |
| 40 | +$ cd ~/code/ |
| 41 | + |
| 42 | +$ bash ./full-stack-fastapi-postgresql/scripts/dev-fsfp-back.sh |
| 43 | +``` |
| 44 | + |
| 45 | +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. |
| 46 | + |
| 47 | +* `./scripts/discard-dev-files.sh`: |
| 48 | + |
| 49 | +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`. |
| 50 | + |
| 51 | +To discard all those changes at once, run `discard-dev-files.sh` from the root of the project, e.g.: |
| 52 | + |
| 53 | +```console |
| 54 | +$ cd ~/code/full-stack-fastapi-postgresql/ |
| 55 | + |
| 56 | +$ bash ./scripts/dev-fsfp-back.sh |
| 57 | +``` |
| 58 | + |
| 59 | +* `./scripts/test.sh`: |
| 60 | + |
| 61 | +Run the tests. It creates a project `testing-project` *inside* of the project generator and runs its tests. |
| 62 | + |
| 63 | +Call it from the root of the project, e.g.: |
| 64 | + |
| 65 | +```console |
| 66 | +$ cd ~/code/full-stack-fastapi-postgresql/ |
| 67 | + |
| 68 | +$ bash ./scripts/test.sh |
| 69 | +``` |
| 70 | + |
| 71 | +* `./scripts/dev-link.sh`: |
| 72 | + |
| 73 | +Set up a local directory with links to the files for live development with the source files. |
| 74 | + |
| 75 | +This script generates a project `dev-link` *inside* the project generator, just to generate the `.env` and `./frontend/.env` files. |
| 76 | + |
| 77 | +Then it removes everything except those 2 files. |
| 78 | + |
| 79 | +Then it creates links for each of the source files, and adds those 2 files back. |
| 80 | + |
| 81 | +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. |
| 82 | + |
| 83 | +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. |
0 commit comments