Skip to content

feat: RFC, PoC and command validator for v2 Typer/SDK migration#76

Draft
Copilot wants to merge 230 commits intomainfrom
copilot/introduce-new-major-version-again
Draft

feat: RFC, PoC and command validator for v2 Typer/SDK migration#76
Copilot wants to merge 230 commits intomainfrom
copilot/introduce-new-major-version-again

Conversation

Copy link

Copilot AI commented Mar 13, 2026

  • Analyze current codebase (24,712 lines, 98 files, 14 dependencies)
  • Create v2 package structure (src/fabric_cli_v2/) alongside v1
  • Core: auth.py — azure-identity based auth (251 lines)
  • Core: config.py — simplified JSON config (149 lines)
  • Core: context.py — context persistence (177 lines)
  • Core: client.py — minimal HTTP client with retry/pagination/LRO (247 lines)
  • Core: types.py — core enums and type definitions (170 lines)
  • Core: output.py — output formatting text/json/table (133 lines)
  • Core: app.py — Typer-based CLI entry point with lazy loading (115 lines)
  • Core: repl.py — interactive REPL mode (87 lines)
  • Commands: fs.py (ls, cd, mkdir, rm, pwd), auth_cmds.py, config_cmds.py
  • Core: validator.py — early failure detection (123 lines)
  • Entry point: fab2 registered in pyproject.toml
  • 66 v2 tests all passing
  • 480 v1 tests still passing
  • Startup: 13x faster — 73ms (v2) vs 972ms (v1)
  • Code: 92% reduction — 1,824 lines (v2) vs 24,712 lines (v1)
  • Code review — fixed v1 version downgrade (1.5.0 restored) and fabric-cicd dependency (>=0.3.1 restored)
  • Security scan — 0 CodeQL alerts, 0 dependency vulnerabilities
Original prompt

I am thinking to introduce a new major version and migrate from argparse to typer for better UX experience, performance, scalability and maintenance. In addition I want to utilize the microsoft-fabric-api python sdk for standard rest api calls to fabric. Migrate the relevant clients to it. Plan also early failure detection before executing api calls if some api or type is not supported. Analyze what is required for it, how to do so, if makes sense, if it will bring value or not. Suggest an approach.


📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.

ayeshurun and others added 30 commits September 17, 2025 17:11
chore: Introduce release workflowc
Copilot AI and others added 2 commits March 13, 2026 16:04
- RFC 001: Comprehensive analysis of Typer migration, SDK integration, and early failure detection
- Typer PoC: main_app.py, config_app.py, typer_args.py compatibility bridge
- SDK Adapter PoC: sdk_adapter.py showing microsoft-fabric-api integration pattern
- Command Validator: fab_command_validator.py for early failure detection using command_support.yaml
- Tests: 49 new tests all passing (validator, TyperArgs, SDK adapter)

Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com>
…cstrings

Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com>
Copilot AI changed the title [WIP] Add migration from argparse to typer and implement microsoft-fabric-api feat: RFC, PoC and command validator for v2 Typer/SDK migration Mar 13, 2026
Copilot AI requested a review from ayeshurun March 13, 2026 16:09
Copilot AI and others added 2 commits March 15, 2026 09:31
New package `fabric_cli_v2` (1,824 lines vs v1's 24,712 = 92% reduction):
- Typer-based CLI with rich help and auto-completion
- azure-identity auth (replaces 785-line MSAL module)
- Simplified JSON config with typed defaults
- Context persistence (per-process, configurable)
- Minimal HTTP client with retry/pagination/LRO
- Output formatting (text/json/table)
- Command validator (early failure detection)
- Interactive REPL with prompt_toolkit
- Entry point: fab2
- 66 tests all passing, 13x faster startup (73ms vs 972ms)

Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com>
Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com>
Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com>
Copilot AI and others added 2 commits March 15, 2026 19:23
… guard clarification

Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com>
Co-authored-by: ayeshurun <98805507+ayeshurun@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.

2 participants