Skip to content

Commit b32bdee

Browse files
committed
[mdatagen] delete generated_status.go in case it is not required
1 parent f9562a0 commit b32bdee

File tree

4 files changed

+175
-60
lines changed

4 files changed

+175
-60
lines changed

.chloggen/delete_old_status.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Use this changelog template to create an entry for release notes.
2+
3+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
4+
change_type: enhancement
5+
6+
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
7+
component: mdatagen
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: Delete generated_status.go if the component type doesn't require it.
11+
12+
# One or more tracking issues or pull requests related to the change
13+
issues: [12346]
14+
15+
# (Optional) One or more lines of additional information to render under the primary note.
16+
# These lines will be padded with 2 spaces and then inserted directly into the document.
17+
# Use pipe (|) for multiline entries.
18+
subtext:
19+
20+
# Optional: The change log or logs in which this entry should be included.
21+
# e.g. '[user]' or '[user, api]'
22+
# Include 'user' if the change is relevant to end users.
23+
# Include 'api' if there is a change to a library API.
24+
# Default: '[user]'
25+
change_logs: []

cmd/mdatagen/internal/command.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,17 @@ func run(ymlPath string) error {
8484
filepath.Join(ymlDir, "generated_component_test.go"), md, packageName); err != nil {
8585
return err
8686
}
87+
} else {
88+
if _, err = os.Stat(filepath.Join(codeDir, "generated_status.go")); err == nil {
89+
if err = os.Remove(filepath.Join(codeDir, "generated_status.go")); err != nil {
90+
return err
91+
}
92+
}
93+
if _, err = os.Stat(filepath.Join(ymlDir, "generated_component_test.go")); err == nil {
94+
if err = os.Remove(filepath.Join(ymlDir, "generated_component_test.go")); err != nil {
95+
return err
96+
}
97+
}
8798
}
8899

89100
if err = generateFile(filepath.Join(tmplDir, "package_test.go.tmpl"),
@@ -116,6 +127,27 @@ func run(ymlPath string) error {
116127
toGenerate[filepath.Join(tmplDir, "telemetry_test.go.tmpl")] = filepath.Join(codeDir, "generated_telemetry_test.go")
117128
toGenerate[filepath.Join(tmplDir, "telemetrytest.go.tmpl")] = filepath.Join(testDir, "generated_telemetrytest.go")
118129
toGenerate[filepath.Join(tmplDir, "telemetrytest_test.go.tmpl")] = filepath.Join(testDir, "generated_telemetrytest_test.go")
130+
} else {
131+
if _, err = os.Stat(filepath.Join(ymlDir, "generated_telemetry.go")); err == nil {
132+
if err = os.Remove(filepath.Join(ymlDir, "generated_telemetry.go")); err != nil {
133+
return err
134+
}
135+
}
136+
if _, err = os.Stat(filepath.Join(ymlDir, "generated_telemetry_test.go")); err == nil {
137+
if err = os.Remove(filepath.Join(ymlDir, "generated_telemetry_test.go")); err != nil {
138+
return err
139+
}
140+
}
141+
if _, err = os.Stat(filepath.Join(ymlDir, "generated_telemetrytest.go")); err == nil {
142+
if err = os.Remove(filepath.Join(ymlDir, "generated_telemetrytest.go")); err != nil {
143+
return err
144+
}
145+
}
146+
if _, err = os.Stat(filepath.Join(ymlDir, "generated_telemetrytest_test.go")); err == nil {
147+
if err = os.Remove(filepath.Join(ymlDir, "generated_telemetrytest_test.go")); err != nil {
148+
return err
149+
}
150+
}
119151
}
120152

121153
if len(md.Metrics) != 0 || len(md.Telemetry.Metrics) != 0 || len(md.ResourceAttributes) != 0 { // if there's metrics or internal metrics, generate documentation for them

cmd/mdatagen/internal/command_test.go

Lines changed: 112 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ func TestRunContents(t *testing.T) {
3737
wantConfigGenerated bool
3838
wantTelemetryGenerated bool
3939
wantResourceAttributesGenerated bool
40+
wantReadmeGenerated bool
4041
wantStatusGenerated bool
42+
wantComponentTestGenerated bool
4143
wantGoleakIgnore bool
4244
wantGoleakSkip bool
4345
wantGoleakSetup bool
@@ -49,89 +51,131 @@ func TestRunContents(t *testing.T) {
4951
wantErr: true,
5052
},
5153
{
52-
yml: "basic_connector.yaml",
53-
wantErr: false,
54-
wantStatusGenerated: true,
54+
yml: "basic_connector.yaml",
55+
wantErr: false,
56+
wantStatusGenerated: true,
57+
wantReadmeGenerated: true,
58+
wantComponentTestGenerated: true,
59+
},
60+
{
61+
yml: "basic_receiver.yaml",
62+
wantErr: false,
63+
wantStatusGenerated: true,
64+
wantReadmeGenerated: true,
65+
wantComponentTestGenerated: true,
5566
},
5667
{
57-
yml: "basic_receiver.yaml",
68+
yml: "basic_pkg.yaml",
5869
wantErr: false,
59-
wantStatusGenerated: true,
70+
wantStatusGenerated: false,
71+
wantReadmeGenerated: true,
6072
},
6173
{
62-
yml: "metrics_and_type.yaml",
63-
wantMetricsGenerated: true,
64-
wantConfigGenerated: true,
65-
wantStatusGenerated: true,
74+
yml: "metrics_and_type.yaml",
75+
wantMetricsGenerated: true,
76+
wantConfigGenerated: true,
77+
wantStatusGenerated: true,
78+
wantReadmeGenerated: true,
79+
wantComponentTestGenerated: true,
6680
},
6781
{
6882
yml: "resource_attributes_only.yaml",
6983
wantConfigGenerated: true,
7084
wantStatusGenerated: true,
7185
wantResourceAttributesGenerated: true,
86+
wantReadmeGenerated: true,
87+
wantComponentTestGenerated: true,
7288
},
7389
{
74-
yml: "status_only.yaml",
75-
wantStatusGenerated: true,
90+
yml: "status_only.yaml",
91+
wantStatusGenerated: true,
92+
wantReadmeGenerated: true,
93+
wantComponentTestGenerated: true,
7694
},
7795
{
78-
yml: "with_tests_receiver.yaml",
79-
wantStatusGenerated: true,
96+
yml: "with_tests_receiver.yaml",
97+
wantStatusGenerated: true,
98+
wantReadmeGenerated: true,
99+
wantComponentTestGenerated: true,
80100
},
81101
{
82-
yml: "with_tests_exporter.yaml",
83-
wantStatusGenerated: true,
102+
yml: "with_tests_exporter.yaml",
103+
wantStatusGenerated: true,
104+
wantReadmeGenerated: true,
105+
wantComponentTestGenerated: true,
84106
},
85107
{
86-
yml: "with_tests_processor.yaml",
87-
wantStatusGenerated: true,
108+
yml: "with_tests_processor.yaml",
109+
wantStatusGenerated: true,
110+
wantReadmeGenerated: true,
111+
wantComponentTestGenerated: true,
88112
},
89113
{
90-
yml: "with_tests_extension.yaml",
91-
wantStatusGenerated: true,
114+
yml: "with_tests_extension.yaml",
115+
wantStatusGenerated: true,
116+
wantReadmeGenerated: true,
117+
wantComponentTestGenerated: true,
92118
},
93119
{
94-
yml: "with_tests_connector.yaml",
95-
wantStatusGenerated: true,
120+
yml: "with_tests_connector.yaml",
121+
wantStatusGenerated: true,
122+
wantReadmeGenerated: true,
123+
wantComponentTestGenerated: true,
96124
},
97125
{
98-
yml: "with_goleak_ignores.yaml",
99-
wantStatusGenerated: true,
100-
wantGoleakIgnore: true,
126+
yml: "with_goleak_ignores.yaml",
127+
wantStatusGenerated: true,
128+
wantGoleakIgnore: true,
129+
wantReadmeGenerated: true,
130+
wantComponentTestGenerated: true,
101131
},
102132
{
103-
yml: "with_goleak_skip.yaml",
104-
wantStatusGenerated: true,
105-
wantGoleakSkip: true,
133+
yml: "with_goleak_skip.yaml",
134+
wantStatusGenerated: true,
135+
wantGoleakSkip: true,
136+
wantReadmeGenerated: true,
137+
wantComponentTestGenerated: true,
106138
},
107139
{
108-
yml: "with_goleak_setup.yaml",
109-
wantStatusGenerated: true,
110-
wantGoleakSetup: true,
140+
yml: "with_goleak_setup.yaml",
141+
wantStatusGenerated: true,
142+
wantGoleakSetup: true,
143+
wantReadmeGenerated: true,
144+
wantComponentTestGenerated: true,
111145
},
112146
{
113-
yml: "with_goleak_teardown.yaml",
114-
wantStatusGenerated: true,
115-
wantGoleakTeardown: true,
147+
yml: "with_goleak_teardown.yaml",
148+
wantStatusGenerated: true,
149+
wantGoleakTeardown: true,
150+
wantReadmeGenerated: true,
151+
wantComponentTestGenerated: true,
116152
},
117153
{
118-
yml: "with_telemetry.yaml",
119-
wantStatusGenerated: true,
120-
wantTelemetryGenerated: true,
154+
yml: "with_telemetry.yaml",
155+
wantStatusGenerated: true,
156+
wantTelemetryGenerated: true,
157+
wantReadmeGenerated: true,
158+
wantComponentTestGenerated: true,
121159
},
122160
{
123-
yml: "invalid_telemetry_missing_value_type_for_histogram.yaml",
124-
wantErr: true,
161+
yml: "invalid_telemetry_missing_value_type_for_histogram.yaml",
162+
wantErr: true,
163+
wantReadmeGenerated: true,
164+
wantComponentTestGenerated: true,
125165
},
126166
{
127-
yml: "async_metric.yaml",
128-
wantMetricsGenerated: true,
129-
wantConfigGenerated: true,
130-
wantStatusGenerated: true,
167+
yml: "async_metric.yaml",
168+
wantMetricsGenerated: true,
169+
wantConfigGenerated: true,
170+
wantStatusGenerated: true,
171+
wantReadmeGenerated: true,
172+
wantComponentTestGenerated: true,
131173
},
132174
{
133-
yml: "custom_generated_package_name.yaml",
134-
wantStatusGenerated: true,
175+
yml: "custom_generated_package_name.yaml",
176+
wantStatusGenerated: true,
177+
wantReadmeGenerated: true,
178+
wantComponentTestGenerated: true,
135179
},
136180
}
137181
for _, tt := range tests {
@@ -147,17 +191,20 @@ func TestRunContents(t *testing.T) {
147191
<!-- status autogenerated section -->
148192
foo
149193
<!-- end autogenerated section -->`), 0o600))
150-
151-
err = run(metadataFile)
194+
md, err := LoadMetadata(metadataFile)
152195
if tt.wantErr {
153196
require.Error(t, err)
154197
return
155198
}
156199
require.NoError(t, err)
200+
generatedPackageDir := filepath.Join("internal", md.GeneratedPackageName)
201+
require.NoError(t, os.MkdirAll(filepath.Join(tmpdir, generatedPackageDir), 0o755))
202+
require.NoError(t, os.WriteFile(filepath.Join(tmpdir, generatedPackageDir, "generated_status.go"), []byte("status"), 0o600))
203+
require.NoError(t, os.WriteFile(filepath.Join(tmpdir, generatedPackageDir, "generated_telemetry_test.go"), []byte("test"), 0o600))
204+
require.NoError(t, os.WriteFile(filepath.Join(tmpdir, generatedPackageDir, "generated_component_test.go"), []byte("test"), 0o600))
157205

158-
md, err := LoadMetadata(metadataFile)
206+
err = run(metadataFile)
159207
require.NoError(t, err)
160-
generatedPackageDir := filepath.Join("internal", md.GeneratedPackageName)
161208

162209
var contents []byte
163210
if tt.wantMetricsGenerated {
@@ -197,7 +244,6 @@ foo
197244
}
198245
} else {
199246
require.NoFileExists(t, filepath.Join(tmpdir, generatedPackageDir, "generated_telemetry.go"))
200-
require.NoFileExists(t, filepath.Join(tmpdir, generatedPackageDir, "generated_telemetry_test.go"))
201247
}
202248

203249
if !tt.wantMetricsGenerated && !tt.wantTelemetryGenerated && !tt.wantResourceAttributesGenerated {
@@ -206,22 +252,28 @@ foo
206252

207253
if tt.wantStatusGenerated {
208254
require.FileExists(t, filepath.Join(tmpdir, generatedPackageDir, "generated_status.go"))
209-
contents, err = os.ReadFile(filepath.Join(tmpdir, "README.md")) //nolint:gosec
210-
require.NoError(t, err)
211-
require.NotContains(t, string(contents), "foo")
212255
} else {
213256
require.NoFileExists(t, filepath.Join(tmpdir, generatedPackageDir, "generated_status.go"))
214-
contents, err = os.ReadFile(filepath.Join(tmpdir, "README.md")) //nolint:gosec
215-
require.NoError(t, err)
216-
require.Contains(t, string(contents), "foo")
217257
}
218258

219-
require.FileExists(t, filepath.Join(tmpdir, "generated_component_test.go"))
220-
contents, err = os.ReadFile(filepath.Join(tmpdir, "generated_component_test.go")) //nolint:gosec
221-
require.NoError(t, err)
222-
require.Contains(t, string(contents), "func Test")
223-
_, err = parser.ParseFile(token.NewFileSet(), "", contents, parser.DeclarationErrors)
259+
contents, err = os.ReadFile(filepath.Join(tmpdir, "README.md")) //nolint:gosec
224260
require.NoError(t, err)
261+
if tt.wantReadmeGenerated {
262+
require.NotContains(t, string(contents), "foo")
263+
} else {
264+
require.Contains(t, string(contents), "foo")
265+
}
266+
267+
if tt.wantComponentTestGenerated {
268+
require.FileExists(t, filepath.Join(tmpdir, "generated_component_test.go"))
269+
contents, err = os.ReadFile(filepath.Join(tmpdir, "generated_component_test.go")) //nolint:gosec
270+
require.NoError(t, err)
271+
require.Contains(t, string(contents), "func Test")
272+
_, err = parser.ParseFile(token.NewFileSet(), "", contents, parser.DeclarationErrors)
273+
require.NoError(t, err)
274+
} else {
275+
require.NoFileExists(t, filepath.Join(tmpdir, "generated_component_test.go"))
276+
}
225277

226278
require.FileExists(t, filepath.Join(tmpdir, "generated_package_test.go"))
227279
contents, err = os.ReadFile(filepath.Join(tmpdir, "generated_package_test.go")) //nolint:gosec
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
type: test
2+
3+
status:
4+
class: pkg
5+
stability:
6+
beta: [logs]

0 commit comments

Comments
 (0)