aboutsummaryrefslogtreecommitdiff
path: root/.github/ISSUE_TEMPLATE/11-language-change.yml
blob: 37ba2d7e408fbc180889e784f5582f19be9f4fe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: Language Change Proposals
description: Changes to the language
labels: ["Proposal", "v2", "LanguageChange"]
title: "proposal: Go 2: proposal title"


body:
  - type: markdown
    attributes:
      value: |
       ## Our process for evaluating language changes can be found [here](https://go.googlesource.com/proposal/+/refs/heads/master#language-changes)

  - type: dropdown
    id: author-go-experience
    attributes:
      label: "Go Programming Experience"
      description: "Would you consider yourself a novice, intermediate, or experienced Go programmer?"
      options:
        - "Novice"
        - "Intermediate"
        - "Experienced"
      default: 1

  - type: input
    id: author-other-languages-experience
    attributes:
      label: "Other Languages Experience"
      description: "What other languages do you have experience with?"
      placeholder: "Go, Python, JS, Rust"
    validations:
      required: false

  - type: checkboxes
    id: related-idea
    attributes:
      label: "Related Idea"
      options:
        - label: "Has this idea, or one like it, been proposed before?"
        - label: "Does this affect error handling?"
        - label: "Is this about generics?"
        - label: "Is this change backward compatible? Breaking the Go 1 compatibility guarantee is a large cost and requires a large benefit"

  - type: textarea
    id: related-proposals
    attributes:
      label: Has this idea, or one like it, been proposed before?
      description: If so, how does this proposal differ?
      placeholder: |
       Yes or No

       If yes, 
        1. Mention the related proposals 
        2. then describe how this proposal differs       
    validations:
      required: true

  - type: textarea
    id: error-handling-proposal
    attributes:
      label: Does this affect error handling?
      description: If so, how does this differ from previous error handling proposals?
      placeholder: |
       Yes or No

       If yes, 
        1.how does this differ from previous error handling proposals?

    validations:
      required: true

  - type: textarea
    id: generics-proposal
    attributes:
      label: Is this about generics?
      description: If so, how does this relate to the accepted design and other generics proposals?
      placeholder: |
       Yes or No

       If yes, 
        1. how does this relate to the accepted design and other generics proposals?

    validations:
      required: true

  - type: textarea
    id: proposal
    attributes:
      label: "Proposal"
      description: "What is the proposed change? Who does this proposal help, and why? Please describe as precisely as possible the change to the language."
    validations:
      required: true

  - type: textarea
    id: language-spec-changes
    attributes:
      label: "Language Spec Changes"
      description: "What would change in the language spec?"
    validations:
      required: false

  - type: textarea
    id: informal-change
    attributes:
      label: "Informal Change"
      description: "Please also describe the change informally, as in a class teaching Go."
    validations:
      required: false

  - type: textarea
    id: go-backwards-compatiblity
    attributes:
      label: Is this change backward compatible?
      description: Breaking the Go 1 compatibility guarantee is a large cost and requires a large benefit.
      placeholder: |
       Yes or No

       If yes, 
        1. Show example code before and after the change.

    validations:
      required: true

  - type: textarea
    id: orthogonality
    attributes:
      label: "Orthogonality: How does this change interact or overlap with existing features?"
      description: "Is the goal of this change a performance improvement? If so, what quantifiable improvement should we expect? How would we measure it?"
    validations:
      required: false

  - type: textarea
    id: learning-curve
    attributes:
      label: "Would this change make Go easier or harder to learn, and why?"

  - type: textarea
    id: cost-description
    attributes:
      label: "Cost Description"
      description: "What is the cost of this proposal? (Every language change has a cost)"

  - type: input
    id: go-toolchain
    attributes:
      label: Changes to Go ToolChain
      description: "How many tools (such as vet, gopls, gofmt, goimports, etc.) would be affected? "
    validations:
      required: false

  - type: input
    id: perf-costs
    attributes:
      label: Performance Costs
      description: "What is the compile time cost? What is the run time cost? "
    validations:
      required: false

  - type: textarea
    id: prototype
    attributes:
      label: "Prototype"
      description: "Can you describe a possible implementation?"
    validations:
      required: false