Skip to content

Conversation

@chenkasirer
Copy link
Member

@chenkasirer chenkasirer commented Nov 3, 2025

  • Migrated build configuration to pyproject.toml, removing legacy setup.py and .bumpversion.cfg files
  • Added Yak package publishing workflow for automated Food4Rhino distribution via GitHub Actions
  • Updated Grasshopper components for Rhino 8 compatibility
  • Add some utility functionsto ghpython module

What type of change is this?

  • Bug fix in a backwards-compatible manner.
  • New feature in a backwards-compatible manner.
  • Breaking change: bug fix or new feature that involve incompatible API changes.
  • Other (e.g. doc update, configuration, etc)

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • I added a line to the CHANGELOG.md file in the Unreleased section under the most fitting heading (e.g. Added, Changed, Removed).
  • I ran all tests on my computer and it's all green (i.e. invoke test).
  • I ran lint on my computer and there are no errors (i.e. invoke lint).
  • I added new functions/classes and made them available on a second-level import, e.g. compas.datastructures.Mesh.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added necessary documentation (if appropriate)

@chenkasirer chenkasirer requested a review from Copilot November 4, 2025 08:48
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR modernizes the Grasshopper component infrastructure for Rhino 8, transitioning from legacy Rhino 7 components to the new CPython-based Rhino 8 components. The changes also consolidate build configuration from setup.py to pyproject.toml and add Yak package publishing automation.

  • Migrates Grasshopper components from ghpythonlib.componentbase.executingcomponent to Grasshopper.Kernel.GH_ScriptInstance for Rhino 8 compatibility
  • Consolidates build configuration into pyproject.toml with dynamic versioning and removes legacy setup.py
  • Adds Yak package publishing workflow and template files for package distribution

Reviewed Changes

Copilot reviewed 16 out of 17 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tasks.py Updates task configuration to use ghuser_cpython and adds Grasshopper Yak packaging tasks
src/compas_eve/mqtt/mqtt_paho.py Reorders imports to follow style guidelines (stdlib, third-party, local)
src/compas_eve/ghpython/yak_template/manifest.yml Adds Yak package manifest with metadata for Grasshopper package distribution
src/compas_eve/ghpython/yak_template/icon.png Adds package icon for Yak distribution
src/compas_eve/ghpython/components/Ce_Subscribe/code.py Migrates to Rhino 8 component structure with type hints and warning helper
src/compas_eve/ghpython/components/Ce_Publish/code.py Migrates to Rhino 8 component structure with updated component reference pattern
src/compas_eve/ghpython/components/Ce_MqttConnect/code.py Migrates to Rhino 8 component structure with type hints
src/compas_eve/ghpython/components/Ce_Message/code.py Reorders imports and removes version comment
src/compas_eve/ghpython/components/Ce_BackgroundTask/code.py Migrates to Rhino 8 component structure
src/compas_eve/ghpython/init.py Adds helper functions for component messaging (warning, error, remark, message)
src/compas_eve/codecs/conversions.py Reorders imports to follow style guidelines
setup.py Removes legacy setup.py in favor of pyproject.toml configuration
requirements-dev.txt Adds pythonnet dependency for .NET interop in development
pyproject.toml Adds dynamic versioning, bumpversion configuration, and improves code organization
CHANGELOG.md Documents removal of Rhino 7 components
.github/workflows/yak_publish.yml Adds GitHub Actions workflow for automated Yak package publishing
.bumpversion.cfg Removes legacy bumpversion config file (migrated to pyproject.toml)

if not topic_name:
raise ValueError("Please specify the name of the topic")
warning(ghenv.Component, "Please specify the name of the topic") # noqa: F821
return
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mixing implicit and explicit returns may indicate an error, as implicit returns always return None.

Suggested change
return
return 0

Copilot uses AI. Check for mistakes.

try:
import Grasshopper # type: ignore
except (ImportError, SyntaxError):
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'except' clause does nothing but pass and there is no explanatory comment.

Suggested change
except (ImportError, SyntaxError):
except (ImportError, SyntaxError):
# Grasshopper is only available in Rhino/Grasshopper environments.
# Ignore import errors to allow this module to be imported elsewhere.

Copilot uses AI. Check for mistakes.
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.

3 participants