feat!: added automatic gh release and refactored questions#10
Conversation
BREAKING CHANGE: questions contract
There was a problem hiding this comment.
Pull request overview
This PR adds automatic GitHub release functionality based on conventional commits and refactors the question flow to make author information optional. The changes introduce breaking changes to the questions contract by adding new configuration options and making existing questions conditional.
Changes:
- Added automatic GitHub release workflow that triggers on successful CI runs
- Made author information optional via a new
specify_authorquestion - Introduced
enforce_conventional_commitsandautomatic_gh_releaseconfiguration options - Refactored test fixtures to use parametrized answers covering different project configurations
- Renamed
project_name_snake_casereferences tosource_catalog_namefor clarity
Reviewed changes
Copilot reviewed 17 out of 19 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| copier.yaml | Added new questions for author specification, conventional commits, and automatic releases with conditional logic |
| tests/conftest.py | Refactored to create parametrized fixture with multiple answer configurations and introduced helper functions |
| tests/test_syntax.py | Removed project type parametrization in favor of fixture-based approach |
| skeleton/.github/workflows/release.yml | New workflow file for automatic GitHub releases using conventional commits |
| skeleton/pyproject.toml.jinja | Updated to conditionally include author information and use new variable name |
| skeleton/Dockerfile.jinja | Changed variable reference from project_name_snake_case to source_catalog_name |
| skeleton/tests/test_lambda_function.py.jinja | Changed import path to use source_catalog_name variable |
| skeleton/justfile.jinja | Updated all path references to use source_catalog_name |
| justfile | Renamed copy command to copy_from_file and added new copy command without data file parameter |
| test_answers/*.yml | Updated answer files to include new configuration options |
| skeleton/.github/workflows/*.yml | Added emoji prefixes to workflow names for better visibility |
| .github/workflows/*.yml | Added emoji prefixes to workflow names for consistency |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
skeleton/pyproject.toml.jinja
Outdated
| [project] | ||
| name = "{{ project_name_kebab_case }}" | ||
| version = "0.0.0" # This is a placeholder, version is determined by git tag during CI/CD | ||
| version = "0.0.0"{% if is_lambda_project %} # This is a placeholder, version is determined by git tag and commits{% endif %} |
There was a problem hiding this comment.
The comment about version determination should apply to all project types when automatic releases are enabled, not just lambda projects. Consider using {% if automatic_gh_release %} instead of {% if is_lambda_project %} for this comment, or remove the conditional entirely since the comment is informative regardless of project type.
| version = "0.0.0"{% if is_lambda_project %} # This is a placeholder, version is determined by git tag and commits{% endif %} | |
| version = "0.0.0"{% if automatic_gh_release %} # This is a placeholder, version is determined by git tag and commits{% endif %} |
BREAKING CHANGE: questions contract
solves #8