Skip to content

draft: @game-ci/gamemaker plugin (structural skeleton) - #124

Merged
frostebite merged 2 commits into
mainfrom
draft/plugin-gamemaker
Aug 24, 2026
Merged

frostebite merged 2 commits into
mainfrom
draft/plugin-gamemaker

Conversation

@frostebite

@frostebite frostebite commented Aug 24, 2026 •

Copy link
Copy Markdown
Member

Structural skeleton for a GameMaker Studio engine plugin, from the plugin-idea roadmap. Not functional yet. A real, correctly-typed engine detector + build-command shape, matching godot-plugin.ts's pattern, but detection and build logic are documented TODOs, not guessed implementations. Not wired into core's default load list.

See plugins/gamemaker/README.md for exactly what's real vs. TODO and the remaining work.

Summary by CodeRabbit

  • New Features

    • Added an initial GameMaker Studio plugin package.
    • Added preliminary plugin registration and build command interfaces.
  • Documentation

    • Documented the plugin’s current draft status, limitations, and remaining implementation work.
  • Chores

    • Added package configuration and TypeScript build settings for future development.

Structural skeleton for a GameMaker Studio engine plugin, per the
plugin-idea roadmap. Not wired into core's default load list - loadable
via --plugin @game-ci/gamemaker once real. See plugins/gamemaker/README.md
for what's real (registration shape) vs. TODO (actual detection/build
logic, which needs verification against a real GameMaker/Igor CLI
install before it can be implemented).
@coderabbitai

coderabbitai Bot commented Aug 24, 2026 •

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1fed31c5-3d5c-427a-9d4d-9d56c3f042f8

📥 Commits

Reviewing files that changed from the base of the PR and between efc0055 and 767d1f1.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • plugins/gamemaker/README.md
  • plugins/gamemaker/package.json
  • plugins/gamemaker/src/index.ts
  • plugins/gamemaker/tsconfig.json

📝 Walkthrough

Walkthrough

The pull request adds a draft @game-ci/gamemaker plugin. It defines stub project detection and build behavior, exports the plugin, adds package and TypeScript configuration, and documents remaining implementation work.

Changes

GameMaker plugin

Layer / File(s) Summary
Plugin detection and command contract
plugins/gamemaker/src/index.ts, plugins/gamemaker/README.md
Defines the GameMaker detector and plugin metadata. Detection currently returns false, and the build command throws an unsupported-build error. The plugin supports explicit loading but is absent from the default core load list. The README lists remaining implementation work.
Package and TypeScript configuration
plugins/gamemaker/package.json, plugins/gamemaker/tsconfig.json
Adds package metadata, exports, scripts, development dependencies, Node.js requirements, and strict TypeScript compilation settings.

Estimated code review effort: 2 (Simple) | ~10 minutes

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch draft/plugin-gamemaker

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

CI's bun install --frozen-lockfile was failing on this branch since the
lockfile never reflected the new plugins/<name> workspace member.
@frostebite
frostebite marked this pull request as ready for review August 24, 2026 21:54
@frostebite
frostebite merged commit b82a56f into main Aug 24, 2026
15 checks passed
@frostebite
frostebite deleted the draft/plugin-gamemaker branch August 24, 2026 21:54
frostebite added a commit that referenced this pull request Aug 24, 2026
…139) (#142)

* draft: consolidate the remaining 14 plugin skeletons

Lands the structural skeletons from #125-#128 and #130-#139 in one
commit. They were opened as 15 separate PRs, but every one of them
touches bun.lock (each adds its own plugins/* workspace member), so
merging the first - #124, gamemaker - immediately conflicted all 14
others. Merging them one at a time would mean 14 more rounds of
regenerate-lockfile / push / re-run CI, each invalidating the next.
Consolidating regenerates the lockfile exactly once instead.

Content is taken verbatim from each PR's branch; only bun.lock is
regenerated. Every plugin is the same shape as the already-merged
gamemaker one:

  - a real, correctly-typed GameCIPlugin (name, version, and either an
    engineDetector or a commands entry)
  - domain logic that throws "not implemented yet (draft plugin)" and
    points at plugins/<name>/README.md, rather than guessing an
    invocation shape that hasn't been verified against the real tool
  - NOT added to cli.ts's loadPlugins() default list, so none of this
    is reachable unless explicitly requested via --plugin @game-ci/<name>

Engines: rpg-maker, renpy. Deploy targets: itch-deploy, steam-workshop,
github-release-deploy. Commands/options: crash-symbol-upload,
screen-capture, live-show, dedicated-server-provisioning, anti-cheat,
pseudo-localization, save-data-compat, dev-tunnel, code-signing.

Several of the command-based drafts still need their command name
registered in core's CliCommands before they can be invoked at all, even
once implemented - each README says so explicitly.

Verified: `bun install --frozen-lockfile` passes (the gate that was
failing on all of these branches), and the suite shows 244 failures
before and after - the pre-existing orchestrator-plugin vitest-under-bun
failures, unchanged.

* chore: drop a snapshot file accidentally included in the previous commit

plugins/unity/.../versioning.test.ts.snap was picked up by a broad
`git add plugins/` after running the suite locally. Running these vitest
snapshots under bun's test runner appends a second entry under a
differently-formatted key, so the file was modified as a side effect of
testing, not by any real change - and committing it broke the "Unity
engine core tests" job. Restored to main's version.

* draft: drop the five plugins that belong in orchestrator, not here

crash-symbol-upload, anti-cheat, screen-capture,
dedicated-server-provisioning and dev-tunnel are being implemented as
real orchestrator capabilities instead of standalone plugin skeletons.

They are lifecycle/infrastructure concerns, which is orchestrator's
domain, not new user-facing command surface (which is what a plugin is
for - see steam-deploy, runtime-test-framework, and the engine plugins):

  - crash-symbol-upload is an output type plus an upload, and
    orchestrator already owns output-type-registry (whose built-ins
    include coverage/logs/metrics/test-results) and
    artifact-upload-handler. "symbols" is a sibling of those.
  - anti-cheat registered options and NO command at all - it hooks into
    an existing build, which is exactly services/hooks/middleware-service.
  - screen-capture overlaps an existing built-in output type:
    images ("Screenshots, render captures, atlas previews").
  - dedicated-server-provisioning is provisioning, which is what
    orchestrator's providers already do.
  - dev-tunnel exposes a running job, adjacent to hot-runner/providers.

Lockfile regenerated for the reduced workspace set;
`bun install --frozen-lockfile` still passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant