Skip to content

Design spec for long-running tests using current release#132

Merged
brooke-hamilton merged 43 commits intomainfrom
001-lrt-current-release
Jan 9, 2026
Merged

Design spec for long-running tests using current release#132
brooke-hamilton merged 43 commits intomainfrom
001-lrt-current-release

Conversation

@brooke-hamilton
Copy link
Copy Markdown
Member

@brooke-hamilton brooke-hamilton commented Dec 15, 2025

Summary

This PR adds a design specification for updating the Radius long-running tests workflow to use the current official Radius release instead of building from the main branch.

How to Review this PR

This PR was generated from Spec Kit. The primary files to review, in order, are below with readable links to each one:

  • spec.md: generated by spec kit, overall requirements, easy to read, short.
  • plan.md: generated by spec kit.

Optional files to review:

Changes

New Specification (specs/001-lrt-current-release/)

  • spec.md: Feature specification defining user scenarios and requirements for:

    • Running tests against the current release instead of building from main
    • Smart control plane installation that avoids redundant work
    • Graceful upgrade failure handling
    • Simplified workflow with build logic removed
  • plan.md: Implementation plan with phased approach

  • tasks.md: Detailed task breakdown for implementation

  • research.md: Technical research and analysis

  • quickstart.md: Quick reference guide

  • technical-plan-context.md: Planning context document

  • checklists/requirements.md: Requirements checklist

Spec Kit Updates (.specify/, .github/agents/, .github/prompts/)

Updates to the specification authoring toolkit including:

  • New and updated agent definitions for specification workflow
  • Bash and PowerShell scripts for spec automation
  • Updated templates for plans, specs, tasks, and checklists
  • Constitution document with governance principles

Repository Configuration

  • Updated VS Code workspace settings
  • Updated README with spec kit information

Context

This specification defines how to modify the long-running tests GitHub workflow in the radius-project/radius repository to validate the released version of Radius that end users actually consume, rather than a build from the main branch.

brooke-hamilton and others added 24 commits November 6, 2025 10:34
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>
* Add spec-kit PowerShell files
* Adjust instructions to use scripts based on OS condition

---------

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
…ations (#120)

lint scripts with `shfmt`
lint MD with `markdownlint`

---------

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Updated version to 2.0.0 with significant principle additions and redefinitions for multi-repo support.

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
Signed-off-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>
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>
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>
@brooke-hamilton brooke-hamilton requested review from a team as code owners December 15, 2025 16:54
brooke-hamilton and others added 4 commits December 15, 2025 11:59
Signed-off-by: Brooke Hamilton <45323234+brooke-hamilton@users.noreply.github.com>
Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
… agent documentation

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>

### User Story 1 - Run Tests Against Current Release (Priority: P1)

As a Radius maintainer, I want the long-running test workflow to use the current official Radius release instead of building from the main branch, so that tests validate the released version that users actually consume.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

as mentioned, this will result in a change with current process where ensure LRT issues are known/resolved before running a release, that won't happen if we run LRT on official releases only. It may result in finding/addressing issues later, patch releases etc. let's discuss.

- Add step to install CLI via official installer
- Add step to verify CLI installation
- Update PATH configuration
- Move recipe publishing steps to tests job
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could you please share more details on this? What do we mean by tests job?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

There is a workflow job named "tests". The recipe publishing would happen there if the build job is removed.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I should rename that job.

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

/lgtm (updates to plan.md and spec.md)


### User Story 1 - Run Tests Against Current Release (Priority: P1)

As a Radius maintainer, I want the long-running test workflow to use the current official Radius release instead of building from the main branch, so that tests validate the released version that users actually consume.
Copy link
Copy Markdown
Member

@kachawla kachawla Jan 7, 2026

Choose a reason for hiding this comment

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

@brooke-hamilton did you mean to update this to release candidate?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fixed: there is this requirement to cover RC usage, but I also clarified the user story above to say "...current official Radius release or release candidate...".

- **FR-003**: System MUST install and use release candidates when a release candidate is published, treating release candidates as the latest version of Radius.

### Phase 1: Setup (Shared Infrastructure)

- Create `manage-radius-installation.sh` helper script
- Implement version detection logic (parse rad version output, including release candidate version formats like `v0.40.0-rc1`)
Copy link
Copy Markdown
Contributor

@lakshmimsft lakshmimsft Jan 7, 2026

Choose a reason for hiding this comment

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

A change in the table formatting of rad version may cause getting output of parsing using grep/awk to be incorrect, would it be better to parse json using -o json after the command?
upd: okay, i see a reasoning in ln69 of research.md. we could use rad version --cli --output json but that won't help with control plane output.

Copy link
Copy Markdown
Member Author

@brooke-hamilton brooke-hamilton Jan 8, 2026

Choose a reason for hiding this comment

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

I am submitting a PR to Radius today that fixes the json structure of the rad version command. When that gets merged, the helper script can take advantage of it.

Update: the PR is here.

Copy link
Copy Markdown
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

This PR adds a comprehensive design specification for updating the Radius long-running tests workflow to use the current official Radius release instead of building from the main branch. The specification was generated using Spec Kit and provides detailed documentation for implementing this change.

Key Changes

  • New specification defining the transition from building Radius from source to using official releases for long-running tests
  • Implementation plan with phased approach for removing build logic and adding smart control plane installation
  • Technical research documenting CLI commands and version detection strategies

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
specs/001-lrt-current-release/spec.md Feature specification defining user scenarios and functional requirements for running tests against current release
specs/001-lrt-current-release/plan.md Implementation plan with phased approach and constitution checks
specs/001-lrt-current-release/tasks.md Detailed task breakdown organized by user story with 25 implementation tasks
specs/001-lrt-current-release/research.md Technical research covering CLI installation, version detection, and upgrade handling
specs/001-lrt-current-release/quickstart.md Quick reference guide with high-level changes and command examples
specs/001-lrt-current-release/technical-plan-context.md Context document with Radius CLI command documentation and workflow step details
specs/001-lrt-current-release/checklists/requirements.md Requirements checklist validating specification completeness
.github/config/en-custom.txt Updated custom dictionary with new terms (awk, gotestsum, kubeconf, lrt, speckit, wget)
.github/agents/copilot-instructions.md Auto-generated agent instructions documenting active technologies

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

brooke-hamilton and others added 4 commits January 8, 2026 09:22
Co-authored-by: Copilot <175728472+Copilot@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>
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>
@brooke-hamilton brooke-hamilton merged commit c2c20a1 into main Jan 9, 2026
2 checks passed
@brooke-hamilton brooke-hamilton deleted the 001-lrt-current-release branch January 9, 2026 17:46
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.

5 participants