Skip to content

Commit 81a52ae

Browse files
committed
Create copilot-instructions.md
1 parent 429fff3 commit 81a52ae

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

.github/copilot-instructions.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Copilot Instructions
2+
3+
## Python Environment
4+
5+
Always activate and use the Python virtual environment when running Python commands:
6+
7+
- On Windows: `.venv\Scripts\activate`
8+
- On Linux/macOS: `source .venv/bin/activate`
9+
10+
Use `python -m pip` instead of bare `pip` when installing packages.
11+
12+
## Dev Setup
13+
14+
Install all dependencies with:
15+
16+
```
17+
python -m pip install -e ".[dev,test]"
18+
```
19+
20+
## Python Version
21+
22+
This project requires Python 3.10 or newer.
23+
24+
## Project Structure
25+
26+
- `featuremanagement/` — Synchronous feature management code
27+
- `featuremanagement/aio/` — Async equivalents of feature management classes
28+
- `featuremanagement/_models/` — Data models (feature flags, variants, telemetry)
29+
- `featuremanagement/_time_window_filter/` — Time window filter with recurrence support
30+
- `featuremanagement/azuremonitor/` — Optional Azure Monitor telemetry integration
31+
- `tests/` — Unit tests (sync and async)
32+
- `samples/` — Sample applications
33+
34+
## Code Conventions
35+
36+
- All source files must include the Microsoft copyright header.
37+
- All modules must have a module-level docstring.
38+
- Maximum line length is 120 characters.
39+
- Use type annotations on all functions and methods.
40+
41+
## Code Quality
42+
43+
Run these before submitting changes:
44+
45+
```
46+
black featuremanagement
47+
pylint featuremanagement
48+
mypy featuremanagement
49+
pytest tests
50+
```
51+
52+
## Testing
53+
54+
- Sync tests are in `tests/test_*.py`
55+
- Async tests use `pytest-asyncio` and are in files ending with `_async.py`
56+
- Run tests with: `pytest tests`

0 commit comments

Comments
 (0)