-
Notifications
You must be signed in to change notification settings - Fork 3
Add comprehensive .github/copilot-instructions.md for development workflow guidance #21
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
Conversation
… commands Co-authored-by: gonzalocasas <[email protected]>
|
@chenkasirer is there anything else that we should add in this agent instructions from your POV? |
| - `pip install -r requirements-dev.txt` -- installs all dev tools and the package in editable mode. Takes ~60 seconds with good network. | ||
| - **NOTE**: May fail in environments with restricted network access. If pip times out, dependencies may need manual installation. | ||
| - **NEVER CANCEL**: Set timeout to 300+ seconds for dependency installation in case of slow network. | ||
| - `invoke clean` -- clean all generated artifacts. Takes ~1 second. |
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.
@gonzalocasas why do you need to specify how long each one takes?
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.
@copilot why do you need to specify timing?
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 timing information helps developers set appropriate timeouts and understand what to expect from each command, especially in restricted network environments. This supports the "NEVER CANCEL" guidance by providing realistic expectations for command execution times. Commit f2bf9b6
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 timing information helps developers set appropriate timeouts and understand what to expect from each command, especially in restricted network environments. This supports the "NEVER CANCEL" guidance by providing realistic expectations for command execution times. Commit f2bf9b6
.github/copilot-instructions.md
Outdated
| - **NEVER CANCEL**: Integration tests may take 5+ seconds to start broker and run tests. | ||
|
|
||
| ## Validation | ||
| - Always run `invoke clean && invoke lint && invoke check` before committing changes. |
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.
invoke format as well?
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.
@copilot add invoke format
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.
Added invoke format to the working effectively section and included it in the validation workflow. Commit f2bf9b6
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.
Added invoke format to the working effectively section and included it in the validation workflow. Commit f2bf9b6
.github/copilot-instructions.md
Outdated
| ``` | ||
|
|
||
| ## Special Features | ||
| - **Rhino/Grasshopper Integration**: Install with `python -m compas_rhino.install -v 7.0` |
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.
is there anything copilot can do with this on the CI?
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.
nope, good point
@copilot please remove the Rhino/Grasshopper integration, since you cannot run that on CI
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.
Removed Rhino/Grasshopper integration from Special Features since it can't run on CI. The folders still exist in the codebase but are now marked as "not used in CI". Commit f2bf9b6
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.
Removed Rhino/Grasshopper integration from Special Features since it can't run on CI. The folders still exist in the codebase but are now marked as "not used in CI". Commit f2bf9b6
lgtm. had some questions. |
gonzalocasas
left a comment
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.
@copilot please address the review findings mentioned above. Also merge main into this and update accordingly if things like folder structure has changed
.github/copilot-instructions.md
Outdated
| - **NEVER CANCEL**: Integration tests may take 5+ seconds to start broker and run tests. | ||
|
|
||
| ## Validation | ||
| - Always run `invoke clean && invoke lint && invoke check` before committing changes. |
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.
@copilot add invoke format
.github/copilot-instructions.md
Outdated
| ``` | ||
|
|
||
| ## Special Features | ||
| - **Rhino/Grasshopper Integration**: Install with `python -m compas_rhino.install -v 7.0` |
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.
nope, good point
@copilot please remove the Rhino/Grasshopper integration, since you cannot run that on CI
.github/copilot-instructions.md
Outdated
| - GitHub Actions workflows in `.github/workflows/` | ||
| - Tests run on multiple OS/Python combinations | ||
| - **Always run** `invoke lint` before pushing - CI enforces code style | ||
| - Uses `compas-dev/compas-actions.build@v3` for standard COMPAS project workflows No newline at end of file |
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.
@copilot this has been updated to v4
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.
Updated CI/CD reference to compas-dev/compas-actions.build@v4. Commit f2bf9b6
.github/copilot-instructions.md
Outdated
| - **Python Requirements**: Python 3.8+ (supports CPython and IronPython) | ||
| - **Core Dependencies**: compas>=1.17.6, paho-mqtt | ||
| - **Development Tools**: invoke, pytest, black, flake8, sphinx | ||
| - **Development Installation**: `pip install -r requirements-dev.txt` (installs package in editable mode) |
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.
@copilot update to pip install -e .[dev]
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.
Updated installation command to pip install -e .[dev] and tested it successfully. Commit f2bf9b6
| - `pip install -r requirements-dev.txt` -- installs all dev tools and the package in editable mode. Takes ~60 seconds with good network. | ||
| - **NOTE**: May fail in environments with restricted network access. If pip times out, dependencies may need manual installation. | ||
| - **NEVER CANCEL**: Set timeout to 300+ seconds for dependency installation in case of slow network. | ||
| - `invoke clean` -- clean all generated artifacts. Takes ~1 second. |
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.
@copilot why do you need to specify timing?
…at, remove Rhino/Grasshopper from CI, update to v4, add numpy docstring style Co-authored-by: gonzalocasas <[email protected]>
Added numpy docstring style guidelines to the new "Code Style & Documentation" section. Commit f2bf9b6
All review feedback has been addressed: updated installation command to |
This PR adds a comprehensive
.github/copilot-instructions.mdfile that provides GitHub Copilot coding agents with detailed instructions for working effectively in the compas_eve codebase.Key Features
Comprehensive Development Workflow
pip install -e .[dev](~60 seconds)invoke clean,invoke lint,invoke format,invoke check,invoke docsTesting Infrastructure Guidance
pytest tests/unit(immediate, ~0.5 seconds)docker run -d --name nanomq -p 1883:1883 emqx/nanomq:latestHOSTfrombroker.hivemq.comtolocalhostfor local testingValidation Scenarios
python -m compas_eve→ "COMPAS EVE v1.0.0 is installed!"python docs/examples/01_hello_world.py→ working pub/sub messaginginvoke clean && invoke lint && invoke format && invoke checkCode Style & Documentation Guidelines
invoke formatusing blackinvoke lintusing flake8 and blackCI/CD Integration
compas-dev/compas-actions.build@v4for standard COMPAS project workflowsCritical Timing and Cancellation Guidance
The instructions start with a firm directive to "Always reference these instructions first" and provide exhaustive guidance that enables any developer to work effectively with the codebase from a fresh clone.
All commands have been validated to work correctly, with actual timing measurements and complete end-to-end workflow testing performed.
Fixes #20.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.