feat: add multi-environment build system and development tooling - #2
Merged
Merged
Conversation
Add Makefile that auto-detects and supports uv, pip, poetry, conda, and pipenv package managers. Configure pyproject.toml with dev dependencies (ruff, mypy, pytest) and tool configurations. Features: - Auto-detection: uv → poetry → pipenv → pip → conda - Universal make dev command works with any package manager - Quality gates: make quality-check and make quality-check-strict - Helper commands: venv-info, clean-venv, update-deps - Dependency file generation: requirements.txt, environment.yml Configuration: - ruff for linting and formatting (line length: 100) - mypy for type checking (lenient for examples) - pytest with async support and coverage - setuptools build backend (examples repo, no packages)
Add auto-generated dependency files to support multiple package managers and environments: - requirements.txt: pip-compatible lock file (92 packages) - environment.yml: conda environment specification - uv.lock: uv lock file with full dependency resolution Generated via: make sync-deps
Add DEVELOPMENT.md with detailed instructions for: - Environment setup for all package managers - Complete Makefile command reference - Development workflow and best practices - Code quality guidelines and testing - Troubleshooting and common tasks Update README.md: - Showcase make dev as primary setup method - Add alternative setup methods section - Reference DEVELOPMENT.md for detailed instructions - Include make quality-check in contribution workflow
deanq
requested review from
Copilot and
jhcipar
and removed request for
Copilot
November 16, 2025 09:02
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR establishes a comprehensive development infrastructure for the flash-examples repository by introducing multi-environment build system support and standardized development tooling. The changes enable contributors to use their preferred Python package manager while maintaining consistent code quality standards.
Key Changes:
- Implemented Makefile with auto-detection for 5 package managers (uv, pip, poetry, conda, pipenv)
- Added development dependencies and tool configurations in pyproject.toml
- Created comprehensive development documentation with setup guides and workflow instructions
Reviewed Changes
Copilot reviewed 5 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Defines project metadata, dependencies, and configuration for ruff, mypy, pytest, and coverage tools |
| environment.yml | Provides conda environment specification for conda users |
| Makefile | Implements build system with package manager auto-detection and quality gate commands |
| README.md | Updates setup instructions to reference new build system and development guide |
| DEVELOPMENT.md | Comprehensive 596-line guide covering environment setup, commands, workflows, and troubleshooting |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Fix Makefile typecheck error handling to properly group conditional logic - Update DEVELOPMENT.md to reference only pyproject.toml for ruff config - Remove CLAUDE.md reference as it's not in the repository Addresses Copilot review comments on PR #2
… testing Add comprehensive CI/CD automation: Workflows: - quality.yml: Fast quality gate (format, lint, typecheck) on Python 3.12 - test-examples.yml: Multi-version testing across Python 3.9-3.13 Configuration updates: - Update Python requirement to >=3.9 - Update ruff target-version to py39 - Update mypy python_version to 3.9 - Add .python-version file for tooling Documentation: - Fix README.md testing section to reflect actual Python versions tested - Reference actual workflow directory instead of non-existent file Features: - Runs on all pushes, PRs, and manual dispatch - Uses uv caching for faster workflow runs - GitHub-formatted output with collapsible groups - Matrix testing with fail-fast disabled to see all version results
deanq
force-pushed
the
deanq/ae-1471-setup-assistant
branch
from
November 16, 2025 09:33
6f1eb5e to
a03cbc3
Compare
jhcipar
approved these changes
Nov 17, 2025
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.
Summary
Adds a comprehensive build system that supports multiple Python package managers (uv, pip, poetry, conda, pipenv) and establishes development workflow tooling for contributors.
Changes
Build System Infrastructure
make devcommand that works with any environment managermake quality-checkandmake quality-check-strictvenv-info,clean-venv,update-deps,sync-depsDependency Management
make sync-depsDocumentation
Development Tools
Benefits
Usage
Quick Start
All Available Commands
Run
make helpto see all 16 available commands.Testing Checklist
make devinstalls dependencies successfullymake lintruns without errorsmake format-checkruns without errorsmake typecheckhandles empty directories gracefullymake quality-checkpasses all checksmake sync-depsgenerates dependency filesCommit Structure
Three logical commits for easy review:
Note: This establishes the foundation for consistent development practices across the flash-examples repository.