Merged
Conversation
CI improvements: - Add pip caching via setup-python cache option - Upload test artifacts (STLs) on integration test failures - Artifact retention: 7 days Dependency management: - Add Dependabot for pip and GitHub Actions updates - Weekly schedule, grouped minor/patch updates PyPI package improvements: - Add keywords for discoverability - Add classifier: Typing :: Typed - Add project URLs: Documentation, Issues, Changelog - Add py.typed markers for PEP 561 compliance Security: - Add SECURITY.md with vulnerability reporting guidelines
BREAKING CHANGE: This marks the start of v2.0 development cycle. Future releases will include breaking changes: - Unified CLI replacing separate entry points - Spec-driven configuration from YAML files - No backwards compatibility with 1.x CLI Added: - TODO.md: Comprehensive roadmap covering: - Spec-driven configuration (specs/*.yml) - Unified CLI (microfinity <subcommand>) - Debug tooling (SVG export, mesh diff, slice viewer) - Developer experience improvements - New box types and features - Documentation improvements - Future: tolerance test baseplates, additional micro-divisions - specs/README.md: Documentation for upcoming spec files Removed: - REFACTOR_TODO.md: Superseded by TODO.md (all items completed) Version bump: 1.2.0 -> 2.0.0
- Add specs/gridfinity_v1.yml with canonical Gridfinity dimensions - Add specs/microfinity.yml with microfinity-specific extensions - Add microfinity/core/spec.py YAML loader with typed access - Add unified CLI (microfinity box/baseplate/meshcut/info) - Update Makefile with test-*, lint, format, typecheck targets - Add pyyaml dependency for spec loading BREAKING CHANGE: New unified CLI replaces legacy entry points. Legacy commands (microfinity-box, etc.) still work but deprecated.
- GitHub Pages website with 3D STL viewer - MakerWorld page with examples and docs - Reddit r/gridfinity launch post plan - X/Twitter outreach strategy - README overhaul checklist - Community setup (Discussions, templates, etc.)
- Spec files and loader (3 items) - Unified CLI (7 items) - Makefile improvements (12 items)
BREAKING CHANGE: All constants now loaded from specs/gridfinity_v1.yml. No more hardcoded values in constants.py - single source of truth.
- Add version/name properties to GridfinitySpec and MicrofinitySpec - Show spec versions in 'microfinity info' command - Display key spec values (pitch, height unit, supported divisions)
- Validate all spec values are within expected ranges at load time - Add _validate_range helper for range checking - Validate grid, bin, foot, holes, and meshcutter sections - Warn but don't fail if validation fails (allows loading anyway)
- Document micro-grid divisions extension - Document foot profile geometry differences - Document stacking lip simplifications - Document tolerance adjustments - Add validation information - Add contributing guidelines for spec corrections
- microfinity debug analyze: mesh diagnostics (vertices, faces, volume, issues) - microfinity debug slice: SVG cross-section at specified Z height - microfinity debug compare: compare two meshes (dimensions, volume diff) - microfinity debug footprint: extract 2D footprint as SVG
- Add test_mesh_validation.py with watertight, dimension, topology tests - Add test_cli_e2e.py with info, help, debug analyze/slice/compare tests - Update golden baselines for baseplates after spec changes - Fix debug slice SVG export to use polygon-based generation - Mark P1 Test Infrastructure items as complete
When converting models with solid floors in the foot region (like the ESP32 holder), the replace-base pipeline now automatically detects and preserves the floor by adding a deck slab. Detection algorithm: - Samples multiple Z depths (2.0, 3.0, 4.0mm below z_join) in foot region - Compares band coverage against reference footprint polygon - Triggers deck if coverage > 90% and hole fraction < 15% Deck generation: - Creates solid slab from guard/collar polygon exterior (drops interior holes) - Positioned at z_join with overlaps for clean boolean union - Default thickness: 0.8mm (configurable via --deck-thickness) CLI options: - --deck auto|always|never (default: auto) - --deck-thickness <mm> (default: 0.8) Files modified: - meshcutter/core/replace_base.py: Add deck detection and generation - meshcutter/core/foot_cutter.py: Pass deck params to pipeline - meshcutter/cli/meshcut.py: Add CLI arguments Fixes floor disappearing on solid-base Gridfinity models.
microfinity:
- microfinity.core.constants -> microfinity.spec.constants
- microfinity.core.base -> microfinity.parts.base
- microfinity.core.helpers -> microfinity.cq.helpers
- microfinity.core.export -> microfinity.cq.export
- microfinity.core.spec -> microfinity.spec.loader
meshcutter:
- meshcutter.core.* -> meshcutter.{pipeline,cutter,detection,mesh}.*
- meshcutter.core.constants -> meshcutter.constants
- meshcutter.core.replace_base -> meshcutter.pipeline.replace_base
- meshcutter.core.detection -> meshcutter.detection.footprint
- meshcutter.core.boolean -> meshcutter.mesh.boolean
Also:
- Delete legacy microfinity/scripts/ CLI entry points
- Move tests into package directories
- Consolidate shared CadQuery utilities in microfinity.cq
- Update CI workflow to use new test locations: - microfinity/tests/ for microfinity tests - meshcutter/tests/ for meshcutter tests - Fix hardcoded version check in test_cli_e2e.py to use regex pattern
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.