Azure / Azure/bicep

De-bounce cascading module compilation

Open
#3,787 0 comments 0 reactions 0 assignees View on GitHub
enhancement performance tech debt
Dominant language
Bicep
Stars
3.6k
Forks
830
Avg merge
1d 21m
Merged PRs (30d)
79

Description

If you imagine a file structure like the following:
```
main.bicep
- abc.bicep
- def.bicep
+ ghi.bicep
```

If `main.bicep` and `ghi.bicep` are both present in the workspace, a modification to `ghi.bicep` will trigger a synchronous recompilation of `main.bicep`. Arguably instant feedback isn't super important on `main.bicep` as it is not the active document. We could probably avoid constantly recompiling it on every keypress with a debouncing strategy (such as - wait ~X seconds after the last `ghi.bicep` modification before triggering a cascading recompilation).

See #3636 for discussion on an example perf problem which this could help alleviate.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the cascading compilation scenario described with main.bicep, abc.bicep, def.bicep, and ghi.bicep, then read the performance discussion in #3636. Confirm when editing ghi.bicep recompiles main.bicep synchronously, and define completion as debounced recompilation after edits settle without removing needed feedback.

Written by the indexing model from the issue text.

Assessment

Domain
compilers, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.