-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[sdk] add optional display name and tag fields to project templates #14587
Conversation
Changelog[uncommitted] (2023-11-18)Features
|
// Description is an optional description of the template. | ||
Description string `json:"description,omitempty" yaml:"description,omitempty"` | ||
// Quickstart contains optional text to be displayed after template creation. | ||
Quickstart string `json:"quickstart,omitempty" yaml:"quickstart,omitempty"` | ||
// Config is an optional template config. | ||
Config map[string]ProjectTemplateConfigValue `json:"config,omitempty" yaml:"config,omitempty"` | ||
// Important indicates the template is important and should be listed by default. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
quick note on this change - it looks like this used to be the case but is no longer true since templatesToOptionArrayAndMap is always called with showAll
as true
What's the exceptions for how these will work with the CLI? DisplayName I guess would be used when listing the template in "new", but not clear what "tags" would be used for? Should that be used for the default value of stack tags? If its only for the service maybe it should be named more explicitly that it's only used by the cloud console? |
Yeah, display name could be used for listing out templates from the |
I suspect we'll get a few confusions over tags getting confused with stack tags but not sure there's much to help there. |
Makes sense how that could potentially be confusing since these tags are unique to the template and not necessarily the stack. I think there are a few options:
What do you think @Frassle? |
Agree the presence of How about
I do think |
How about something like |
I like this too — it’s clear and leaves room for other kinds of metadata, beyond just tags/labels. Although it’s somewhat less clear to me how it’d work at the CLI. |
If I read the change here correctly, it'll be present under template:
tags: ... That's pretty clear to me that this is for the template, and not anything else. |
I can swap to Updated :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That CI error isn't due to your change but due to template updating and CI not handling it.
But kinda handy this didn't merge because I noticed while trying this out that "sdk/go/common/workspace/project.json" needs updating otherwise these templates refuse to load!
I think a couple of entries like:
"displayName": {
"description":"Optional name to use as the display name of the template.",
"type":[
"string",
"null"
]
},
and
"metadata":{
"description":"Metadata is a map of key/value pairs to associate with the template.",
"type":[
"object",
"null"
],
"additionalProperties":{
"type": "string"
}
In the template/properties block covers it.
thanks for catching that @Frassle! will update and push |
### Features - [cli/config] Include config values from ESC in `pulumi config` [#14560](#14560) - [cli/config] Add commands for managing stack environments [#14628](#14628) - [cli/config] Add a command to create an ESC environment from stack config [#14634](#14634) - [sdk/go] add optional display name and tag fields to project templates [#14587](#14587) - [cli/plugin] Load policy packs in parallel on startup to reduce startup time [#14495](#14495) - [sdkgen/{go,nodejs,python}] Resource methods with plain: true outputs can now return plain values without an Output wrapper. In particular, this feature enables resource methods to serve as explicit provider factories by returning preconfigured explicit providers. [#13592](#13592) ### Bug Fixes - [auto/go] Fix a datarace in cloning git repos. [#14643](#14643) - [auto/go] Fixes event stream lag on windows runtime [#14659](#14659) - [engine] Engine now correctly handles any resource name. [#14107](#14107) - [engine] Fix a panic in cancellation. [#14612](#14612) - [engine] Fix root directory passed to langauge plugins when starting pulumi in a subfolder. [#14684](#14684) - [sdkgen] Schemas now validate that 'urn' and 'id' are not used as resource output properties. [#14637](#14637) - [sdkgen] Fixes marshalling the "plain" flag from object or resource properties [#14648](#14648) - [programgen/nodejs] Fix generated readFile function so that it includes the encoding and returns a string [#14633](#14633) - [sdkgen/{dotnet,go,nodejs,python}] No longer writing out name and project from alias definitions into SDKs, only type [#14625](#14625) - [sdk/go] Fix optional handling on nested props [#14629](#14629) - [sdkgen/go] Fixes plain and optional properties for generated types for Go SDKs using generics [#14616](#14616) - [sdkgen/go] Generate non-plain type variants for types used as inputs inside unions [#14679](#14679) - [sdk/python] Introduces RuntimeError when we detect a cycle upon adding dependencies to the graph. Additionally adds "PULUMI_ERROR_ON_DEPENDENCY_CYCLES" as a new environment variable to control this behavior. Set to `False` to return to the previous behavior, which could potentially re-introduce infinite hangs for some programs. [#14597](#14597)
Description
Add support for two new fields to a project template block:
DisplayName
which is used to store a user friendly template nameTags
which is used to store additional template metadata that is author-defined (e.g. team, environment, etc.)This information will be used in the near-term within the console but longer term could also be used within the CLI.
Checklist
make tidy
to update any new dependenciesmake lint
to verify my code passes the lint checkgofumpt
Since this change only adds optional fields I didn't think tests would be worthwhile. I can add tests if it's thought they would be valuable.
make changelog
and committed thechangelog/pending/<file>
documenting my change