Skip to content

fix: Current Dev/Build Scripts Are Unix-Only (Bash Dependency) #415

@karan1633

Description

@karan1633

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 dev and build when 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 dev and npm run build work 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions