blob: 590632062efa1bc9f3838867c244cf387ee89212 [file] [view]
<!-- SPDX-License-Identifier: Apache-2.0
https://www.apache.org/licenses/LICENSE-2.0 -->
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
- [TODO: `<Project Name>` — runtime invocation](#todo-project-name--runtime-invocation)
- [Build prerequisite](#build-prerequisite)
- [Run a single file](#run-a-single-file)
- [Capture conventions](#capture-conventions)
- [Network and dependency handling](#network-and-dependency-handling)
- [Cross-references](#cross-references)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- SPDX-License-Identifier: Apache-2.0
https://www.apache.org/licenses/LICENSE-2.0 -->
# TODO: `<Project Name>` — runtime invocation
How to invoke the project's runtime on a single source file. Used
by [`issue-reproducer`](../../skills/issue-reproducer/SKILL.md)
when running extracted code from issue descriptions.
The `<runtime>` placeholder resolves from the *Run a single file*
section below.
## Build prerequisite
How to build or install the project so its runtime is invocable.
Skip this section if the runtime is on `PATH` out-of-the-box.
TODO: replace with the project's actual prerequisite. Examples:
- JVM-language projects with Gradle: `./gradlew :installDist`
followed by a `~/.<project>/<runtime>/bin/<command>` path.
- Python projects with build artefacts: `pip install -e .`.
- Shell-script projects: usually no prerequisite.
- Native binaries already on `PATH`: no prerequisite.
## Run a single file
TODO: the command that invokes the runtime on a path. Placeholders
the skill resolves at runtime:
- `<file>` — path to the source file the reproducer wrote.
- `<args>` — optional argv to pass.
Recipe:
```text
TODO-runtime <file> <args>
```
Concrete examples for common project types:
```text
# Apache Foo (a JVM scripting language): ~/.foo-runtime/bin/foo <file>
# Python project: python <file>
# Compiled binary already on PATH: <project-name> run <file>
# Shell: bash <file>
```
## Capture conventions
How to capture stdout, stderr, and exit code in a way the skill can
parse.
| Stream | Convention |
|---|---|
| `stdout` | TODO: usually no special handling needed |
| `stderr` | TODO: many projects emit failure indicators to stderr — capture both |
| `exit code` | TODO: 0 = success, non-zero = failure, by convention |
| `timeout` | TODO: 60s is a common default; raise for known long-running projects |
## Network and dependency handling
TODO: describe whether the runtime resolves dependencies at runtime
(Grape for JVM scripting languages, pip for Python, etc.) and how
the skill should handle resolution failures.
- If yes: the skill must check exit code AND output for resolution
errors before claiming `passes` or `fails` — a swallowed
resolution exception looks like the run completed but the body
never executed.
- Where the project caches dependencies (e.g., `~/.<project>/cache/`),
consider isolating per-campaign so the operator's everyday cache
stays clean. The skill supports a `cache_isolation_flag` field
declared here that it passes through on every invocation.
| Key | Value |
|---|---|
| `resolves_dependencies_at_runtime` | TODO: `true` or `false` |
| `cache_isolation_flag` | TODO: e.g. `-Dgrape.root=<scratch>` if applicable; omit if not |
## Cross-references
- [`reassess-pool-defaults.md`](reassess-pool-defaults.md) — named
pools for `issue-reassess` sweeps.
- [`reproducer-conventions.md`](reproducer-conventions.md) —
per-issue evidence-package directory layout.
- [`issue-tracker-config.md`](issue-tracker-config.md) — tracker
URL and project key.