Skip to content

Commit

Permalink
refactor: prepare for 10.7.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
Integralist committed Nov 28, 2023
1 parent 4fe9186 commit 058901a
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 72 deletions.
20 changes: 20 additions & 0 deletions pkg/app/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -1220,6 +1220,26 @@
}
}
},
"metadata": {
"examples": [
{
"cmd": "fastly compute metadata --enable",
"title": "Enable all metadata collection information"
},
{
"cmd": "fastly compute metadata --disable",
"title": "Disable all metadata collection information"
},
{
"cmd": "fastly compute metadata --enable-build --enable-machine --enable-package",
"title": "Enable specific metadata collection information"
},
{
"cmd": "fastly compute metadata --disable-build --disable-machine --disable-package",
"title": "Disable specific metadata collection information"
}
]
},
"pops": {
"apis": [
"https://developer.fastly.com/reference/api/utils/pops/#list-pops"
Expand Down
6 changes: 2 additions & 4 deletions pkg/app/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,11 +186,9 @@ func Exec(data *global.Data) error {
return nil
}

// FIXME: Tweak messaging before for 10.7.0
// To learn more about what data is being collected, why, and how to disable it: https://developer.fastly.com/reference/cli/
metadataDisable, _ := strconv.ParseBool(data.Env.WasmMetadataDisable)
if slices.Contains(data.Args, "--metadata-enable") && !metadataDisable && !data.Config.CLI.MetadataNoticeDisplayed && commandCollectsData(commandName) {
text.Important(data.Output, "The Fastly CLI is configured to collect data related to Wasm builds (e.g. compilation times, resource usage, and other non-identifying data). To learn more about our data & privacy policies visit https://www.fastly.com/trust. Join the conversation https://bit.ly/wasm-metadata")
if !slices.Contains(data.Args, "--metadata-disable") && !metadataDisable && !data.Config.CLI.MetadataNoticeDisplayed && commandCollectsData(commandName) {
text.Important(data.Output, "The Fastly CLI is configured to collect data related to Wasm builds (e.g. compilation times, resource usage, and other non-identifying data). To learn more about what data is being collected, why, and how to disable it: https://developer.fastly.com/reference/cli/")
text.Break(data.Output)
data.Config.CLI.MetadataNoticeDisplayed = true
err := data.Config.Write(data.ConfigPath)
Expand Down
43 changes: 4 additions & 39 deletions pkg/commands/compute/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ type BuildCommand struct {
// e.g. serve, publish, hashsum, hash-files
// This is so they can set values appropriately before calling Build.Exec().
Flags Flags
MetadataEnable bool
MetadataDisable bool
MetadataFilterEnvVars string
MetadataShow bool
}
Expand All @@ -79,14 +79,12 @@ func NewBuildCommand(parent cmd.Registerer, g *global.Data) *BuildCommand {
c.CmdClause.Flag("env", "The manifest environment config to use (e.g. 'stage' will attempt to read 'fastly.stage.toml')").StringVar(&c.Flags.Env)
c.CmdClause.Flag("include-source", "Include source code in built package").BoolVar(&c.Flags.IncludeSrc)
c.CmdClause.Flag("language", "Language type").StringVar(&c.Flags.Lang)
c.CmdClause.Flag("metadata-disable", "Disable Wasm binary metadata annotations").BoolVar(&c.MetadataDisable)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").StringVar(&c.MetadataFilterEnvVars)
c.CmdClause.Flag("metadata-show", "Inspect the Wasm binary metadata").BoolVar(&c.MetadataShow)
c.CmdClause.Flag("package-name", "Package name").StringVar(&c.Flags.PackageName)
c.CmdClause.Flag("timeout", "Timeout, in seconds, for the build compilation step").IntVar(&c.Flags.Timeout)

// Hidden
c.CmdClause.Flag("metadata-enable", "Feature flag to trial the Wasm binary metadata annotations").Hidden().BoolVar(&c.MetadataEnable)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Hidden().StringVar(&c.MetadataFilterEnvVars)

return &c
}

Expand Down Expand Up @@ -209,36 +207,8 @@ func (c *BuildCommand) Exec(in io.Reader, out io.Writer) (err error) {
"metadata", "add", "bin/main.wasm", metadataProcessedBy,
}

// FIXME: For feature launch replace enable flag with disable equivalent.
// e.g. define --metadata-disable and check for that first with env var.
// Also make sure hidden flags (across all composite commands) aren't hidden.
// Also update the run.go app to remove the message which displays a warning.
// Also one final release un-hide the metadata command and add metadata.json examples
// e.g.
/*
"metadata": {
"examples": [
{
"cmd": "fastly compute metadata --enable",
"title": "Enable all metadata collection information"
},
{
"cmd": "fastly compute metadata --disable",
"title": "Disable all metadata collection information"
},
{
"cmd": "fastly compute metadata --enable-build --enable-machine --enable-package",
"title": "Enable specific metadata collection information"
},
{
"cmd": "fastly compute metadata --disable-build --disable-machine --disable-package",
"title": "Disable specific metadata collection information"
}
]
},
*/
metadataDisable, _ := strconv.ParseBool(c.Globals.Env.WasmMetadataDisable)
if c.MetadataEnable && !metadataDisable {
if !c.MetadataDisable && !metadataDisable {
if err := c.AnnotateWasmBinaryLong(wasmtools, metadataArgs, language); err != nil {
return err
}
Expand Down Expand Up @@ -336,11 +306,6 @@ func (c *BuildCommand) Exec(in io.Reader, out io.Writer) (err error) {

out = originalOut
text.Success(out, "\nBuilt package (%s)", dest)

// FIXME: Remove this notice in the CLI version 10.7.0
if !c.Globals.Flags.Quiet {
text.Important(out, "\nIn the next release (10.7.0), the Fastly CLI will collect data related to Wasm builds. If you have questions, comments or feedback, join the discussion at https://bit.ly/wasm-metadata")
}
return nil
}

Expand Down
12 changes: 5 additions & 7 deletions pkg/commands/compute/hashfiles.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ type HashFilesCommand struct {
env cmd.OptionalString
includeSrc cmd.OptionalBool
lang cmd.OptionalString
metadataEnable cmd.OptionalBool
metadataDisable cmd.OptionalBool
metadataFilterEnvVars cmd.OptionalString
metadataShow cmd.OptionalBool
packageName cmd.OptionalString
Expand All @@ -58,16 +58,14 @@ func NewHashFilesCommand(parent cmd.Registerer, g *global.Data, build *BuildComm
c.CmdClause.Flag("env", "The manifest environment config to use (e.g. 'stage' will attempt to read 'fastly.stage.toml')").Action(c.env.Set).StringVar(&c.env.Value)
c.CmdClause.Flag("include-source", "Include source code in built package").Action(c.includeSrc.Set).BoolVar(&c.includeSrc.Value)
c.CmdClause.Flag("language", "Language type").Action(c.lang.Set).StringVar(&c.lang.Value)
c.CmdClause.Flag("metadata-disable", "Disable Wasm binary metadata annotations").Action(c.metadataDisable.Set).BoolVar(&c.metadataDisable.Value)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Action(c.metadataFilterEnvVars.Set).StringVar(&c.metadataFilterEnvVars.Value)
c.CmdClause.Flag("metadata-show", "Inspect the Wasm binary metadata").Action(c.metadataShow.Set).BoolVar(&c.metadataShow.Value)
c.CmdClause.Flag("package", "Path to a package tar.gz").Short('p').StringVar(&c.Package)
c.CmdClause.Flag("package-name", "Package name").Action(c.packageName.Set).StringVar(&c.packageName.Value)
c.CmdClause.Flag("skip-build", "Skip the build step").BoolVar(&c.SkipBuild)
c.CmdClause.Flag("timeout", "Timeout, in seconds, for the build compilation step").Action(c.timeout.Set).IntVar(&c.timeout.Value)

// Hidden
c.CmdClause.Flag("metadata-enable", "Feature flag to trial the Wasm binary metadata annotations").Hidden().Action(c.metadataEnable.Set).BoolVar(&c.metadataEnable.Value)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Hidden().Action(c.metadataFilterEnvVars.Set).StringVar(&c.metadataFilterEnvVars.Value)

return &c
}

Expand Down Expand Up @@ -165,8 +163,8 @@ func (c *HashFilesCommand) Build(in io.Reader, out io.Writer) error {
if c.timeout.WasSet {
c.buildCmd.Flags.Timeout = c.timeout.Value
}
if c.metadataEnable.WasSet {
c.buildCmd.MetadataEnable = c.metadataEnable.Value
if c.metadataDisable.WasSet {
c.buildCmd.MetadataDisable = c.metadataDisable.Value
}
if c.metadataFilterEnvVars.WasSet {
c.buildCmd.MetadataFilterEnvVars = c.metadataFilterEnvVars.Value
Expand Down
12 changes: 5 additions & 7 deletions pkg/commands/compute/hashsum.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ type HashsumCommand struct {
env cmd.OptionalString
includeSrc cmd.OptionalBool
lang cmd.OptionalString
metadataEnable cmd.OptionalBool
metadataDisable cmd.OptionalBool
metadataFilterEnvVars cmd.OptionalString
metadataShow cmd.OptionalBool
packageName cmd.OptionalString
Expand All @@ -48,16 +48,14 @@ func NewHashsumCommand(parent cmd.Registerer, g *global.Data, build *BuildComman
c.CmdClause.Flag("env", "The manifest environment config to use (e.g. 'stage' will attempt to read 'fastly.stage.toml')").Action(c.env.Set).StringVar(&c.env.Value)
c.CmdClause.Flag("include-source", "Include source code in built package").Action(c.includeSrc.Set).BoolVar(&c.includeSrc.Value)
c.CmdClause.Flag("language", "Language type").Action(c.lang.Set).StringVar(&c.lang.Value)
c.CmdClause.Flag("metadata-disable", "Disable Wasm binary metadata annotations").Action(c.metadataDisable.Set).BoolVar(&c.metadataDisable.Value)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Action(c.metadataFilterEnvVars.Set).StringVar(&c.metadataFilterEnvVars.Value)
c.CmdClause.Flag("metadata-show", "Inspect the Wasm binary metadata").Action(c.metadataShow.Set).BoolVar(&c.metadataShow.Value)
c.CmdClause.Flag("package", "Path to a package tar.gz").Short('p').StringVar(&c.PackagePath)
c.CmdClause.Flag("package-name", "Package name").Action(c.packageName.Set).StringVar(&c.packageName.Value)
c.CmdClause.Flag("skip-build", "Skip the build step").BoolVar(&c.SkipBuild)
c.CmdClause.Flag("timeout", "Timeout, in seconds, for the build compilation step").Action(c.timeout.Set).IntVar(&c.timeout.Value)

// Hidden
c.CmdClause.Flag("metadata-enable", "Feature flag to trial the Wasm binary metadata annotations").Hidden().Action(c.metadataEnable.Set).BoolVar(&c.metadataEnable.Value)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Hidden().Action(c.metadataFilterEnvVars.Set).StringVar(&c.metadataFilterEnvVars.Value)

return &c
}

Expand Down Expand Up @@ -169,8 +167,8 @@ func (c *HashsumCommand) Build(in io.Reader, out io.Writer) error {
if c.timeout.WasSet {
c.buildCmd.Flags.Timeout = c.timeout.Value
}
if c.metadataEnable.WasSet {
c.buildCmd.MetadataEnable = c.metadataEnable.Value
if c.metadataDisable.WasSet {
c.buildCmd.MetadataDisable = c.metadataDisable.Value
}
if c.metadataFilterEnvVars.WasSet {
c.buildCmd.MetadataFilterEnvVars = c.metadataFilterEnvVars.Value
Expand Down
2 changes: 1 addition & 1 deletion pkg/commands/compute/metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ type MetadataCommand struct {
func NewMetadataCommand(parent cmd.Registerer, g *global.Data) *MetadataCommand {
var c MetadataCommand
c.Globals = g
c.CmdClause = parent.Command("metadata", "Control what metadata is collected").Hidden()
c.CmdClause = parent.Command("metadata", "Control what metadata is collected")
c.CmdClause.Flag("disable", "Disable all metadata").BoolVar(&c.disable)
c.CmdClause.Flag("disable-build", "Disable metadata for information regarding the time taken for builds and compilation processes").BoolVar(&c.disableBuild)
c.CmdClause.Flag("disable-machine", "Disable metadata for general, non-identifying system specifications (CPU, RAM, operating system)").BoolVar(&c.disableMachine)
Expand Down
12 changes: 5 additions & 7 deletions pkg/commands/compute/publish.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ type PublishCommand struct {
dir cmd.OptionalString
includeSrc cmd.OptionalBool
lang cmd.OptionalString
metadataEnable cmd.OptionalBool
metadataDisable cmd.OptionalBool
metadataFilterEnvVars cmd.OptionalString
metadataShow cmd.OptionalBool
packageName cmd.OptionalString
Expand Down Expand Up @@ -53,6 +53,8 @@ func NewPublishCommand(parent cmd.Registerer, g *global.Data, build *BuildComman
c.CmdClause.Flag("env", "The manifest environment config to use (e.g. 'stage' will attempt to read 'fastly.stage.toml')").Action(c.env.Set).StringVar(&c.env.Value)
c.CmdClause.Flag("include-source", "Include source code in built package").Action(c.includeSrc.Set).BoolVar(&c.includeSrc.Value)
c.CmdClause.Flag("language", "Language type").Action(c.lang.Set).StringVar(&c.lang.Value)
c.CmdClause.Flag("metadata-disable", "Disable Wasm binary metadata annotations").Action(c.metadataDisable.Set).BoolVar(&c.metadataDisable.Value)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Action(c.metadataFilterEnvVars.Set).StringVar(&c.metadataFilterEnvVars.Value)
c.CmdClause.Flag("metadata-show", "Inspect the Wasm binary metadata").Action(c.metadataShow.Set).BoolVar(&c.metadataShow.Value)
c.CmdClause.Flag("package", "Path to a package tar.gz").Short('p').Action(c.pkg.Set).StringVar(&c.pkg.Value)
c.CmdClause.Flag("package-name", "Package name").Action(c.packageName.Set).StringVar(&c.packageName.Value)
Expand Down Expand Up @@ -80,10 +82,6 @@ func NewPublishCommand(parent cmd.Registerer, g *global.Data, build *BuildComman
})
c.CmdClause.Flag("timeout", "Timeout, in seconds, for the build compilation step").Action(c.timeout.Set).IntVar(&c.timeout.Value)

// Hidden
c.CmdClause.Flag("metadata-enable", "Feature flag to trial the Wasm binary metadata annotations").Hidden().Action(c.metadataEnable.Set).BoolVar(&c.metadataEnable.Value)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Hidden().Action(c.metadataFilterEnvVars.Set).StringVar(&c.metadataFilterEnvVars.Value)

return &c
}

Expand Down Expand Up @@ -114,8 +112,8 @@ func (c *PublishCommand) Exec(in io.Reader, out io.Writer) (err error) {
if c.timeout.WasSet {
c.build.Flags.Timeout = c.timeout.Value
}
if c.metadataEnable.WasSet {
c.build.MetadataEnable = c.metadataEnable.Value
if c.metadataDisable.WasSet {
c.build.MetadataDisable = c.metadataDisable.Value
}
if c.metadataFilterEnvVars.WasSet {
c.build.MetadataFilterEnvVars = c.metadataFilterEnvVars.Value
Expand Down
12 changes: 5 additions & 7 deletions pkg/commands/compute/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ type ServeCommand struct {
dir cmd.OptionalString
includeSrc cmd.OptionalBool
lang cmd.OptionalString
metadataEnable cmd.OptionalBool
metadataDisable cmd.OptionalBool
metadataFilterEnvVars cmd.OptionalString
metadataShow cmd.OptionalBool
packageName cmd.OptionalString
Expand Down Expand Up @@ -85,6 +85,8 @@ func NewServeCommand(parent cmd.Registerer, g *global.Data, build *BuildCommand)
c.CmdClause.Flag("file", "The Wasm file to run").Default("bin/main.wasm").StringVar(&c.file)
c.CmdClause.Flag("include-source", "Include source code in built package").Action(c.includeSrc.Set).BoolVar(&c.includeSrc.Value)
c.CmdClause.Flag("language", "Language type").Action(c.lang.Set).StringVar(&c.lang.Value)
c.CmdClause.Flag("metadata-disable", "Disable Wasm binary metadata annotations").Action(c.metadataDisable.Set).BoolVar(&c.metadataDisable.Value)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Action(c.metadataFilterEnvVars.Set).StringVar(&c.metadataFilterEnvVars.Value)
c.CmdClause.Flag("metadata-show", "Inspect the Wasm binary metadata").Action(c.metadataShow.Set).BoolVar(&c.metadataShow.Value)
c.CmdClause.Flag("package-name", "Package name").Action(c.packageName.Set).StringVar(&c.packageName.Value)
c.CmdClause.Flag("profile-guest", "Profile the Wasm guest under Viceroy (requires Viceroy 0.9.1 or higher). View profiles at https://profiler.firefox.com/.").BoolVar(&c.profileGuest)
Expand All @@ -96,10 +98,6 @@ func NewServeCommand(parent cmd.Registerer, g *global.Data, build *BuildCommand)
c.CmdClause.Flag("watch", "Watch for file changes, then rebuild project and restart local server").BoolVar(&c.watch)
c.CmdClause.Flag("watch-dir", "The directory to watch files from (can be relative or absolute). Defaults to current directory.").Action(c.watchDir.Set).StringVar(&c.watchDir.Value)

// Hidden
c.CmdClause.Flag("metadata-enable", "Feature flag to trial the Wasm binary metadata annotations").Hidden().Action(c.metadataEnable.Set).BoolVar(&c.metadataEnable.Value)
c.CmdClause.Flag("metadata-filter-envvars", "Redact specified environment variables from [scripts.env_vars] using comma-separated list").Hidden().Action(c.metadataFilterEnvVars.Set).StringVar(&c.metadataFilterEnvVars.Value)

return &c
}

Expand Down Expand Up @@ -261,8 +259,8 @@ func (c *ServeCommand) Build(in io.Reader, out io.Writer) error {
if c.timeout.WasSet {
c.build.Flags.Timeout = c.timeout.Value
}
if c.metadataEnable.WasSet {
c.build.MetadataEnable = c.metadataEnable.Value
if c.metadataDisable.WasSet {
c.build.MetadataDisable = c.metadataDisable.Value
}
if c.metadataFilterEnvVars.WasSet {
c.build.MetadataFilterEnvVars = c.metadataFilterEnvVars.Value
Expand Down

0 comments on commit 058901a

Please sign in to comment.