Skip to content

Removal of bicep-types submodule with migration to pnpm#11139

Open
brooke-hamilton wants to merge 29 commits intoradius-project:mainfrom
brooke-hamilton:brooke-hamilton/remove-bicep-types-submodule-1
Open

Removal of bicep-types submodule with migration to pnpm#11139
brooke-hamilton wants to merge 29 commits intoradius-project:mainfrom
brooke-hamilton:brooke-hamilton/remove-bicep-types-submodule-1

Conversation

@brooke-hamilton
Copy link
Member

@brooke-hamilton brooke-hamilton commented Feb 1, 2026

Description

This PR removes the bicep-types git submodule and migrates JavaScript/TypeScript package management from npm to pnpm. The bicep-types dependency is now fetched as a git dependency and built via a postinstall script, simplifying the developer experience.

Key changes:

  • Remove the bicep-types git submodule and .gitmodules file
  • Migrate from npm (package-lock.json) to pnpm (pnpm-lock.yaml) for:
    • typespec/
    • hack/bicep-types-radius/src/generator/
    • hack/bicep-types-radius/src/autorest.bicep/
  • Update GitHub workflows to use pnpm instead of npm
  • Update devcontainer configuration for pnpm
  • Update Makefiles and build scripts
  • Add migration guide for developers with existing clones
  • Add a root package.json to ensure dev dependencies are at consistent versions and updated with dependabot.

Type of change

  • This pull request is a minor refactor, code cleanup, test improvement, or other maintenance task and does not change the functionality of Radius (issue link optional).

Testing

  1. Checkout the PR branch
  2. Follow the contributing guide included with this PR at docs/contributing/bicep-types-migration-guide.md.

Contributor checklist

Please verify that the PR meets the following requirements, where applicable:

  • An overview of proposed schema changes is included in a linked GitHub issue.
    • Yes
    • Not applicable
  • A design document PR is created in the design-notes repository, if new APIs are being introduced.
    • Yes
    • Not applicable
  • The design document has been reviewed and approved by Radius maintainers/approvers.
    • Yes
    • Not applicable
  • A PR for the samples repository is created, if existing samples are affected by the changes in this PR.
    • Yes
    • Not applicable
  • A PR for the documentation repository is created, if the changes in this PR affect the documentation or any user facing updates are made.
    • Yes
    • Not applicable
  • A PR for the recipes repository is created, if existing recipes are affected by the changes in this PR.
    • Yes
    • Not applicable

Related PRs:

Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the bicep-types git submodule and migrates the repo’s JS/TS dependency management (notably typespec/ and hack/bicep-types-radius/) from npm to pnpm, updating workflows, devcontainer setup, and developer docs accordingly.

Changes:

  • Removed bicep-types submodule wiring (bicep-types, .gitmodules) and submodule-related build checks.
  • Added pnpm lockfiles and updated build/generation scripts to use pnpm.
  • Updated GitHub workflows, devcontainer bootstrap, and contributor docs (including a migration guide).

Reviewed changes

Copilot reviewed 23 out of 29 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
typespec/pnpm-lock.yaml Adds pnpm lockfile for TypeSpec tooling.
typespec/package-lock.json Removes npm lockfile in favor of pnpm.
hack/bicep-types-radius/src/generator/pnpm-lock.yaml Adds pnpm lockfile for the generator package.
hack/bicep-types-radius/src/generator/package.json Switches bicep-types source to a git dependency and adds postinstall build/link logic.
hack/bicep-types-radius/src/generator/.npmrc Configures pnpm behavior for the generator package.
hack/bicep-types-radius/src/autorest.bicep/package.json Switches bicep-types source to a git dependency and adds postinstall build/link logic.
hack/bicep-types-radius/src/autorest.bicep/.npmrc Configures pnpm behavior for the autorest extension package.
docs/contributing/contributing-code/contributing-code-prerequisites/README.md Updates codegen prerequisites from npm to pnpm commands.
docs/contributing/contributing-code/contributing-code-building/README.md Removes submodule-related build note.
docs/contributing/bicep-types-migration-guide.md Adds migration steps for existing clones.
build/test.mk Updates oav installation guidance to pnpm.
build/generate.mk Updates generator prerequisites and bicep-types generation flow to pnpm.
build/build.mk Removes submodule existence/version checks from make build.
bicep-types Removes the submodule entry.
.gitmodules Removes submodule configuration.
.github/workflows/validate-bicep.yaml Removes submodule checkout and adds pnpm setup.
.github/workflows/publish-docs.yaml Removes submodule checkout and migrates TypeSpec/autorest/oav installs to pnpm.
.github/workflows/long-running-azure.yaml Removes submodule checkout.
.github/workflows/lint.yaml Removes submodule checkout and migrates TypeSpec/autorest/oav installs to pnpm.
.github/workflows/functional-test-noncloud.yaml Removes submodule checkout and adds pnpm setup.
.github/workflows/functional-test-cloud.yaml Removes submodule checkout.
.github/workflows/codeql.yml Removes submodule checkout and adds pnpm setup for JS analysis.
.github/workflows/build.yaml Removes submodule checkout and adds pnpm setup before bicep-types generation.
.github/dependabot.yml Replaces submodule updates with npm-ecosystem updates for the pnpm-managed projects.
.devcontainer/post-create.sh Migrates devcontainer bootstrap steps to pnpm and adds pnpm configuration.
.devcontainer/devcontainer.json Configures devcontainer Node feature to install pnpm v10.
Files not reviewed (4)
  • hack/bicep-types-radius/src/generator/package-lock.json: Language not supported
  • hack/bicep-types-radius/src/generator/pnpm-lock.yaml: Language not supported
  • typespec/package-lock.json: Language not supported
  • typespec/pnpm-lock.yaml: Language not supported

Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
DariuszPorowski
DariuszPorowski previously approved these changes Feb 2, 2026
Copy link
Member

@DariuszPorowski DariuszPorowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just one suggestion for dev container

Co-authored-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
sylvainsf added a commit that referenced this pull request Feb 4, 2026
# Description

Fixes a bug introduced in PR #11169 where org members (like PR #11139
from @brooke-hamilton) were incorrectly being blocked by the approval
gate.

The `&&` operator has higher precedence than `||` in GitHub expressions.
Without parentheses, the expression was incorrectly evaluating to
`'external-contributor-approval'` for ALL PRs, blocking org members.

Added parentheses to group the trusted user check so it correctly
returns empty string (no approval needed) for dependabot and org
members.

## Type of change

- This pull request is a minor refactor, code cleanup, test improvement,
or other maintenance task and doesn't change the functionality of Radius
(issue link optional).

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- An overview of proposed schema changes is included in a linked GitHub
issue.
    - [ ] Yes
    - [x] Not applicable
- A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
    - [ ] Yes
    - [x] Not applicable
- The design document has been reviewed and approved by Radius
maintainers/approvers.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable
@brooke-hamilton brooke-hamilton had a problem deploying to external-contributor-approval February 4, 2026 17:55 — with GitHub Actions Error
@sylvainsf sylvainsf temporarily deployed to external-contributor-approval February 4, 2026 18:21 — with GitHub Actions Inactive
@sylvainsf sylvainsf temporarily deployed to external-contributor-approval February 4, 2026 18:43 — with GitHub Actions Inactive
Copilot AI added a commit that referenced this pull request Feb 5, 2026
This adds pnpm installation steps to workflows that need it:
- build.yaml (generate-bicep-types job)
- lint.yaml
- functional-test-noncloud.yaml
- codeql.yml (for JavaScript analysis)
- publish-docs.yaml
- validate-bicep.yaml

This is a prerequisite for PR #11139 which migrates the codebase to use pnpm.

Co-authored-by: brooke-hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
@brooke-hamilton brooke-hamilton requested a deployment to external-contributor-approval February 5, 2026 15:46 — with GitHub Actions Waiting
@radius-functional-tests
Copy link

radius-functional-tests bot commented Feb 5, 2026

Radius functional test overview

🔍 Go to test action run

Click here to see the test run details
Name Value
Repository brooke-hamilton/radius
Commit ref a24d974
Unique ID func00dda5099a
Image tag pr-func00dda5099a
  • gotestsum 1.13.0
  • KinD: v0.29.0
  • Dapr: 1.14.4
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-func00dda5099a
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-func00dda5099a
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-func00dda5099a
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-func00dda5099a
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-func00dda5099a
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
❌ Test recipe publishing failed

Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants