Skip to content

Releases

mcstage v0.3.0

Choose a tag to compare

@SalyyS1 SalyyS1 released this 14 Nov 20:41

What is New in mcstage v0.3.0

  • OASIS SARIF v2.1.0 Stage & Crash Diagnostics (--sarif, --format sarif, action.yml): Emit GitHub Code Scanning SARIF v2.1.0 reports alongside console, JSON, or JUnit XML from a single real-server matrix run.
  • Console & crash-reports/ Diagnostic Classifier (MCS001 - MCS011) + crash-guard: true: Automatically classify plugin load/dependency errors (MCS001), onEnable or JVM classloader/linkage errors (MCS002), Folia off-thread region violations (MCS003), unhandled event/command exceptions (MCS004), Watchdog stalls and OutOfMemoryError (MCS005), and newly saved crash-reports/crash-*.txt files (MCS006).
  • Negative Console & Filesystem Assertions: Added not-expect (asserting console output stays free of a pattern across a configurable window) and file-not-exists (confined relative path absence checks), plus offline regex validation in mcstage validate.
  • Interactive Browser Scenario Matrix Builder & Crash Log Simulator: Deployed zero-upload client-side tool at https://salyys1.github.io/mcstage/.

MCStage v0.2.0

Choose a tag to compare

@SalyyS1 SalyyS1 released this 14 Nov 06:51

MCStage v0.2.0

Highlights

  • Instance Filesystem Assertions (file-exists & file-contains): Scenarios can now assert that plugin configs, databases, or exported files are created inside the server instance directory and match substrings or re: regular expressions, polling live while continuing to drain server logs and enforce forbid rules. Path traversal (..) and absolute paths are rejected at validation time.
  • Native JUnit XML Reporter (--format junit): Emits well-formed <testsuites> / <testcase> XML reports (stripping illegal XML 1.0 control characters) for GitHub Actions test summary checks, GitLab CI, and Jenkins.
  • Offline Scenario Preflight Validator (mcstage validate): Validates YAML schema, suggests Levenshtein typo fixes (timout -> timeout), expands (platform x version) cases, checks Java runtime availability, and verifies --check-plugins JAR globs on disk (--json supported) before downloading or booting servers.
  • Automatic Loopback Port Probing & Composite GitHub Action (action.yml): Automatically advances past busy loopback ports on 127.0.0.1 (and supports --port 0 ephemeral ports), plus ships SalyyS1/mcstage@v0.2.0 with built-in ~/.mcstage/jars caching.

Verification

  • Full JUnit 5 + real child-JVM integration test suite passing on Java 21 (./gradlew build --no-daemon).

v0.1.0

Choose a tag to compare

@SalyyS1 SalyyS1 released this 06 Sep 09:52

First release.

mcstage boots a real Minecraft server, installs your plugin, types commands into its console, and tells you
whether the lines you expected showed up. It downloads the server itself, verifies the jar against the
digest its publisher printed, and reuses it afterwards, so the whole thing is one command and one YAML
file.

Run mcstage test mcstage.yml --accept-eula. See the README for the spec format and what the exit codes
mean.