Skip to content

Commit f2bf9b6

Browse files
Copilotgonzalocasas
andcommitted
Address review feedback: update installation command, add invoke format, remove Rhino/Grasshopper from CI, update to v4, add numpy docstring style
Co-authored-by: gonzalocasas <[email protected]>
1 parent edc9622 commit f2bf9b6

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

.github/copilot-instructions.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Always reference these instructions first and fallback to search or bash command
55

66
## Working Effectively
77
- Bootstrap and install development dependencies:
8-
- `pip install -r requirements-dev.txt` -- installs all dev tools and the package in editable mode. Takes ~60 seconds with good network.
8+
- `pip install -e .[dev]` -- installs all dev tools and the package in editable mode. Takes ~60 seconds with good network.
99
- **NOTE**: May fail in environments with restricted network access. If pip times out, dependencies may need manual installation.
1010
- **NEVER CANCEL**: Set timeout to 300+ seconds for dependency installation in case of slow network.
1111
- `invoke clean` -- clean all generated artifacts. Takes ~1 second.
@@ -27,7 +27,7 @@ Always reference these instructions first and fallback to search or bash command
2727
- **NEVER CANCEL**: Integration tests may take 5+ seconds to start broker and run tests.
2828

2929
## Validation
30-
- Always run `invoke clean && invoke lint && invoke check` before committing changes.
30+
- Always run `invoke clean && invoke lint && invoke format && invoke check` before committing changes.
3131
- **VALIDATION SCENARIOS**: Test basic functionality after changes:
3232
- `python -m compas_eve` -- should print "COMPAS EVE v1.0.0 is installed!"
3333
- `python docs/examples/01_hello_world.py` -- should print publisher/subscriber message exchange
@@ -38,7 +38,13 @@ Always reference these instructions first and fallback to search or bash command
3838
- **Python Requirements**: Python 3.8+ (supports CPython and IronPython)
3939
- **Core Dependencies**: compas>=1.17.6, paho-mqtt
4040
- **Development Tools**: invoke, pytest, black, flake8, sphinx
41-
- **Development Installation**: `pip install -r requirements-dev.txt` (installs package in editable mode)
41+
- **Development Installation**: `pip install -e .[dev]` (installs package in editable mode)
42+
43+
## Code Style & Documentation
44+
- **Docstring Style**: Use numpy-style docstrings for all functions, classes, and methods
45+
- **Code Formatting**: Use `invoke format` to automatically format code with black
46+
- **Linting**: Use `invoke lint` to check code style with flake8 and black
47+
- **Type Hints**: Include type hints where appropriate for better code clarity
4248

4349
## Build System
4450
- Uses **setuptools** with `setup.py` and modern `pyproject.toml`
@@ -57,9 +63,9 @@ The following are outputs from frequently run commands. Reference them instead o
5763
├── src/compas_eve/ # Main package source
5864
│ ├── core.py # Core messaging classes
5965
│ ├── memory/ # In-memory transport
60-
│ ├── mqtt/ # MQTT transport
61-
│ ├── ghpython/ # Grasshopper components
62-
│ └── rhino/ # Rhino integration
66+
│ ├── mqtt/ # MQTT transport
67+
│ ├── ghpython/ # Grasshopper components (not used in CI)
68+
│ └── rhino/ # Rhino integration (not used in CI)
6369
├── tests/
6470
│ ├── unit/ # Fast unit tests (no external deps)
6571
│ └── integration/ # MQTT integration tests
@@ -74,7 +80,7 @@ The following are outputs from frequently run commands. Reference them instead o
7480
- `src/compas_eve/core.py` -- Main Message, Publisher, Subscriber, Topic classes
7581
- `src/compas_eve/memory/` -- InMemoryTransport for single-process messaging
7682
- `src/compas_eve/mqtt/` -- MqttTransport for distributed messaging
77-
- `src/compas_eve/ghpython/` -- Grasshopper background task components
83+
- `src/compas_eve/ghpython/` -- Grasshopper background task components (not used in CI)
7884
- `tests/unit/test_core.py` -- Core functionality unit tests
7985
- `tests/integration/test_mqtt.py` -- MQTT transport integration tests
8086

@@ -94,10 +100,8 @@ eve.set_default_transport(MqttTransport("broker.hivemq.com"))
94100
```
95101

96102
## Special Features
97-
- **Rhino/Grasshopper Integration**: Install with `python -m compas_rhino.install -v 7.0`
98-
- **Background Tasks**: Grasshopper components for long-running background operations
99103
- **Multiple Transports**: In-memory (default), MQTT for distributed systems
100-
- **IronPython Support**: Full compatibility with IronPython 2.7 for Rhino
104+
- **IronPython Support**: Full compatibility with IronPython 2.7 for legacy environments
101105
- **Cross-platform**: Windows, macOS, Linux support
102106

103107
## Timing Expectations
@@ -112,4 +116,4 @@ eve.set_default_transport(MqttTransport("broker.hivemq.com"))
112116
- GitHub Actions workflows in `.github/workflows/`
113117
- Tests run on multiple OS/Python combinations
114118
- **Always run** `invoke lint` before pushing - CI enforces code style
115-
- Uses `compas-dev/compas-actions.build@v3` for standard COMPAS project workflows
119+
- Uses `compas-dev/compas-actions.build@v4` for standard COMPAS project workflows

0 commit comments

Comments
 (0)