-
Notifications
You must be signed in to change notification settings - Fork 61
Open
Description
Problem Statement
Summit currently relies on Bash-based scripts for critical application bootstrapping tasks, such as:
- Fetching application settings from the backend
- Validating environment prerequisites
- Blocking
devandbuildwhen configuration fetch fails
These scripts are executed via predev, prebuild, and custom npm commands and depend on Unix-specific tooling.
check file.
package.json
Why This Is a Problem
The current implementation:
- Works reliably only on Unix-like environments (macOS, Linux)
- Requires WSL or Git Bash on Windows
- Does not work natively with:
- Windows PowerShell
- Windows CMD
- Introduces unnecessary setup friction for contributors
- Makes OS-level tooling a hard dependency of the application lifecycle
This creates a poor developer experience and raises the barrier to entry for an open-source project.
Architectural Impact
These scripts are not optional utilities — they are part of the application initialization flow.
As a result:
- Bash becomes an implicit runtime dependency
- OS compatibility becomes a product concern
- CI/CD environments must explicitly support Unix tooling
This is undesirable for a JavaScript/Node-based application.
Proposed Direction
Replace Bash-based bootstrapping scripts with Node.js-based scripts, for example:
scripts/fetch-summit-settings.js
This approach:
- Works consistently across all operating systems
- Aligns with Summit’s Node.js/Next.js stack
- Improves error handling and debuggability
- Lowers the contribution barrier
- Maintains the existing workflow and behavior
Scope of Change
- Replace Bash scripts used in
predev,prebuild, and related commands - Preserve current functionality (single-tenant, rebuild-required config)
- No behavioral or architectural change to how settings are applied
- Focus purely on portability and DX improvement
Benefits
- Cross-platform compatibility (macOS, Linux, Windows)
- Better developer experience
- Cleaner error handling
- Easier onboarding for contributors
- More maintainable bootstrapping logic
Acceptance Criteria
- No required Bash or Unix-only tooling
- All setup and bootstrapping scripts run via Node.js
npm run devandnpm run buildwork on all major OSes- Existing behavior and constraints remain unchanged
Notes
This issue does not propose changing:
- Single-tenant architecture
- Rebuild/redeploy requirement for config changes
- Backend ownership of configuration
The goal is to remove OS-level restrictions, not alter product behavior.
Metadata
Metadata
Assignees
Labels
No labels