Build: Streamline frontend config
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 42/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- firebase, gcp, github-actions, typescript, webpack
- Domain
- build-system, ci-cd, cloud, documentation, frontend
Research direction
Start by reading the example files, .gitignore, ci.yaml, cloudbuild.yaml, and the existing Webpack configuration, then review discussion in #996. Map how frontend builds currently obtain index.html and firebase_config.ts, and update the workflow, Cloud Build configuration, and build/deploy documentation so the streamlined procedure works without the example files.
Written by the indexing model from the issue text.
Description
Background: Currently, in order to build the frontend workspace, one needs to create two files: index.html and firebase_config.ts. There are example files for each (index.example.html and firebase_config.example.ts). Minimally, one must copy the example files to build. The files themselves are .gitignored to prevent committing.
This design does prevent marginally sensitive values from being committed to the repo (such as the Firebase API key). However, it does not take full advantage of Webpack's ability to perform substitutions and inject environment variables.
Proposal:
- Delete both
*.example.*files. - Remove the exclusions from
.gitignore. - Make both files depend on Webpack-injected fields (no hard coded secrets).
- Check in the config-based files.
- Update GitHub Actions (`ci.yaml') as needed to build using the streamlined procedure.
- Update the Google Cloud Build (
cloudbuild.yaml) as needed. - Update documentation on how to build and deploy based on the updated method.
It may make sense to create files like firebase_config.dev.json and firebase_config.prod.json, the latter of which would be .gitignored. Then, in the Webpack build, bring in these files' contents for the particular kind of build being performed.
See #996 for discussion on streamlining the frontend build process.
- Dominant language
- TypeScript
- Stars
- 97
- Forks
- 42
- Avg merge
- 1m
- Merged PRs (30d)
- 28
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PAIR-code/deliberate-lab
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
PAIR-code/deliberate-lab#1214 ·
Maintainers usually reply within 1 day
-
area:build
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
PAIR-code/deliberate-lab#1179 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PAIR-code/deliberate-lab#1155 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PAIR-code/deliberate-lab#1144 ·
Maintainers usually reply within 1 day
-
starter bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
PAIR-code/deliberate-lab#1096 ·
Maintainers usually reply within 1 day
All issues in PAIR-code/deliberate-lab
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
better-auth/better-auth#12132 · 1 reaction ·
Maintainers usually reply within 1 day
-
o8 next debug build aborts on Glass to Dark appearance switch (nil identifier messaged before check)Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
hurttlocker/o8#5112 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
webrecorder/wabac.js#386 ·
-
needs-triage
Difficulty 1/5 1-3 hours Newbie friendliness 92/100
agent-of-empires/agent-of-empires#5098 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day