Skip to content

Commit 3789820

Browse files
committed
Remove split out info from Regular Feature model
Currently, v3 cannot let us know if a feature has been partially split out. This commit removes the split out info from the Regular Feature model. See comment: web-platform-dx/web-features#3000 (comment) This allows us to simplify this. We can revisit in v4.
1 parent 640fb1c commit 3789820

File tree

11 files changed

+7
-163
lines changed

11 files changed

+7
-163
lines changed

backend/pkg/httpserver/get_feature_test.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ func TestGetFeature(t *testing.T) {
6666
),
6767
},
6868
DeveloperSignals: nil,
69-
Evolution: nil,
7069
BrowserImplementations: &map[string]backend.BrowserImplementation{
7170
"chrome": {
7271
Status: valuePtr(backend.Available),
@@ -176,15 +175,6 @@ func TestGetFeature(t *testing.T) {
176175
DeveloperSignals: &backend.FeatureDeveloperSignals{
177176
PositiveCount: 10,
178177
},
179-
Evolution: &backend.FeatureEvolutionInfo{
180-
SplitOffInfo: &backend.FeatureEvolutionSplit{
181-
Features: []backend.FeatureSplitInfo{
182-
{
183-
Id: "other",
184-
},
185-
},
186-
},
187-
},
188178
BrowserImplementations: &map[string]backend.BrowserImplementation{
189179
"chrome": {
190180
Status: valuePtr(backend.Available),
@@ -216,7 +206,6 @@ func TestGetFeature(t *testing.T) {
216206
`"browser_implementations":` +
217207
`{"chrome":{"date":"1999-01-01","status":"available","version":"100"}},` +
218208
`"developer_signals":{"positive_count":10},` +
219-
`"evolution":{"split_off_info":{"features":[{"id":"other"}]}},` +
220209
`"feature_id":"feature1","name":"feature 1"}`,
221210
),
222211
CacheCfg: getDefaultCacheConfig(),
@@ -238,7 +227,6 @@ func TestGetFeature(t *testing.T) {
238227
}
239228
},
240229
"developer_signals":{"positive_count":10},
241-
"evolution":{"split_off_info":{"features":[{"id":"other"}]}},
242230
"feature_id":"feature1",
243231
"name":"feature 1"
244232
}`,
@@ -257,7 +245,6 @@ func TestGetFeature(t *testing.T) {
257245
`"browser_implementations":` +
258246
`{"chrome":{"date":"1999-01-01","status":"available","version":"100"}},` +
259247
`"developer_signals":{"positive_count":10},` +
260-
`"evolution":{"split_off_info":{"features":[{"id":"other"}]}},` +
261248
`"feature_id":"feature1","name":"feature 1"}`,
262249
),
263250
Err: nil,
@@ -280,7 +267,6 @@ func TestGetFeature(t *testing.T) {
280267
}
281268
},
282269
"developer_signals":{"positive_count":10},
283-
"evolution":{"split_off_info":{"features":[{"id":"other"}]}},
284270
"feature_id":"feature1",
285271
"name":"feature 1"
286272
}`,

backend/pkg/httpserver/get_features_test.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ func TestListFeatures(t *testing.T) {
8585
},
8686
},
8787
DeveloperSignals: nil,
88-
Evolution: nil,
8988
},
9089
},
9190
},
@@ -256,15 +255,6 @@ func TestListFeatures(t *testing.T) {
256255
DeveloperSignals: &backend.FeatureDeveloperSignals{
257256
PositiveCount: 24,
258257
},
259-
Evolution: &backend.FeatureEvolutionInfo{
260-
SplitOffInfo: &backend.FeatureEvolutionSplit{
261-
Features: []backend.FeatureSplitInfo{
262-
{
263-
Id: "test-other",
264-
},
265-
},
266-
},
267-
},
268258
},
269259
},
270260
},
@@ -287,7 +277,6 @@ func TestListFeatures(t *testing.T) {
287277
`"browser_implementations":` +
288278
`{"chrome":{"date":"1999-01-01","status":"available","version":"101"}},` +
289279
`"developer_signals":{"positive_count":24},` +
290-
`"evolution":{"split_off_info":{"features":[{"id":"test-other"}]}},` +
291280
`"feature_id":"feature1","name":"feature 1"}],` +
292281
`"metadata":{"next_page_token":"next-page-token","total":100}}`,
293282
),
@@ -314,13 +303,6 @@ func TestListFeatures(t *testing.T) {
314303
"developer_signals":{
315304
"positive_count":24
316305
},
317-
"evolution":{
318-
"split_off_info":{
319-
"features":[
320-
{"id":"test-other"}
321-
]
322-
}
323-
},
324306
"feature_id":"feature1",
325307
"name":"feature 1"
326308
}
@@ -351,7 +333,6 @@ func TestListFeatures(t *testing.T) {
351333
`"browser_implementations":` +
352334
`{"chrome":{"date":"1999-01-01","status":"available","version":"101"}},` +
353335
`"developer_signals":{"positive_count":24},` +
354-
`"evolution":{"split_off_info":{"features":[{"id":"test-other"}]}},` +
355336
`"feature_id":"feature1","name":"feature 1"}],` +
356337
`"metadata":{"next_page_token":"next-page-token","total":100}}`,
357338
),
@@ -379,13 +360,6 @@ func TestListFeatures(t *testing.T) {
379360
"developer_signals":{
380361
"positive_count":24
381362
},
382-
"evolution":{
383-
"split_off_info":{
384-
"features":[
385-
{"id":"test-other"}
386-
]
387-
}
388-
},
389363
"feature_id":"feature1",
390364
"name":"feature 1"
391365
}

lib/gcpspanner/feature_base_query.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -356,14 +356,6 @@ LEFT OUTER JOIN (
356356
ON ldchm.ChromiumHistogramEnumValueID = dchm.ChromiumHistogramEnumValueID
357357
AND ldchm.Day = dchm.Day
358358
) AS chromium_usage_metrics ON wf.ID = chromium_usage_metrics.WebFeatureID
359-
LEFT OUTER JOIN (
360-
SELECT
361-
swf.OriginalFeatureKey,
362-
ARRAY_AGG(wf.FeatureKey) AS SplitOffFeatures
363-
FROM SplitWebFeatures swf
364-
JOIN WebFeatures wf ON swf.TargetWebFeatureID = wf.ID
365-
GROUP BY swf.OriginalFeatureKey
366-
) AS split_features ON wf.FeatureKey = split_features.OriginalFeatureKey
367359
`
368360
gcpFSBaseQueryTemplate = commonFSBaseQueryTemplate
369361
localFSBaseQueryTemplate = commonFSBaseQueryTemplate
@@ -454,7 +446,6 @@ SELECT
454446
fbs.HighDate,
455447
fs.Links AS SpecLinks,
456448
chromium_usage_metrics.ChromiumUsage,
457-
split_features.SplitOffFeatures,
458449
{{ .StableMetrics }},
459450
{{ .ExperimentalMetrics }},
460451
{{ .ImplementationStatus }}
@@ -518,7 +509,6 @@ SELECT
518509
fbs.HighDate,
519510
fs.Links AS SpecLinks,
520511
chromium_usage_metrics.ChromiumUsage,
521-
split_features.SplitOffFeatures,
522512
{{ .StableMetrics }},
523513
{{ .ExperimentalMetrics }},
524514
{{ .ImplementationStatus }}

lib/gcpspanner/feature_search.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ type SpannerFeatureResult struct {
4343
HighDate *time.Time `spanner:"HighDate"`
4444
SpecLinks []string `spanner:"SpecLinks"`
4545
ChromiumUsage *big.Rat `spanner:"ChromiumUsage"`
46-
SplitOffFeatures []string `spanner:"SplitOffFeatures"`
4746
}
4847

4948
// BrowserImplementationStatus is an enumeration of the possible implementation states for a feature in a browser.
@@ -88,7 +87,6 @@ type FeatureResult struct {
8887
HighDate *time.Time `spanner:"HighDate"`
8988
SpecLinks []string `spanner:"SpecLinks"`
9089
ChromiumUsage *big.Rat `spanner:"ChromiumUsage"`
91-
SplitOffFeatures []string `spanner:"SplitOffFeatures"`
9290
}
9391

9492
// FeatureResultPage contains the details for the feature search request.
@@ -241,7 +239,6 @@ func (c *Client) getFeatureResult(
241239
HighDate: result.HighDate,
242240
SpecLinks: result.SpecLinks,
243241
ChromiumUsage: result.ChromiumUsage,
244-
SplitOffFeatures: result.SplitOffFeatures,
245242
}
246243
results = append(results, actualResult)
247244
}

lib/gcpspanner/feature_search_test.go

Lines changed: 4 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -90,22 +90,6 @@ func setupRequiredTablesForFeaturesSearch(ctx context.Context,
9090
t.Errorf("unexpected error during insert of excluded keys. %s", err.Error())
9191
}
9292

93-
// Sync split features
94-
splitFeatures := []SplitWebFeature{
95-
{
96-
OriginalFeatureKey: "feature1",
97-
TargetFeatureKeys: []string{
98-
// Itself is a target. Meaning it was only partially split.
99-
"feature1",
100-
"feature4",
101-
},
102-
},
103-
}
104-
err = client.SyncSplitWebFeatures(ctx, splitFeatures)
105-
if err != nil {
106-
t.Errorf("unexpected error during sync of split features. %s", err.Error())
107-
}
108-
10993
// nolint: dupl // Okay to duplicate for tests
11094
sampleReleases := []BrowserRelease{
11195
{
@@ -844,10 +828,6 @@ func getFeatureSearchTestFeature(testFeatureID FeatureSearchTestFeatureID) Featu
844828
"http://example2.com",
845829
},
846830
ChromiumUsage: big.NewRat(8, 100),
847-
SplitOffFeatures: []string{
848-
"feature1",
849-
"feature4",
850-
},
851831
}
852832
case FeatureSearchTestFId2:
853833
ret = FeatureResult{
@@ -896,9 +876,8 @@ func getFeatureSearchTestFeature(testFeatureID FeatureSearchTestFeatureID) Featu
896876
ImplementationVersion: valuePtr("2.0.0"),
897877
},
898878
},
899-
SpecLinks: nil,
900-
ChromiumUsage: big.NewRat(91, 100),
901-
SplitOffFeatures: nil,
879+
SpecLinks: nil,
880+
ChromiumUsage: big.NewRat(91, 100),
902881
}
903882
case FeatureSearchTestFId3:
904883
ret = FeatureResult{
@@ -929,8 +908,7 @@ func getFeatureSearchTestFeature(testFeatureID FeatureSearchTestFeatureID) Featu
929908
"http://example3.com",
930909
"http://example4.com",
931910
},
932-
ChromiumUsage: nil,
933-
SplitOffFeatures: nil,
911+
ChromiumUsage: nil,
934912
}
935913
case FeatureSearchTestFId4:
936914
ret = FeatureResult{
@@ -944,7 +922,6 @@ func getFeatureSearchTestFeature(testFeatureID FeatureSearchTestFeatureID) Featu
944922
ImplementationStatuses: nil,
945923
SpecLinks: nil,
946924
ChromiumUsage: nil,
947-
SplitOffFeatures: nil,
948925
}
949926
}
950927

@@ -2579,15 +2556,7 @@ func AreFeatureResultsEqual(a, b FeatureResult) bool {
25792556
AreMetricsEqual(a.ExperimentalMetrics, b.ExperimentalMetrics) &&
25802557
AreImplementationStatusesEqual(a.ImplementationStatuses, b.ImplementationStatuses) &&
25812558
AreSpecLinksEqual(a.SpecLinks, b.SpecLinks) &&
2582-
AreChromiumUsagesEqual(a.ChromiumUsage, b.ChromiumUsage) &&
2583-
AreSplitOffFeaturesEqual(a.SplitOffFeatures, b.SplitOffFeatures)
2584-
}
2585-
2586-
func AreSplitOffFeaturesEqual(a, b []string) bool {
2587-
slices.Sort(a)
2588-
slices.Sort(b)
2589-
2590-
return slices.Equal(a, b)
2559+
AreChromiumUsagesEqual(a.ChromiumUsage, b.ChromiumUsage)
25912560
}
25922561

25932562
func AreSpecLinksEqual(a, b []string) bool {
@@ -2649,7 +2618,6 @@ func PrettyPrintFeatureResult(result FeatureResult) string {
26492618
fmt.Fprintf(&builder, "\tHighDate: %s\n", PrintNullableField(result.HighDate))
26502619
fmt.Fprintf(&builder, "\tSpecLinks: %s\n", result.SpecLinks)
26512620
fmt.Fprintf(&builder, "\tChromiumUsage: %s\n", PrintNullableField(result.ChromiumUsage))
2652-
fmt.Fprintf(&builder, "\tSplitOffFeatures: %s\n", result.SplitOffFeatures)
26532621

26542622
fmt.Fprintln(&builder, "\tStable Metrics:")
26552623
for _, metric := range result.StableMetrics {

lib/gcpspanner/get_feature.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ func (c *Client) GetFeature(
8181
HighDate: result.HighDate,
8282
SpecLinks: result.SpecLinks,
8383
ChromiumUsage: result.ChromiumUsage,
84-
SplitOffFeatures: result.SplitOffFeatures,
8584
}
8685

8786
return &actualResult, nil

lib/gcpspanner/spanneradapters/backend.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -813,20 +813,6 @@ func convertMetrics(
813813
}
814814

815815
func (s *Backend) convertFeatureResult(featureResult *gcpspanner.FeatureResult) *backend.Feature {
816-
var evolution *backend.FeatureEvolutionInfo
817-
if len(featureResult.SplitOffFeatures) > 0 {
818-
splitOffFeatures := make([]backend.FeatureSplitInfo, 0, len(featureResult.SplitOffFeatures))
819-
for _, feature := range featureResult.SplitOffFeatures {
820-
splitOffFeatures = append(splitOffFeatures, backend.FeatureSplitInfo{
821-
Id: feature,
822-
})
823-
}
824-
evolution = &backend.FeatureEvolutionInfo{
825-
SplitOffInfo: &backend.FeatureEvolutionSplit{
826-
Features: splitOffFeatures,
827-
},
828-
}
829-
}
830816
// Initialize the returned feature with the default values.
831817
// The logic below will fill in nullable fields.
832818
ret := &backend.Feature{
@@ -845,7 +831,6 @@ func (s *Backend) convertFeatureResult(featureResult *gcpspanner.FeatureResult)
845831
BrowserImplementations: nil,
846832
// TODO https://github.com/GoogleChrome/webstatus.dev/issues/1675
847833
DeveloperSignals: nil,
848-
Evolution: evolution,
849834
}
850835

851836
if len(featureResult.ExperimentalMetrics) > 0 {

lib/gcpspanner/spanneradapters/backend_test.go

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,10 +1191,6 @@ func TestFeaturesSearch(t *testing.T) {
11911191
},
11921192
SpecLinks: nil,
11931193
ChromiumUsage: big.NewRat(91, 100),
1194-
SplitOffFeatures: []string{
1195-
"feature1",
1196-
"feature4",
1197-
},
11981194
},
11991195
{
12001196
Name: "feature 2",
@@ -1248,8 +1244,7 @@ func TestFeaturesSearch(t *testing.T) {
12481244
"link1",
12491245
"link2",
12501246
},
1251-
ChromiumUsage: big.NewRat(10, 100),
1252-
SplitOffFeatures: nil,
1247+
ChromiumUsage: big.NewRat(10, 100),
12531248
},
12541249
},
12551250
},
@@ -1315,14 +1310,6 @@ func TestFeaturesSearch(t *testing.T) {
13151310
},
13161311
// TODO https://github.com/GoogleChrome/webstatus.dev/issues/1675
13171312
DeveloperSignals: nil,
1318-
Evolution: &backend.FeatureEvolutionInfo{
1319-
SplitOffInfo: &backend.FeatureEvolutionSplit{
1320-
Features: []backend.FeatureSplitInfo{
1321-
{Id: "feature1"},
1322-
{Id: "feature4"},
1323-
},
1324-
},
1325-
},
13261313
},
13271314
{
13281315
Baseline: &backend.BaselineInfo{
@@ -1391,7 +1378,6 @@ func TestFeaturesSearch(t *testing.T) {
13911378
},
13921379
// TODO https://github.com/GoogleChrome/webstatus.dev/issues/1675
13931380
DeveloperSignals: nil,
1394-
Evolution: nil,
13951381
},
13961382
},
13971383
},
@@ -1582,10 +1568,6 @@ func TestGetFeature(t *testing.T) {
15821568
"link2",
15831569
},
15841570
ChromiumUsage: nil,
1585-
SplitOffFeatures: []string{
1586-
"feature1",
1587-
"feature4",
1588-
},
15891571
},
15901572
returnedError: nil,
15911573
},
@@ -1644,14 +1626,6 @@ func TestGetFeature(t *testing.T) {
16441626
},
16451627
// TODO https://github.com/GoogleChrome/webstatus.dev/issues/1675
16461628
DeveloperSignals: nil,
1647-
Evolution: &backend.FeatureEvolutionInfo{
1648-
SplitOffInfo: &backend.FeatureEvolutionSplit{
1649-
Features: []backend.FeatureSplitInfo{
1650-
{Id: "feature1"},
1651-
{Id: "feature2"},
1652-
},
1653-
},
1654-
},
16551629
}),
16561630
}
16571631
},
@@ -3072,7 +3046,6 @@ func TestConvertFeatureResult(t *testing.T) {
30723046
ImplementationStatuses: nil,
30733047
SpecLinks: nil,
30743048
ChromiumUsage: big.NewRat(8, 100),
3075-
SplitOffFeatures: nil,
30763049
},
30773050

30783051
expectedFeature: &backend.Feature{
@@ -3095,7 +3068,6 @@ func TestConvertFeatureResult(t *testing.T) {
30953068
BrowserImplementations: nil,
30963069
// TODO https://github.com/GoogleChrome/webstatus.dev/issues/1675
30973070
DeveloperSignals: nil,
3098-
Evolution: nil,
30993071
},
31003072
},
31013073
}

0 commit comments

Comments
 (0)