Hard-cut migration guide from old Geppetto layer/parameter symbols to the new section/value facade API.
This tutorial shows how to migrate existing Geppetto integrations from the old layer/parameter APIs to the new section/value facade APIs, with no backward compatibility shims. It is intended for maintainers who want to complete a hard-cut migration and remove deprecated symbol usage.
What changes conceptually:
layers becomes sections for schema definitions.parameters becomes values for parsed runtime data.ParsedLayers now accept ParsedValues.Use this guide when your code currently imports old Geppetto symbols such as:
github.com/go-go-golems/geppetto/pkg/layersfactory.NewEngineFromParsedLayers(...)settings.NewStepSettingsFromParsedLayers(...)stepSettings.UpdateFromParsedLayers(...)embeddings.NewSettingsFactoryFromParsedLayers(...)Before starting:
pkg/sections and ...FromParsedValues APIs.schema/values in command pipelines.Use this mapping as the canonical replacement list.
| Old symbol | New symbol |
|---|---|
geppetto/pkg/layers | geppetto/pkg/sections |
CreateGeppettoLayers | CreateGeppettoSections |
NewEngineFromParsedLayers | NewEngineFromParsedValues |
NewStepSettingsFromParsedLayers | NewStepSettingsFromParsedValues |
(*StepSettings).UpdateFromParsedLayers | (*StepSettings).UpdateFromParsedValues |
embeddings.NewSettingsFactoryFromParsedLayers | embeddings.NewSettingsFactoryFromParsedValues |
settings.NewChatParameterLayer | settings.NewChatValueSection |
settings.NewClientParameterLayer | settings.NewClientValueSection |
openai.NewParameterLayer | openai.NewValueSection |
claude.NewParameterLayer | claude.NewValueSection |
gemini.NewParameterLayer | gemini.NewValueSection |
ollama.NewParameterLayer | ollama.NewValueSection |
config.NewEmbeddingsParameterLayer | config.NewEmbeddingsValueSection |
Before:
import geppettolayers "github.com/go-go-golems/geppetto/pkg/layers"
After:
import geppettosections "github.com/go-go-golems/geppetto/pkg/sections"
Before:
geppettoLayers, err := geppettolayers.CreateGeppettoLayers()
if err != nil { return err }
desc := cmds.NewCommandDescription(
"run",
cmds.WithLayers(geppettoLayers...),
)
After:
geppettoSections, err := geppettosections.CreateGeppettoSections()
if err != nil { return err }
desc := cmds.NewCommandDescription(
"run",
cmds.WithSections(geppettoSections...),
)
Before:
eng, err := factory.NewEngineFromParsedLayers(parsedLayers)
if err != nil { return err }
After:
eng, err := factory.NewEngineFromParsedValues(parsedValues)
if err != nil { return err }
If you build settings first:
Before:
stepSettings, err := settings.NewStepSettingsFromParsedLayers(parsedLayers)
if err != nil { return err }
After:
stepSettings, err := settings.NewStepSettingsFromParsedValues(parsedValues)
if err != nil { return err }
Before:
if err := stepSettings.UpdateFromParsedLayers(parsedLayers); err != nil {
return err
}
After:
if err := stepSettings.UpdateFromParsedValues(parsedValues); err != nil {
return err
}
Before:
factory, err := embeddings.NewSettingsFactoryFromParsedLayers(parsedLayers)
if err != nil { return err }
After:
factory, err := embeddings.NewSettingsFactoryFromParsedValues(parsedValues)
if err != nil { return err }
When you directly assemble sections, switch constructor names:
chat, _ := settings.NewChatValueSection()
client, _ := settings.NewClientValueSection()
openaiSection, _ := openai.NewValueSection()
claudeSection, _ := claude.NewValueSection()
geminiSection, _ := gemini.NewValueSection()
ollamaSection, _ := ollama.NewValueSection()
embeddingsSection, _ := config.NewEmbeddingsValueSection()
After replacement, verify all of the following:
geppetto/pkg/layers.*FromParsedLayers.*ParameterLayer constructors for Geppetto settings.go mod tidy removes stale module edges introduced by deleted old symbols.Useful checks:
rg -n "pkg/layers|FromParsedLayers|ParameterLayer" .
go test ./...
make lint
| Problem | Cause | Fix |
|---|---|---|
undefined: factory.NewEngineFromParsedLayers | Old helper removed | replace with factory.NewEngineFromParsedValues |
module ... does not contain package .../pkg/layers | Import path removed | import .../pkg/sections and update calls |
| decode/update errors after rename | mixed parsedLayers and parsedValues variables | standardize on *values.Values and new helper names |
../tutorials/01-streaming-inference-with-tools.md../topics/06-inference-engines.md../topics/06-embeddings.md