Skip to content

Commit ad45427

Browse files
authored
Use dope.sh to generate a testable app from production template (#530)
1 parent 88c71f2 commit ad45427

File tree

12 files changed

+185
-3
lines changed

12 files changed

+185
-3
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ There are two ways to get help or provide feedback (and we try to always respond
8282

8383
## Development Tools
8484

85-
For information about the development tools used to maintain derived projects (like opensaas.sh), see [tools/README.md](./tools/README.md).
85+
For information about the development tools used to maintain derived projects (like opensaas.sh and template-test), see [tools/README.md](./tools/README.md).
8686

8787
## Contributing
8888

opensaas-sh/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Inception :)!
1212

1313
Since the demo app is just the open saas template with some small tweaks, and we want to be able to easily keep it up to date as the template changes, we don't version (in git) the actual demo app code, instead we version the diffs between it and the template: `app_diff/`.
1414

15-
**Quick Reference:**
15+
#### Workflow
1616

1717
- Generate `app/` from template and diffs: `./tools/patch.sh`
1818
- Update diffs after modifying `app/`: `./tools/diff.sh`

template-test/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
app/

template-test/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Template Testing
2+
3+
Tests the production version of the Open SaaS template that users get from `wasp new app -t saas`.
4+
5+
**Why this exists:** As a part of our release checklist, we want to test that the production version of the Open SaaS template works.
6+
7+
**How it works:** We create a new Wasp app from the production Open SaaS template, and then modify the app to be production-ready (e.g. replace `Dummy` email service with `SMTP`, add Dotenv Vault with real credentials, etc.).
8+
9+
## Testing a new Wasp release
10+
11+
When testing a new Wasp release:
12+
13+
```bash
14+
cd template-test
15+
# Create a new Wasp app and apply our patches to it.
16+
./tools/patch.sh
17+
18+
cd app
19+
20+
# Get the environment variables from Dotenv Vault.
21+
npm run env:pull
22+
23+
# Run the dev database and create migrations.
24+
wasp db start
25+
wasp db migrate-dev --name "init"
26+
27+
# You can stop the dev database after you created the migration.
28+
29+
# Test that the app works in dev and prod modes.
30+
# Make sure the `@wasp.sh/wasp-app-runner` is updated to the latest version.
31+
npx @wasp.sh/wasp-app-runner dev
32+
npx @wasp.sh/wasp-app-runner build
33+
```
34+
35+
### If you want to update the template test app
36+
37+
- Generate `app/` from template and diffs: `./tools/patch.sh`
38+
- Modify the app in `app/` as needed and then update diffs: `./tools/diff.sh`
39+
40+
For detailed information about the diff/patch workflow and MacOS setup requirements, see [../tools/README.md](../tools/README.md).
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--- /Users/ilakovac/dev/open-saas/template-test/tools/../../template-test/base-app/app/.env.vault
2+
+++ template-test/app/.env.vault
3+
@@ -0,0 +1,25 @@
4+
+#/-------------------.env.vault---------------------/
5+
+#/ cloud-agnostic vaulting standard /
6+
+#/ [how it works](https://dotenv.org/env-vault) /
7+
+#/--------------------------------------------------/
8+
+
9+
+# development
10+
+DOTENV_VAULT_DEVELOPMENT="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"
11+
+DOTENV_VAULT_DEVELOPMENT_VERSION=3
12+
+
13+
+# ci
14+
+DOTENV_VAULT_CI="0kVgjX4gDSFLdOkWOqXHcN6VOvVhMN5wJ9zgF3M7enHE7613DjnvWxS/Xtr2kFNv71jp+Qf51mLpmajTR4kb0whC+uLFa/7xZtXBFV0k5ac4NglcAF2dPbbi2ymqqFzjz5SwTVjQ3xzqpGbmaw/spmoapH1YEaWphA6GSOkJciI8NRqOYsLq7T1AdPrPudt6SUaroRKHD/kPk6ipt7c6sWdkMzKRF2Yv9FVLHDSRr86HCfVjW5FDfgc2eo2ITOONys72Wk/JK1RB1fntT9YIxUP2mX5rWtxsRDw5PPiu4OmrfC93p81BhwlPFMBBV7fOnJKs7jx5NPUEWlPS8xf4StQ9by2/oPmBrsFdzI84ikF6yNvoac7idj2tHsnaOjPWMmTT3Fk88Bt+K0HqMjdpNT7TilEbXbIxP4vq5SjSK9/whnsEqymWFO1aimo+Z6rzC9HNXecoryjtvDk7Y9D60V4oLyNOnSMf4v/+hvIYoAwIfnajVGUQ3y5rw1TLOEm8YQ61DgmArWDk8GhHnk/U6zVIpE8r/wuvYhn5GjMrG+5ZreUJMjRN58Fo/PGJszAciQh65gD5iTlL7qiaM5qgRA7SWuywxJc+3q8YmcHLBAKS1MeSsOw4bHMH1mphO1tSobRvZCS5T/kpCSwbAZviZq5Vx+oFgk39ymAkQ9aKwiTrHtKr0V/BxpqeUt223UC/y3M1TuaCAjs2szKckGa5FPjzWMAdHKShum4ikwGncX6CA5i+c1zimO8+7gj1qQPdZPBpcgHQ2kzX5Njg3InENowIE3RXd+a/ZmKVyP1IkThofsozOgxC+V3OTqriI4SRBIU+ZQ2xfwnsuTETpe/0Bf/pvKanxqebkouHhSUTPK8aF4HOzPbyiPpjFLtw/dmlN9MXdZag02+JGhlMCQ=="
15+
+DOTENV_VAULT_CI_VERSION=2
16+
+
17+
+# staging
18+
+DOTENV_VAULT_STAGING="JMEI1tbOz427qXvVvq9eL5gCiTE62+uCHKjt20WI80iwr2ROHrVjeS4rOXVazZ+BWlnyI8utwk1h4qLqxnqE9PlaCxH78MZX/K8Z8DV30QciubrmgnleUuO25EPlivbHqWWn0nQEMGaLemERXisx/fb/F2VG4aJwMzHd0kEGTnIWjEczGV2VlAgrEobPSZBz6BC02ioIOh6+nbJd5aDaMxaxrxuEJUFTxXDjbEigsJfaZyj2BknsUu/hHdCIPP8TNmAZdPBxmjkiu6rLEKxJ/mC8Hjdu/deZa6fiL8rfLN5ckmIJC+oWW57ectOyPMTq2Byxq/GenB1gMCpB/eOpltfXJvwqSPOrk4EsD62Ycdpr5Dxn2Ui/MN7IW0PREQwkawEmgN/hFp/AVqV5x/dQakqnpFek3qG4nl9COvHWkujd0thfjxRg+iYPEZxKvw6jXPMuG5rUAq0hz2uiiQu+sl7EoPgVtMhmHAeA0XLLPN9yAcdTRH0fzXbgv+DCHR9Xi+my/9PNNi3FCQCqcKUiMSWRqA8pL9xGP7J45LICcmHbHuXhbffSp8sGvPthAKLbCiYBEH97PPOzH6qjaU5gz0qd/tM5XhwDYrWE8i/NXCFTX++l4BOJBN9zb71Sx2KALK5c2aQKjpN5LT1bnF30OchDkFXY/p79kuvopQIEkGJlcBBLyf8hgnlgQdx0e/nXFJVTh/evhc3ndp8nATFwZtoKx1Vgvrq4ux09aaO6ErII4QJZqMBjgpGuAMj9RNE0iUFwm1S9BVVyHqndDnr+mTyKpkUEqzGQHWuZ+KuAsnYQHcOJUo1Wh3zYs0BHswBvbenWcrM/0QRRLoSKziNIRfCudT+J/5ED6v/3JOhACvfq6dD7vlLgURof4b8y9bXb27GX2ycyHZGXjlbZgg=="
19+
+DOTENV_VAULT_STAGING_VERSION=2
20+
+
21+
+# production
22+
+DOTENV_VAULT_PRODUCTION="eSIUBg42a0f0KXdMcsp1tfg3nEHp6ESJNhNOysVtT8AZC/dAQculRnSkA07aY4mNPyAB7B1Y0MayMdNnnB44drdepJYUNNwsBwCxANVl6hgjll8q6CWEgE8e+vW6jTQJDq0myaCSvCgBqfQYDATTTHVJ1Q4FZECavJlqjfNIaAy09evubbhzTmL9z/i+S7jQJCLmirLET438Hnz04/i2S3CtdtsLEtjLWbUvrSkiVALBYkCFxQcmasoit2U/0fgjGaeNuWtfAB7Iku3CSdmcO8kQBtH0j+7TbW7I0cfVTUYH9ipcQCy0vjwx1GwsHWBi5IqPfj4bD/HUTPwinn7MrEBtM2cZ3uksSeWk1x+Ks7A5sQnL7XzgUxnl070TiRZJSb0TYuzXM8ILt7gq0frgKSUKRXkeH+egxjBrMAGQ7vY0ebdBHlBHPHOeF9iiFoaujWdReBitbawHYORG8Ct8pvstiTdj98w7g7WB434/Eh0L0pi8Ydepj40/8OpA3nCES9cCIi0uaFlr+arIh3w6h5FsTqaLgh+MmbpNXnRR99/r/0zzKq3/9d1wnIbc7uHkoOSEkTlD5ceEf+IO85A4jsQFOXYJpGV8ns8z4xWLTsU+3GyWIIGDkkNR0CY8PjdkBeQJPEvZNPDnn+LK9C42Clkm1eQy4aqHaagJxFGYp/j79S7Lm4kLJZMHywKi628CsHZO/moPvkfUGrEO2KmqWHvnxWDh5PggV3TAJWOMk7p2ykuFRRb26MgMf9f8oTa+CSs2Jk5W7TF10xaYZDz7fCyUBdMK+JcguPcq0mFw9eoDf9i8FLOKF26VuK7Z14+fRTZN/YHU+u75ru6WDymRpm0ZhCBDdYy80gM45089Scp2bpnKIWg6s7bLdb9R/NRUhK1PZRDEzw3SkDZBVQ=="
23+
+DOTENV_VAULT_PRODUCTION_VERSION=2
24+
+
25+
+#/----------------settings/metadata-----------------/
26+
+DOTENV_VAULT="vlt_57f67ae090fbd4c01066b1af1342a8ba518da1296c6595b9fcd233af37a5fce4"
27+
+DOTENV_API_URL="https://vault.dotenv.org"
28+
+DOTENV_CLI="npx dotenv-vault@latest"
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--- /Users/ilakovac/dev/open-saas/template-test/tools/../../template-test/base-app/app/.gitignore
2+
+++ template-test/app/.gitignore
3+
@@ -1,2 +1,24 @@
4+
node_modules/
5+
.wasp/
6+
+
7+
+# Dotenv Vault entries
8+
+# These are automatically added by Dotenv Vault when running `npm run env:pull`.
9+
+# They're kept in this diff to avoid having to manually revert .gitignore changes
10+
+# each time we test modifications. They don't cause any harm and make the process
11+
+# less annoying.
12+
+.env*
13+
+.flaskenv*
14+
+!.env.project
15+
+!.env.vault
16+
+
17+
+# Don't ignore example dotenv files.
18+
+!.env.example
19+
+!.env.*.example
20+
+
21+
+# Ignore migrations dir to avoid including them in the diffs. We want to test
22+
+# generating migrations each time.
23+
+migrations/
24+
+
25+
+# Ignore package-lock.json to avoid including it in the diffs. Our users start
26+
+# new projects without it, and we want to test the template like our users.
27+
+package-lock.json

template-test/app_diff/deletions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--- /Users/ilakovac/dev/open-saas/template-test/tools/../../template-test/base-app/app/main.wasp
2+
+++ template-test/app/main.wasp
3+
@@ -39,7 +39,7 @@
4+
email: {
5+
fromField: {
6+
name: "Open SaaS App",
7+
8+
9+
},
10+
emailVerification: {
11+
clientRoute: EmailVerificationRoute,
12+
@@ -84,14 +84,11 @@
13+
},
14+
15+
emailSender: {
16+
- // NOTE: "Dummy" provider is just for local development purposes.
17+
- // Make sure to check the server logs for the email confirmation url (it will not be sent to an address)!
18+
- // Once you are ready for production, switch to e.g. "SendGrid" or "Mailgun" providers. Check out https://docs.opensaas.sh/guides/email-sending/ .
19+
- provider: Dummy,
20+
+ provider: SMTP,
21+
defaultFrom: {
22+
name: "Open SaaS App",
23+
// When using a real provider, e.g. SendGrid, you must use the same email address that you configured your account to send out emails with!
24+
25+
26+
},
27+
},
28+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
--- /Users/ilakovac/dev/open-saas/template-test/tools/../../template-test/base-app/app/package.json
2+
+++ template-test/app/package.json
3+
@@ -1,6 +1,10 @@
4+
{
5+
"name": "opensaas",
6+
"type": "module",
7+
+ "scripts": {
8+
+ "env:pull": "npx dotenv-vault@latest pull development .env.server",
9+
+ "env:push": "npx dotenv-vault@latest push development .env.server"
10+
+ },
11+
"workspaces": [
12+
".wasp/build/*",
13+
".wasp/out/*"

template-test/tools/diff.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
command -v wasp >/dev/null || { echo "Error: Wasp CLI not found"; exit 1; }
6+
7+
SCRIPT_DIR=$(dirname "$(realpath "$0")")
8+
ROOT_DIR="${SCRIPT_DIR}/../.."
9+
BASE_DIR="${ROOT_DIR}/template-test/base-app"
10+
11+
# Clean up the temporary base app directory on exit.
12+
trap 'rm -rf "${BASE_DIR}"' EXIT
13+
14+
cd "${ROOT_DIR}"
15+
16+
rm -rf "${BASE_DIR}"
17+
(cd "${ROOT_DIR}/template-test" && wasp new -t saas base-app)
18+
(cd "${BASE_DIR}/app" && git init -b main -q && git add .)
19+
20+
rm -rf template-test/app_diff
21+
"${ROOT_DIR}/tools/dope.sh" "${BASE_DIR}/app" template-test/app diff

0 commit comments

Comments
 (0)