Open-Source Wikis

/

Pulumi

/

By the numbers

pulumi/pulumi

By the numbers

Data collected on 2026-04-30 from the master branch at commit caf13d6d14.

Size

xychart-beta horizontal
    title "Lines of code by language"
    x-axis ["Go", "Python", "TypeScript"]
    y-axis "Lines" 0 --> 220000
    bar [201568, 147029, 144577]
Language Files Lines
Go 4,282 201,568
Python 3,706 147,029
TypeScript 2,593 144,577
Protobuf 18 (services + messages)

Numbers are produced by find -name "*.<ext>" | wc on the working tree (excludes .git/, node_modules/, etc.). The Python and TypeScript counts are inflated by codegen test fixtures under pkg/codegen/{python,nodejs}/testdata/; raw source code in the SDK proper is smaller.

The largest source files

The engine has a handful of files that carry a disproportionate share of the codebase. New contributors regularly hit them:

File Approx size Role
pkg/resource/deploy/step_generator.go ~137 KB Diffs old vs new and emits steps
pkg/resource/deploy/source_eval.go ~123 KB Iterator that pulls events from the language host
pkg/resource/deploy/step.go ~88 KB Step state machine: Same, Create, Update, Delete, Replace, ...
sdk/go/pulumi/types_builtins.go ~480 KB (generated) Output types for every primitive — generated from sdk/go/pulumi/generate/
sdk/go/pulumi/context.go ~103 KB The Go SDK's resource registration core
sdk/go/pulumi/resource.go ~41 KB Resource interfaces, options, parents, dependencies
pkg/backend/diy/backend.go ~52 KB DIY backend implementation
pkg/backend/httpstate/backend.go ~93 KB Pulumi Cloud backend implementation
sdk/nodejs/output.ts ~52 KB The Node SDK's Output<T>
sdk/nodejs/resource.ts ~68 KB Node SDK resources
pkg/cmd/pulumi/pulumi.go ~33 KB Top-level CLI command tree

Activity

  • Total commits: 15,092 (since 2016-10-08)
  • Tags / releases: 1,401
  • Latest tag: v3.233.0 (followed by a freeze for v2.233.0)
  • Commits in the last 90 days: 612
  • Unique authors all-time: 438

Top contributors in the last 6 months

(Excludes bot accounts. Pulled from git log --since="6 months ago".)

Contributor Commits
Ian Wahbe 190
Thomas Gummerer 181
Julien (Bisconti) 169
Fraser Ashyggton 133
Tom Harding 46
Justin Van Patten 31
Fraser Waters 28
Tom 🐈‍⬛ 27

Bot-attributed work

In the last 90 days, 134 commits (≈ 22% of merged commits) carry a Co-authored-by: trailer. Counted bots and tooling include pulumi-renovate[bot] (43 commits in 6 months) and Pulumi Bot (30 commits). This is a lower bound on AI- or automation-assisted work — inline AI tools and developer-side scripts leave no trace in the trailer.

Test ratio

  • Total Go files: 4,282
  • *_test.go files: ~1,300 (a third of Go source)
  • Largest test surface: pkg/engine/lifecycletest/ (deployment property/fuzz tests) and pkg/codegen/testdata/ (golden code-gen fixtures, hundreds of subdirectories per target language)

The pulumi/pulumi test suite is split into "fast" tests (no I/O, no plugins) and "all" tests (which build and link the CLI). Lifecycle fuzz tests run 10,000 Rapid checks per invocation by default — see LIFECYCLE_TEST_FUZZ_CHECKS in the Makefile.

Modules

The repo is a Go workspace of multiple modules, each with its own go.mod:

Module Path Purpose
github.com/pulumi/pulumi/pkg/v3 pkg/ Engine, CLI, codegen, backends
github.com/pulumi/pulumi/sdk/v3 sdk/ Core Go SDK + shared types
(tests) tests/ Integration / acceptance tests
pulumi-language-go sdk/go/pulumi-language-go/ Go language host
pulumi-language-nodejs sdk/nodejs/cmd/pulumi-language-nodejs/ Node language host
pulumi-language-python sdk/python/cmd/pulumi-language-python/ Python language host
pulumi-pcl sdk/pcl/ PCL host + library

Languages of user programs supported

Language Status SDK in this repo?
TypeScript / JavaScript Stable Yes — sdk/nodejs/
Python Stable Yes — sdk/python/
Go Stable Yes — sdk/go/pulumi/
.NET (C# / F# / VB.NET) Stable No — separate repo
Java Stable No — separate repo
YAML Stable No — separate repo

See also

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

By the numbers – Pulumi wiki | Factory