Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
6abc7cc
Initial plan
Copilot Apr 28, 2026
858f8b8
rad init: always create bicepconfig.json, remove app prompt and app.b…
Copilot Apr 28, 2026
4ce898d
Improve warning message to mention required Radius Bicep extensions
Copilot Apr 28, 2026
c3cabd5
Silence helm install logs during rad init bubbletea UI
Copilot Apr 28, 2026
4b9edf2
Add tests for codecov gaps in PR #11772
Copilot Apr 28, 2026
ae10e6e
Assert wrapped cause in InstallRadius error test
Copilot Apr 28, 2026
971a7d0
Apply suggestions from code review
zachcasper Apr 28, 2026
4e226d4
Rename Application{Complete,HeadingIcon} to BicepConfig in radinit di…
Copilot Apr 28, 2026
ab6aee9
Merge origin/main into copilot/fix-rad-init-bicepconfig
zachcasper May 7, 2026
ea948b5
rad init --preview: always create bicepconfig.json, remove app prompt
zachcasper May 7, 2026
532ad67
Remove dead application-scaffolding code from radinit/common
zachcasper May 7, 2026
b77d320
Merge branch 'main' into copilot/fix-rad-init-bicepconfig
zachcasper May 7, 2026
a9b4c80
Merge branch 'main' into copilot/fix-rad-init-bicepconfig
zachcasper May 7, 2026
57bb4ac
Merge branch 'main' into copilot/fix-rad-init-bicepconfig
zachcasper May 7, 2026
4264349
Merge branch 'main' into copilot/fix-rad-init-bicepconfig
zachcasper May 7, 2026
f187de0
Merge branch 'main' into copilot/fix-rad-init-bicepconfig
zachcasper May 8, 2026
10f8e1d
Merge branch 'main' into copilot/fix-rad-init-bicepconfig
zachcasper May 8, 2026
04df42f
Merge branch 'main' into copilot/fix-rad-init-bicepconfig
zachcasper May 11, 2026
ca279b7
Merge branch 'main' into copilot/fix-rad-init-bicepconfig
nicolejms May 18, 2026
783e3a1
test: make reconciler manager startup/shutdown deterministic
Copilot May 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions pkg/cli/cmd/radinit/application.go

This file was deleted.

54 changes: 0 additions & 54 deletions pkg/cli/cmd/radinit/application_test.go

This file was deleted.

82 changes: 0 additions & 82 deletions pkg/cli/cmd/radinit/common/application.go

This file was deleted.

120 changes: 0 additions & 120 deletions pkg/cli/cmd/radinit/common/application_test.go

This file was deleted.

43 changes: 22 additions & 21 deletions pkg/cli/cmd/radinit/common/display.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,8 @@ const (
SummaryEnvironmentCreateAzureCloudProviderFmt = SummaryIndent + "Azure: subscription %s and resource group %s\n"
SummaryEnvironmentCreateRecipePackyFmt = SummaryIndent + "Recipe pack: %s\n"
SummaryEnvironmentExistingHeadingFmt = "Use existing environment %s\n"
SummaryApplicationHeadingIcon = "🚧 "
SummaryApplicationScaffoldHeadingFmt = "Scaffold application %s\n"
SummaryApplicationScaffoldFile = SummaryIndent + "Create %s\n"
SummaryBicepConfigHeadingIcon = "🚧 "
SummaryBicepConfigCreateHeadingFmt = "Create %s\n"
SummaryConfigurationHeadingIcon = "📋 "
SummaryConfigurationUpdateHeading = "Update local configuration\n"
ProgressHeading = "Initializing Radius. This may take a minute or two...\n\n"
Expand All @@ -76,7 +75,7 @@ type DisplayOptions struct {
Cluster ClusterDisplay
Environment EnvironmentDisplay
CloudProviders CloudProvidersDisplay
Application ApplicationDisplay
BicepConfig BicepConfigDisplay

// RecipePackLabel is the label of the recipe pack to display in the summary.
// An empty value omits the recipe pack line entirely.
Expand Down Expand Up @@ -104,19 +103,18 @@ type CloudProvidersDisplay struct {
AWS *aws.Provider
}

// ApplicationDisplay holds the application fields rendered by the summary and progress views.
type ApplicationDisplay struct {
Scaffold bool
Name string
// ScaffoldFiles are the files to list under the scaffold application heading.
ScaffoldFiles []string
// BicepConfigDisplay holds the bicepconfig.json fields rendered by the summary
// and progress views. When Files is non-empty a dedicated step is shown that
// reports the bicepconfig.json files that will be created.
type BicepConfigDisplay struct {
Files []string
}

// ProgressMsg is a message sent to the progress display to update the status of the installation.
type ProgressMsg struct {
InstallComplete bool
EnvironmentComplete bool
ApplicationComplete bool
BicepConfigComplete bool
ConfigComplete bool
}

Expand Down Expand Up @@ -251,12 +249,9 @@ func (m *SummaryModel) View() string {
message.WriteString(SummaryEnvironmentHeadingIcon)
writeEnvironmentSummary(message, options)

if options.Application.Scaffold {
message.WriteString(SummaryApplicationHeadingIcon)
message.WriteString(fmt.Sprintf(SummaryApplicationScaffoldHeadingFmt, highlight(options.Application.Name)))
for _, file := range options.Application.ScaffoldFiles {
message.WriteString(fmt.Sprintf(SummaryApplicationScaffoldFile, highlight(file)))
}
for _, file := range options.BicepConfig.Files {
message.WriteString(SummaryBicepConfigHeadingIcon)
message.WriteString(fmt.Sprintf(SummaryBicepConfigCreateHeadingFmt, highlight(file)))
}

message.WriteString(SummaryConfigurationHeadingIcon)
Expand Down Expand Up @@ -345,9 +340,9 @@ func (m *ProgressModel) View() string {
m.writeProgressIcon(message, m.Progress.EnvironmentComplete, &waiting)
writeEnvironmentSummary(message, options)

if options.Application.Scaffold {
m.writeProgressIcon(message, m.Progress.ApplicationComplete, &waiting)
message.WriteString(fmt.Sprintf(SummaryApplicationScaffoldHeadingFmt, highlight(options.Application.Name)))
if len(options.BicepConfig.Files) > 0 {
m.writeProgressIcon(message, m.Progress.BicepConfigComplete, &waiting)
message.WriteString(fmt.Sprintf(SummaryBicepConfigCreateHeadingFmt, highlight(options.BicepConfig.Files[0])))
}

m.writeProgressIcon(message, m.Progress.ConfigComplete, &waiting)
Expand All @@ -361,7 +356,13 @@ func (m *ProgressModel) View() string {
}

func (m *ProgressModel) isComplete() bool {
return m.Progress.InstallComplete && m.Progress.EnvironmentComplete && m.Progress.ApplicationComplete && m.Progress.ConfigComplete
if !m.Progress.InstallComplete || !m.Progress.EnvironmentComplete || !m.Progress.ConfigComplete {
return false
}
if len(m.Options.BicepConfig.Files) > 0 && !m.Progress.BicepConfigComplete {
return false
}
return true
}

// writeProgressIcon writes the correct icon for the progress step depending on the current step.
Expand Down
Loading
Loading