Skip to content

Instantly share code, notes, and snippets.

@m-nash
m-nash / bulk-actions-lro-feedback.md
Created June 19, 2026 19:16
Feedback: Bulk actions (Azure.ResourceManager.Compute.BulkActions, PR #59749) should be modeled as a Bulk LRO

Feedback: Bulk actions should be modeled as a "Bulk LRO"

PR: Azure/azure-sdk-for-net#59749Azure.ResourceManager.Compute.BulkActions

TL;DR

The bulk action APIs (BulkDeallocateOperation, BulkDeleteOperation, BulkStartOperation, BulkHibernateOperation) are effectively long-running operations, but they are surfaced as a plain Response<T> plus a separate BulkGetOperationsStatus polling call. That pushes all of the "is this actually done?" logic onto the customer.

Determining completion is not obvious: the per-resource state is a ScheduledActionOperationState with nine values, and a customer has to know which ones are terminal (Succeeded / Failed / Cancelled) vs. in-flight (PendingScheduling, PendingExecution, Scheduled, Executing, Blocked). They also have to hand-roll the poll loop, the wait interval, and the bookkeeping of which operation IDs are still outstanding.

@m-nash
m-nash / weighted-batching-proposal.md
Last active April 4, 2026 00:13
Proposal: Weighted Test Batching for PR Pipelines

Proposal: Weighted Test Batching for PR Pipelines

Summary

The current PR test pipeline splits packages into batches alphabetically with a fixed batch size. This creates severe runtime imbalance — some batches finish in 8 minutes while others time out at 60+ minutes, causing CI failures unrelated to the code being tested. We propose replacing this with a weighted bin-packing algorithm that balances batches by estimated runtime, eliminating timeouts while reducing the total number of parallel jobs.

The Problem

When a PR changes many service directories, the pipeline creates test batches by splitting packages into fixed-size groups alphabetically. Heavy test suites (Storage, Compute, KeyVault) and lightweight ones (Provisioning packages with 2-3 tests each) get distributed by chance, not by weight.

@m-nash
m-nash / repo-finder-prompt.md
Created March 19, 2026 17:44
Shareable prompt to build a custom Repo Finder skill for Copilot CLI

Build Me a "Repo Finder" Skill for Copilot CLI

I want you to build a Copilot CLI skill that automatically finds a free copy of a git repository on my local machine, claims it, and sets up a working branch — so I can start coding immediately. If no free copy exists, it should create a new clone.

Prerequisites

  • Git must be installed and on PATH
  • GitHub CLI (gh) must be installed, authenticated (gh auth status), and on PATH — used for fork management and PR status checks
  • Copilot CLI skill directory: ~/.copilot/skills/repo-finder/
@m-nash
m-nash / plan.md
Last active March 4, 2026 21:56
Configuration Schema Differences: Microsoft.Extensions.Azure (Old) vs New Config System

Configuration Schema Differences: Microsoft.Extensions.Azure (Old) vs New Config System

Configuration Schema Differences: Microsoft.Extensions.Azure (Old) vs New Config System

Configuration Schema Differences: Microsoft.Extensions.Azure (Old) vs New Config System

This document catalogs every difference between the configuration schema used by the old Microsoft.Extensions.Azure client registration system and the new IConfigurationSection-based system being built. Each finding includes links to the relevant source code in the

@m-nash
m-nash / identity-credential.schema.json
Created February 20, 2026 20:41
Azure.Identity credential schema for JsonSchemaSegment test
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Azure.Identity Credential Definitions",
"definitions": {
"credential": {
"type": "object",
"description": "Credential configuration. Available properties depend on the selected CredentialSource.",
"properties": {
"CredentialSource": {
"type": "string",
@m-nash
m-nash / plan-summary.md
Last active March 16, 2026 20:16
JSON Schema IntelliSense for Azure SDK Client Configuration - Plan Summary

JSON Schema IntelliSense for Azure SDK Client Configuration

Issue: Azure/azure-sdk-for-net#55538

Problem

When customers configure Azure SDK clients via appsettings.json, they get no IntelliSense or validation for well-known sections like Credential, Retry, and Diagnostics. ASP.NET Core customers expect this to "just work" — the same way Logging, Kestrel, and other ASP.NET sections already get IntelliSense via .NET Aspire's JsonSchemaSegment approach.

Approach: JsonSchemaSegment via NuGet