Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/new bug report templates #2868

Merged
merged 8 commits into from
Sep 12, 2022
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 0 additions & 96 deletions .github/ISSUE_TEMPLATE/-kip----k-improvement-proposal.md

This file was deleted.

37 changes: 0 additions & 37 deletions .github/ISSUE_TEMPLATE/bug-report.md

This file was deleted.

92 changes: 92 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
name: "[K-Bug] Report"
description: Create a bug report to help us improve
title: "[K-Bug] <TITLE>"
labels: ["k-bug", "k"]

body:
- type: markdown
attributes:
value: |
# Please Fill out the Form to the best of your ability.
## Briefly what we're looking for:
### Input Guidelines:
1. *Minimized* files need to produce the bug.
2. When providing K definitions, a _single_ file should be provided (if possible), and as few modules and sentences as possible.
3. When providing programs or proofs, a _single_ program should be provided with a minimized definition which _quickly_ reproduces the issue.

### Reproduction Steps
Steps to reproduce the behavior (including _code blocks_ with what to run, and _code blocks_ with resulting output).

### Expected Behavior
A clear and concise description of what you expected to happen.
---------------------------------------------------------------

- type: dropdown
attributes:
label: What component is the issue in?
options:
- Front-End
- haskell-backend
- llvm-backend

- type: checkboxes
attributes:
label: Which command
description: You may select more than one
options:
- label: kompile
- label: kast
- label: krun
- label: kprove
- label: kprovex
- label: ksearch

- type: input
attributes:
label: What K Version?
placeholder: |
Run kompile --version and paste here
validations:
required: true

- type: dropdown
attributes:
label: "Operating System"
options:
- Linux
- MacOS (Intel)
- MacOS (Apple Silicon/AMD)
validations:
required: true

- type: textarea
attributes:
label: K Definitions (If Possible)
description: A _single_ program file with a minimized definition which _quickly_ reproduces the issue
placeholder: |
Files can be Drag & Dropped HERE
- type: textarea
attributes:
label: Steps to Reproduce
description: Any informaiton you think is relevant for us to understand the issue. Code blocks are acceptable.
placeholder: |
< ATTACH LOG HERE (IF POSSIBLE) >
validations:
required: true
- type: textarea
attributes:
label: "Expected Results"
description: Please provide a brief description of what you expected to happen
placeholder: < Drag & Drop files can be used to support expected result >
validations:
required: true


- type: markdown
attributes:
value: "## Thank you for contributing to our project!"
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report.
98 changes: 98 additions & 0 deletions .github/ISSUE_TEMPLATE/k-improvement-proposal.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
name: "[KIP] - K Improvment Proposal"
description: Suggest a new feature for the K Language
title: "[K-Improvement] <Title>"
labels: ["request", "k", "improvement"]

body:
- type: markdown
attributes:
value: |
# First fill in the title (template provided).
## Example:

[K-Improvement] - Use `foo` instead of `syntax` for declaring productions

# Motivation

- Is there a semantics which you are developing which this feature would simplify?
- Is this feature similar to a feature offered by another programming language?
- Any other motivation?

# Example K Code

Provide a small, complete, and self-contained example of what you would like to be able to say in K.
Try to make it so that your example would `kompile` correctly if this feature were implemented.

## Example:

I would like to be able to use `foo` instead of `syntax` for declaring AST nodes:

```
module MYMODULE
imports BOOL

foo Bar ::= "newBar" [function]
syntax Bar ::= "anotherBar"
endmodule
```

# Documentation

Provide (initial) documentation for this new feature.

## Example:

A user may choose to use `foo` instead of `syntax` when declaring new production in K.
The meaning is exactly identical to `syntax`, but it requires 3 fewer characters to type, which saves on average 17s/month of semantics development.

# Potential Alternatives/Work-arounds

If there is an obvious alternative way to implement this or an existing work-around, please briefly describe it here.

## Example:

- Users could also type `fo`, because it's even shorter. But because they are already pressing the `o` key, pressing `o` a second time has been shown to only increase the time per month by 2s (compared to the 17s overall), which means that the added benefit of programmers being familiar with the word `foo` outweighs the performance gains.
- The keyword `bar` was also considered, but because `foo` has double-`o`, it's faster to type.

# Testing Approach

If the feature is directly testable using the existing K test harness, provide an example test input/output here.
Otherwise, describe the testing approach you would use for this feature.

## Example:

We could:

- Modify `IMP` in the tutorial to use `foo` instead of `syntax` in a few places, or
- Add the following definition to `tests/regression-new/foo-syntax.k`:

```
module TEST
imports BOOL
configuration <k> $PGM:A </k>

syntax A ::= "blah"
foo A ::= "halb"

rule <k> blah => halb ... </k>
endmodule
```

with the following input file:

```
blah
```

and expected output:

```
halb
```

- type: textarea
attributes:
label: Per the Examples above please provide some Imrovement Suggestions
placeholder: <This field will be rendered into MarkDown>
render: Markdown