frostney / frostney/GocciaScript

Add a separate BundleBuilder executable that packages a module graph to .gcbundle

Open
#156 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

new feature
Dominant language
Pascal
Stars
20
Forks
3
Avg merge
3d 4h
Merged PRs (30d)
45

Description

Goal

Ship packaging as a dedicated BundleBuilder executable instead of overloading ScriptLoader.

Scope

  • Add a new BundleBuilder CLI.
  • Resolve the entry module graph.
  • Compile each script module to bytecode.
  • Embed JSON modules.
  • Write .gcbundle output.
  • Reject unsupported references such as unresolved imports, dynamic import(), and paths outside the configured bundle root.

Acceptance Criteria

  • BundleBuilder ./app.js --output app.gcbundle produces a runnable bundle.
  • Unresolved imports and unsupported references hard-fail with explicit errors.
  • The tool is documented in the build/run docs.
  • CLI tests cover success and failure cases.

Stand-alone Value

Provides a clean build-time packaging tool even before native executable packaging exists.

Dependencies

Depends on #153, #154, and #155.

Tracking

Tracked by #161.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing ScriptLoader and the work in dependencies #153, #154, and #155, then trace the app.js entry point and existing CLI conventions. Use the build/run docs and CLI test area as the validation targets; done means a runnable .gcbundle is produced and unsupported references fail with explicit errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
build-system, cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.