fix failing checks + cosmetic renames (#13)
test / test (push) Successful in 1m23s
build-binaries / build-binaries (push) Successful in 2m7s
build-image / publish (push) Successful in 52s

Reviewed-on: #13
Co-authored-by: vickydotbat <vickydotbat@tutamail.com>
Co-committed-by: vickydotbat <vickydotbat@tutamail.com>
This commit was merged in pull request #13.
This commit is contained in:
2026-06-21 07:40:46 +00:00
committed by archvillainette
parent d2f7c420ba
commit faee2cde95
5 changed files with 106 additions and 101 deletions
+24 -19
View File
@@ -349,7 +349,7 @@ type AutogenProducerConfig struct {
Include []string `json:"include" yaml:"include"`
Derive AutogenDeriveConfig `json:"derive" yaml:"derive"`
Manifest AutogenManifestConfig `json:"manifest" yaml:"manifest"`
HeadVisualeffects HeadVisualeffectsConfig `json:"accessory_visualeffects" yaml:"accessory_visualeffects"`
AccessoryVisualeffects AccessoryVisualeffectsConfig `json:"accessory_visualeffects" yaml:"accessory_visualeffects"`
}
type AutogenConsumerConfig struct {
@@ -362,14 +362,14 @@ type AutogenConsumerConfig struct {
Include []string `json:"include" yaml:"include"`
Derive AutogenDeriveConfig `json:"derive" yaml:"derive"`
PartsRows PartsRowsConfig `json:"parts_rows" yaml:"parts_rows"`
HeadVisualeffects HeadVisualeffectsConfig `json:"accessory_visualeffects" yaml:"accessory_visualeffects"`
AccessoryVisualeffects AccessoryVisualeffectsConfig `json:"accessory_visualeffects" yaml:"accessory_visualeffects"`
Manifest AutogenManifestConfig `json:"manifest" yaml:"manifest"`
LocalOverrideRoot string `json:"local_override_root,omitempty" yaml:"local_override_root,omitempty"`
ManifestFile string `json:"manifest_file,omitempty" yaml:"manifest_file,omitempty"`
}
type HeadVisualeffectsConfig struct {
Groups map[string]HeadVisualeffectGroupConfig `json:"groups,omitempty" yaml:"groups"`
type AccessoryVisualeffectsConfig struct {
Groups map[string]AccessoryVisualeffectGroupConfig `json:"groups,omitempty" yaml:"groups"`
GroupTokenSource string `json:"group_token_source,omitempty" yaml:"group_token_source"`
CategoryFrom string `json:"category_from,omitempty" yaml:"category_from"`
Delimiter string `json:"delimiter,omitempty" yaml:"delimiter"`
@@ -381,7 +381,7 @@ type HeadVisualeffectsConfig struct {
RowDefaults map[string]string `json:"row_defaults,omitempty" yaml:"row_defaults"`
}
type HeadVisualeffectGroupConfig struct {
type AccessoryVisualeffectGroupConfig struct {
Prefix string `json:"prefix" yaml:"prefix"`
ModelColumn string `json:"model_column,omitempty" yaml:"model_column"`
ModelColumns []string `json:"model_columns,omitempty" yaml:"model_columns"`
@@ -1626,8 +1626,8 @@ func validateAutogenConfig(cfg AutogenConfig) []error {
failures = append(failures, validateGlobList(fieldPrefix+".include", producer.Include)...)
failures = append(failures, validateAutogenDeriveConfig(fieldPrefix+".derive", producer.Derive)...)
failures = append(failures, validateAutogenManifestConfig(fieldPrefix+".manifest", producer.Manifest)...)
if headVisualeffectsConfigConfigured(producer.HeadVisualeffects) {
failures = append(failures, validateHeadVisualeffectsConfig(fieldPrefix+".accessory_visualeffects", producer.HeadVisualeffects)...)
if accessoryVisualeffectsConfigConfigured(producer.AccessoryVisualeffects) {
failures = append(failures, validateAccessoryVisualeffectsConfig(fieldPrefix+".accessory_visualeffects", producer.AccessoryVisualeffects)...)
}
}
@@ -1666,18 +1666,23 @@ func validateAutogenConfig(cfg AutogenConfig) []error {
default:
failures = append(failures, fmt.Errorf("%s.mode %q is not supported", fieldPrefix, consumer.Mode))
}
if strings.TrimSpace(consumer.Root) == "" {
failures = append(failures, fmt.Errorf("%s.root is required", fieldPrefix))
if strings.TrimSpace(consumer.Mode) == "accessory_visualeffects" && accessoryVisualeffectsConfigConfigured(consumer.AccessoryVisualeffects) {
failures = append(failures, validateAccessoryVisualeffectsConfig(fieldPrefix+".accessory_visualeffects", consumer.AccessoryVisualeffects)...)
}
if len(consumer.Include) == 0 {
failures = append(failures, fmt.Errorf("%s.include must contain at least one glob", fieldPrefix))
// A manifest_file consumer reads a pre-resolved local manifest, so the
// released-source fields (root/include/derive/manifest) are never read
// at build time — don't require them. See resolveAutogenConsumerManifest.
if strings.TrimSpace(consumer.ManifestFile) == "" {
if strings.TrimSpace(consumer.Root) == "" {
failures = append(failures, fmt.Errorf("%s.root is required", fieldPrefix))
}
if len(consumer.Include) == 0 {
failures = append(failures, fmt.Errorf("%s.include must contain at least one glob", fieldPrefix))
}
failures = append(failures, validateGlobList(fieldPrefix+".include", consumer.Include)...)
failures = append(failures, validateAutogenDeriveConfig(fieldPrefix+".derive", consumer.Derive)...)
failures = append(failures, validateAutogenManifestConfig(fieldPrefix+".manifest", consumer.Manifest)...)
}
failures = append(failures, validateGlobList(fieldPrefix+".include", consumer.Include)...)
failures = append(failures, validateAutogenDeriveConfig(fieldPrefix+".derive", consumer.Derive)...)
if strings.TrimSpace(consumer.Mode) == "accessory_visualeffects" && headVisualeffectsConfigConfigured(consumer.HeadVisualeffects) {
failures = append(failures, validateHeadVisualeffectsConfig(fieldPrefix+".accessory_visualeffects", consumer.HeadVisualeffects)...)
}
failures = append(failures, validateAutogenManifestConfig(fieldPrefix+".manifest", consumer.Manifest)...)
}
return failures
@@ -1737,7 +1742,7 @@ func validateGeneratedConfig(cfg GeneratedConfig) []error {
return failures
}
func headVisualeffectsConfigConfigured(cfg HeadVisualeffectsConfig) bool {
func accessoryVisualeffectsConfigConfigured(cfg AccessoryVisualeffectsConfig) bool {
return len(cfg.Groups) > 0 ||
strings.TrimSpace(cfg.GroupTokenSource) != "" ||
strings.TrimSpace(cfg.CategoryFrom) != "" ||
@@ -1750,7 +1755,7 @@ func headVisualeffectsConfigConfigured(cfg HeadVisualeffectsConfig) bool {
len(cfg.RowDefaults) > 0
}
func validateHeadVisualeffectsConfig(fieldPrefix string, cfg HeadVisualeffectsConfig) []error {
func validateAccessoryVisualeffectsConfig(fieldPrefix string, cfg AccessoryVisualeffectsConfig) []error {
var failures []error
groupTokenSource := strings.TrimSpace(cfg.GroupTokenSource)
switch groupTokenSource {
+10 -10
View File
@@ -1313,7 +1313,7 @@ func TestValidateLayoutRejectsInvalidAutogenConsumerConfig(t *testing.T) {
}
}
func TestValidateLayoutRejectsInvalidHeadVisualeffectsConfig(t *testing.T) {
func TestValidateLayoutRejectsInvalidAccessoryVisualeffectsConfig(t *testing.T) {
root := t.TempDir()
mkdirAll(t, filepath.Join(root, "src"))
mkdirAll(t, filepath.Join(root, "build"))
@@ -1338,8 +1338,8 @@ func TestValidateLayoutRejectsInvalidHeadVisualeffectsConfig(t *testing.T) {
AssetName: "sow-accessory-vfx-manifest.json",
CacheName: "sow-accessory-vfx-manifest.json",
},
HeadVisualeffects: HeadVisualeffectsConfig{
Groups: map[string]HeadVisualeffectGroupConfig{
AccessoryVisualeffects: AccessoryVisualeffectsConfig{
Groups: map[string]AccessoryVisualeffectGroupConfig{
"head_jewels": {
ModelColumns: []string{"Imp Root M Node"},
},
@@ -1355,7 +1355,7 @@ func TestValidateLayoutRejectsInvalidHeadVisualeffectsConfig(t *testing.T) {
err := proj.ValidateLayout()
if err == nil {
t.Fatal("expected head visualeffects validation error")
t.Fatal("expected accessory visualeffects validation error")
}
for _, needle := range []string{
"autogen.consumers[0].accessory_visualeffects.groups[head_jewels].prefix",
@@ -1369,7 +1369,7 @@ func TestValidateLayoutRejectsInvalidHeadVisualeffectsConfig(t *testing.T) {
}
}
func TestValidateLayoutRejectsInvalidHeadVisualeffectsNamingConfig(t *testing.T) {
func TestValidateLayoutRejectsInvalidAccessoryVisualeffectsNamingConfig(t *testing.T) {
root := t.TempDir()
mkdirAll(t, filepath.Join(root, "src"))
mkdirAll(t, filepath.Join(root, "build"))
@@ -1394,8 +1394,8 @@ func TestValidateLayoutRejectsInvalidHeadVisualeffectsNamingConfig(t *testing.T)
AssetName: "sow-accessory-vfx-manifest.json",
CacheName: "sow-accessory-vfx-manifest.json",
},
HeadVisualeffects: HeadVisualeffectsConfig{
Groups: map[string]HeadVisualeffectGroupConfig{
AccessoryVisualeffects: AccessoryVisualeffectsConfig{
Groups: map[string]AccessoryVisualeffectGroupConfig{
"head_features": {},
},
GroupTokenSource: "unsupported",
@@ -1411,7 +1411,7 @@ func TestValidateLayoutRejectsInvalidHeadVisualeffectsNamingConfig(t *testing.T)
err := proj.ValidateLayout()
if err == nil {
t.Fatal("expected head visualeffects naming validation error")
t.Fatal("expected accessory visualeffects naming validation error")
}
for _, needle := range []string{
"autogen.consumers[0].accessory_visualeffects.group_token_source",
@@ -1425,7 +1425,7 @@ func TestValidateLayoutRejectsInvalidHeadVisualeffectsNamingConfig(t *testing.T)
}
}
func TestLoadRejectsLegacyHeadVisualeffectsNamingFields(t *testing.T) {
func TestLoadRejectsLegacyAccessoryVisualeffectsNamingFields(t *testing.T) {
root := t.TempDir()
writeProjectFile(t, filepath.Join(root, ConfigFile), `
module:
@@ -1459,7 +1459,7 @@ autogen:
_, err := Load(root)
if err == nil {
t.Fatal("expected legacy head visualeffects naming fields to be rejected")
t.Fatal("expected legacy accessory visualeffects naming fields to be rejected")
}
if !strings.Contains(err.Error(), "legacy_groups") {
t.Fatalf("expected legacy_groups unknown field error, got %v", err)