Skip to content

Standardize language overview pages #16436

@jkodroff

Description

@jkodroff

The overview page for each language (e.g. https://www.pulumi.com/docs/iac/languages-sdks/javascript/) except YAML should be about the basic requirements and capabilities of the language and include each of the following sections:

  • Intro:
    • Explain the main advantages of general purpose languages: familiar syntax, ability to consume packages from the language ecosystem, all tooling (IDEs, unit testing, etc.) works as-expected with no additional stuff (like plugins) required.
  • Installation requirements
    • Runtime: What versions do we support?
    • Package managers: What versions do we support, and to what extent? (Made up example: npm is supported, bun is experimental)
    • If applicable (Node, .NET, Java), what languages do we support on top of the runtime, and to what extent? (IOW, what's possible vs. explicitly supported by Pulumi.)
  • Entrypoint:
    • The fastest way to get started is to use pulumi new $LANGUAGE. We have more templates that can be discovered via pulumi new with no params, or you can initialize a Pulumi program by supplying a specific URL to the pulumi new command, and give an example. See the pulumi new command docs for full details.
    • Explain how the engine finds the entrypoint of a program written in the language.
  • Defining resources: Explain in brief what writing a Pulumi program entails
    • Declare resources, usually using constructors (Go uses factory methods)
    • Resources are immutable once declared in your program
    • Stack outputs can be used to allow values in your program to be read from the command line or other Pulumi programs
    • The Pulumi SDK provides constructs (? - find a better word here) for working with working with key Pulumi concepts like inputs and outputs, stack outputs, etc. (link to specific Concepts pages)
    • Useful links (link where it's applicable in the text):
  • Program execution:
    • Explain that programs are most commonly executed via the Pulumi CLI
    • Automation API allows you to flip this dependency and control the Pulumi CLI as if it was an SDK, allowing you to embed Pulumi operations in regular $LANGUAGE code and execute your Pulumi code like any other CLI program in $LANGUAGE.
  • Standard links for every language:
    • Pulumi SDK (explain what it contains), also note dev version support if needed
    • Pulumi Policy SDK (if it exists for the language)
    • See the Registry for docs and examples for specific resources tied to a given provider
    • Unit testing
    • Integration testing
  • Additional links for any language-specific sub-pages (or put them inline when they are more relevant)

Individual issues for each language:

Metadata

Metadata

Assignees

Labels

kind/epicLarge new features or investments

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions