rokucommunity / rokucommunity/brighterscript

Provide plugin mechanism to cancel compilation

Open
#1,675 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
208
Forks
68
Avg merge
8h 39m
Merged PRs (30d)
39

Description

There's several scenarios in which a plugin could realistically ask the Program/ProgramBuilder to fail early and cancel a build during setup, like missing configuration/manifest entries, or incorrect entry parameters.

The plugin architecture currently does not support ending compilation early. The compiler will keep working to gather all diagnostics before stopping short of outputting a build, but by that point every file will have been parsed and validated, which can take a while on large projects. Additionally, diagnostics for non-parseable files (i.e. those that are not BrsFile or XmlFile, i.e. manifest or images) seem to be discarded.

I'm opening this issue so we can discuss how to approach a feature like this.

Contributor guide

No contributing guide indexed for this repository

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 the Program and ProgramBuilder setup paths and the plugin architecture. Trace how diagnostics from BrsFile and XmlFile are collected, including why diagnostics for other files are discarded. Done requires a concrete, agreed design for plugin-requested cancellation and diagnostic handling before implementation can begin.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
build-system, compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.