Skip to content
85 changes: 85 additions & 0 deletions .windsurf/workflows/new-branch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
description: Add a new git branch based on the description provided by the user
---

# New Branch Creation Workflow

## Prerequisites

If no description of the purpose of the branch is provided, ask for it and stop the workflow.

## Branch Naming Convention

Use the following pattern for branch names:

`prefix/0.0.0-descriptive-title`

Where:
- `prefix`: Type of change (see available prefixes below)
- `0.0.0`: Target version for the changes
- `descriptive-title`: 1-4 words describing the branch purpose (kebab-case)

### Available Prefixes

- `feature`: New functionality
- `fix`: Bug fixes
- `docs`: Documentation changes
- `refactor`: Code changes that neither fix bugs nor add features
- `test`: Adding missing tests or correcting tests
- `chore`: Build process or auxiliary tool changes
- `ci`: CI/CD configuration changes
- `perf`: Performance improvements
- `style`: Code style changes (formatting, etc.)

### Determining the Target Version

1. **Check Current Versions**:

- Check `Solutions.props` for the current `dev` version
- Check `CHANGELOG.md` for the previous release version

2. **Version Bump Rules**:

| Type of Change | Release Type | Example Version Bump |
|----------------|--------------|----------------------|
| Bug fixes, minor corrections | Patch | 1.0.0 → 1.0.1 |
| New features (backward compatible) | Minor | 1.0.1 → 1.1.0 |
| Breaking changes | Major | 1.1.0 → 2.0.0 |

3. **Detailed Decision Criteria**:

**Patch (0.0.X) when:**
- Fixing bugs
- Updating documentation
- Adding/updating tests
- Code refactoring with no behavior changes
- Build/CI configuration changes
- Dependency updates (patch/minor versions)

**Minor (0.X.0) when:**
- Adding new backward-compatible features
- Adding new API endpoints/methods
- Deprecating features (without removing them)
- Significant performance improvements
- Adding new optional configuration

**Major (X.0.0) when:**
- Making breaking API changes
- Removing deprecated features
- Changing existing behavior in non-backward-compatible ways
- Major architectural changes

## Workflow Steps

1. Ensure there are no changes pending to commit. Stop the execution if so and ask the user to commit them.

2. Ensure we are in `dev` branch and it is synced with remote.

git checkout dev
git pull public dev

3. Create a new local branch from `dev`. Replace prefix, X.Y.Z, and descriptive-title as appropriate.

git checkout -b prefix/X.Y.Z-descriptive-title

4. Tell the user that the new branch was created, and explain why you chose the target version number.
26 changes: 23 additions & 3 deletions .windsurf/workflows/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,23 @@
description: Write the release notes
---

The aim is to return the release notes to publish on GitHub.

1. Analyze the last release in CHANGELOG.md

2. Return a title for the release in a code block, in plain text, with this format: "SmartHopper X.X.X(-alpha): Main Release Change". Examples: SmartHopper 0.3.2-alpha: Script Components Unleashed, SmartHopper 0.3.1-alpha: Tidy Up Your File!, SmartHopper 0.3.0-alpha: Powerful AI tools and enhanced security
If last release is a major release (1.0.0) or a minor release (0.1.0), follow the following instructions. If it is a patch release (0.0.1) jump to step 3.

2. This step if for major release (1.0.0) and minor release (0.1.0) only:

2.1. Return a title for the release in a code block, in plain text, with this format: "SmartHopper X.X.X(-alpha): Main Release Change". Examples: SmartHopper 0.3.2-alpha: Script Components Unleashed, SmartHopper 0.3.1-alpha: Tidy Up Your File!, SmartHopper 0.3.0-alpha: Powerful AI tools and enhanced security

3. Return the release notes in a markdown code block, following this format:
2.2. Return the release notes in a markdown code block, following this format:

Brief sentence summarizing the release. (e.g. This alpha release packs powerful undo support, new scripting tools to create and review scripting components, and a sweeping refactor of our AI workflows in Grasshopper—plus fresh branding and quality-of-life fixes.)

## (emoji) Feature 1

Brief description of the feature, changes from previous releases... focusing on perceptible changes for the user.
Brief description of the feature, changes from previous releases... focusing on perceptible changes for the user (UI xperience, new/removed inputs/outputs in components, new/removed components...).

## (emoji) Feature 2

Expand Down Expand Up @@ -42,3 +48,17 @@ We hope you enjoy these new features and improvements!
Happy designing! 🎨

---

3. This step is for patch release (0.0.1) only:

3.1. Return a title for the release in a code block, in plain text, with this format: "SmartHopper X.X.X(-alpha): Main Release Change [Patch]".

3.2. Return the release notes in a markdown code block, following this format:

Brief sentence summarizing the release. (e.g. This patch release fixes XX issues concerning... This patch release adds a missing icon for XX component...)

## Detailed list of changes: //read the changelog to fill this part. Summarize the changelog, do not copy-paste it literally//

- Added a new ...
- Removed ...
- Fixed issue [#00](link-to-issue)
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.3.6-alpha] - 2025-07-20

### Added

- Added icon to `AIModelsComponent`

## [0.3.5-alpha] - 2025-07-19

### Added
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# SmartHopper - AI-Powered Grasshopper3D Plugin

[![Version](https://img.shields.io/badge/version-0%2E3%2E5--alpha-orange)](https://github.com/architects-toolkit/SmartHopper/releases)
[![Version](https://img.shields.io/badge/version-0%2E3%2E6--alpha-orange)](https://github.com/architects-toolkit/SmartHopper/releases)
[![Status](https://img.shields.io/badge/status-Alpha-orange)](https://github.com/architects-toolkit/SmartHopper/releases)
[![Test results](https://img.shields.io/github/actions/workflow/status/architects-toolkit/SmartHopper/.github/workflows/ci-dotnet-tests.yml?label=.NET%20CI&logo=dotnet)](https://github.com/architects-toolkit/SmartHopper/actions/workflows/ci-dotnet-tests.yml)
[![Grasshopper](https://img.shields.io/badge/plugin_for-Grasshopper3D-darkgreen?logo=rhinoceros)](https://www.rhino3d.com/)
Expand Down
2 changes: 1 addition & 1 deletion Solution.props
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<Project>
<PropertyGroup>
<SolutionVersion>0.3.5-alpha</SolutionVersion>
<SolutionVersion>0.3.6-alpha</SolutionVersion>
</PropertyGroup>
</Project>
2 changes: 1 addition & 1 deletion src/SmartHopper.Components/AI/AIModelsComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class AIModelsComponent : AIProviderComponentBase
/// <summary>
/// Gets the icon for this component.
/// </summary>
protected override Bitmap Icon => Resources.smarthopper;
protected override Bitmap Icon => Resources.aimodels;

/// <summary>
/// Gets the exposure level of this component in the ribbon.
Expand Down
7 changes: 7 additions & 0 deletions src/SmartHopper.Components/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions src/SmartHopper.Components/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,9 @@
<data name="aichat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\aichat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="aimodels" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\aimodels.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="smarthopper" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\smarthopper.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading