-
Notifications
You must be signed in to change notification settings - Fork 15
Add claude.md file #309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add claude.md file #309
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -28,7 +28,6 @@ dmypy.json | |
|
|
||
| ref/ | ||
| py.typed | ||
| CLAUDE.md | ||
|
|
||
| .env.claude/ | ||
| .claude/ | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,85 @@ | ||||||||||||||||||
| # CLAUDE.md | ||||||||||||||||||
|
|
||||||||||||||||||
| This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. | ||||||||||||||||||
|
|
||||||||||||||||||
| ## Project Overview | ||||||||||||||||||
|
|
||||||||||||||||||
| Microsoft Teams Python SDK — a UV workspace with multiple packages providing APIs, common utilities, and integrations for Microsoft Teams. | ||||||||||||||||||
|
|
||||||||||||||||||
| ## Development Setup | ||||||||||||||||||
|
|
||||||||||||||||||
| ### Prerequisites | ||||||||||||||||||
| - UV >= 0.9.8 | ||||||||||||||||||
|
||||||||||||||||||
| - UV >= 0.9.8 | |
| - UV >= 0.8.11 |
Copilot
AI
Mar 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
“ruff bans unittest” is misleading in this repo: the Ruff config only bans importing the unittest framework module, while the test suite uses unittest.mock in many places. Consider rewording this to clarify that unittest.TestCase-style tests are discouraged, but unittest.mock is acceptable/used.
| - **Test framework**: pytest + pytest-asyncio (ruff bans unittest) | |
| - **Test framework**: pytest + pytest-asyncio (Ruff bans importing the unittest test framework; unittest.mock is allowed and used) |
Copilot
AI
Mar 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workspace layout description is incomplete: each package includes both src/microsoft_teams/... (current namespace) and src/microsoft/teams/... (backward-compat shim namespace). Updating this line to mention the shim path will prevent contributors from deleting or misinterpreting the src/microsoft tree.
| All packages live in `packages/`, each with `src/microsoft_teams/<package>/` layout: | |
| All packages live in `packages/`, each with both `src/microsoft_teams/<package>/` (current namespace) and `src/microsoft/teams/<package>/` (backward-compat shim namespace) layout: |
Copilot
AI
Mar 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The “Imports” rules are stricter than the codebase reality and will conflict with existing patterns: the repo uses TYPE_CHECKING blocks (e.g., forward refs/optional deps) and sometimes does lazy/conditional imports (e.g., optional Graph dependency). Please soften these bullets to reflect the actual convention (prefer top-level imports, but allow TYPE_CHECKING and local imports when needed for optional deps or circular-import avoidance).
| - ALL imports MUST be at the top of the file — no imports inside functions, classes, or conditional blocks | |
| - Avoid `TYPE_CHECKING` blocks unless absolutely necessary (genuine circular imports that can't be restructured) | |
| - Avoid dynamic/deferred imports unless absolutely necessary | |
| - Relative imports within the same package, absolute for external packages | |
| - Prefer imports at the top of the file; local/conditional imports are allowed when needed for optional dependencies, performance, or to avoid circular imports | |
| - `TYPE_CHECKING` blocks are allowed for forward references, optional dependencies, or genuine circular-import issues; otherwise keep imports regular and top-level | |
| - Prefer simple, eager imports; use dynamic/deferred imports only for optional features (e.g., Graph) or heavy dependencies that are not always needed | |
| - Use relative imports within the same package and absolute imports for external packages |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR description mentions initializing a ".claude.md", but this change adds/uses a root-level "CLAUDE.md" (and removes it from .gitignore). If the intended filename is dot-prefixed, rename the file accordingly; otherwise update the PR title/description to match the actual filename to avoid confusion for contributors.