Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: Bug Report
about: Create a report to help us improve
title: '[BUG] '
labels: bug
assignees: ''
---

## Bug Description
A clear and concise description of what the bug is.

## Steps To Reproduce
1. Go to '...'
2. Click on '...'
3. Run '...'
4. See error

## Expected Behavior
A clear and concise description of what you expected to happen.

## Actual Behavior
What actually happened.

## Environment
- OS: [e.g., Ubuntu 22.04, Windows 11, macOS 14]
- Python Version: [e.g., 3.8, 3.10, 3.11]
- FreeCAD Version: [e.g., 0.21, 0.22]
- MCP-FreeCAD Version: [e.g., 1.0.0]
- Installation Method: [pip, docker, source]

## Logs/Error Messages
```
Paste relevant logs or error messages here
```

## Additional Context
Add any other context about the problem here (screenshots, configuration files, etc.).

## Possible Solution
If you have suggestions on how to fix the bug, please describe them here.
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Documentation Issue
about: Report a problem with documentation
title: '[DOCS] '
labels: documentation
assignees: ''
---

## Documentation Issue
A clear description of what documentation is unclear, missing, or incorrect.

## Location
Where is the documentation issue located?
- [ ] README.md
- [ ] CONTRIBUTING.md
- [ ] API documentation
- [ ] Code comments
- [ ] Other: [please specify]

## Current Documentation
What does the current documentation say?

## Suggested Improvement
What should the documentation say instead?

## Additional Context
Add any other context about the documentation issue here.
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Feature Request
about: Suggest an idea for this project
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Feature Description
A clear and concise description of the feature you'd like to see.

## Problem Statement
Is your feature request related to a problem? Please describe.
Ex. I'm always frustrated when [...]

## Proposed Solution
A clear and concise description of what you want to happen.

## Alternative Solutions
A clear and concise description of any alternative solutions or features you've considered.

## Use Case
Describe the use case for this feature. How would it be used?

## Additional Context
Add any other context, mockups, or examples about the feature request here.

## Would you be willing to contribute this feature?
- [ ] Yes, I'd like to work on this
- [ ] No, I'm just suggesting it
- [ ] Maybe, with some guidance
42 changes: 42 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Pull Request

## Description
A clear and concise description of what this PR does.

## Type of Change
Please delete options that are not relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Performance improvement
- [ ] Test updates

## Related Issue
Fixes #(issue number)
Closes #(issue number)
Related to #(issue number)

## How Has This Been Tested?
Please describe the tests that you ran to verify your changes.

- [ ] Test A
- [ ] Test B

## Checklist
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

## Screenshots (if applicable)
Add screenshots to help explain your changes.

## Additional Notes
Add any other context about the pull request here.
9 changes: 4 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
name: CI (Disabled)
name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
description: 'Manually trigger CI'

jobs:
test:
Expand Down Expand Up @@ -44,10 +43,10 @@ jobs:
pip install -r requirements-dev.txt
- name: Check code formatting with Black
run: |
black --check src tests app.py
black --check src tests mcp_server.py
- name: Check imports with isort
run: |
isort --check-only --profile black src tests app.py
isort --check-only --profile black src tests mcp_server.py
- name: Lint with flake8
run: |
flake8 src tests app.py
flake8 src tests mcp_server.py
55 changes: 55 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Release

on:
push:
tags:
- 'v*'

permissions:
contents: write

jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine

- name: Build package
run: python -m build

- name: Extract release notes
id: extract-release-notes
run: |
VERSION=${GITHUB_REF#refs/tags/v}
echo "version=$VERSION" >> $GITHUB_OUTPUT

# Extract release notes from CHANGELOG.md
awk "/^## \[$VERSION\]/{flag=1; next} /^## \[/{flag=0} flag" CHANGELOG.md > release_notes.md

- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
body_path: release_notes.md
files: dist/*
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# Uncomment when ready to publish to PyPI
# - name: Publish to PyPI
# env:
# TWINE_USERNAME: __token__
# TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
# run: |
# twine upload dist/*
43 changes: 26 additions & 17 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,29 +21,37 @@ wheels/
*.egg-info/
.installed.cfg
*.egg
docs/official/
MANIFEST
pip-log.txt
pip-delete-this-directory.txt

# Virtual Environment
venv/
ENV/
env/
.env
.venv
.pytest_cache/
.tox/
.nox/

# IDE
.idea/
.vscode/
*.swp
*.swo
*~
.DS_Store

# Jupyter Notebook
.ipynb_checkpoints
*.ipynb

# FreeCAD specific
*.FCStd
*.FCStd1
*.FCBak
squashfs-root/

# Logs
*.log
Expand All @@ -63,7 +71,6 @@ ehthumbs.db
Thumbs.db

# Project specific
squashfs-root/
backups/
tmp/
config.json
Expand All @@ -75,21 +82,21 @@ api_keys.json
*.secret
secrets.json
.env.local
*.enc
*.encrypted

# Lock files
uv.lock
poetry.lock
Pipfile.lock

# Generated files
mcp-freecad
scripts/bin/mcp-freecad

# AppImage files
*.AppImage
*.AppImage.sha256sum
*.AppImage.sha512sum
*.AppImage.sha384sum
*.AppImage.sha224sum
*.AppImage.sha1sum
*.AppImage.md5sum
*.AppImage.*sum

# Temporary files
*.tmp
Expand All @@ -101,20 +108,22 @@ htmlcov/
.coverage
.coverage.*
coverage.xml
*.cover
.hypothesis/

# mypy
# Type checking
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/

# Documentation
docs/official/
docs/_build/
docs/.doctrees/

# Cursor IDE specific
.cursor/
.cursorignore
.cursorindexingignore
.cursor/tasks/
.cursorignore
.cursorindexingignore

# Encrypted files and sensitive data
freecad-ai/api_keys.enc
*.enc
*.encrypted
Loading
Loading