wry 0.5.1.dev3__tar.gz → 0.5.1.dev4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/.cursorrules +3 -2
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/AI_KNOWLEDGE_BASE.md +28 -9
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/CHANGELOG.md +17 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/CONTRIBUTING.md +20 -1
- {wry-0.5.1.dev3/wry.egg-info → wry-0.5.1.dev4}/PKG-INFO +9 -2
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/README.md +8 -1
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/RELEASE_PROCESS.md +46 -13
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/_version.py +3 -3
- {wry-0.5.1.dev3 → wry-0.5.1.dev4/wry.egg-info}/PKG-INFO +9 -2
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/.github/workflows/ci-cd.yml +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/.gitignore +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/.markdownlint.json +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/.pre-commit-config.yaml +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/LICENSE +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/TODO.md +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/check.sh +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/examples/autowrymodel_comprehensive.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/examples/config.json +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/examples/multimodel_comprehensive.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/examples/sample_config.json +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/examples/wrymodel_comprehensive.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/pyproject.toml +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/scripts/README.md +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/scripts/extract_release_notes.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/scripts/test_all_versions.sh +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/scripts/test_ci_locally.sh +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/scripts/test_with_act.sh +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/scripts/update-dependencies.sh +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/setup.cfg +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/README.md +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/features/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/features/test_auto_model.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/features/test_inheritance.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/features/test_multi_model.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/features/test_source_precedence.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/integration/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/integration/test_click_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/integration/test_click_integration.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/integration/test_click_integration_extended.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/integration/test_context_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_auto_model_annotation_inference.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_auto_model_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_auto_model_field_processing.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_auto_model_list_fields.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_comma_separated_lists.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_field_annotation_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_field_annotations.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_type_inference.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/README_TESTING_STRATEGY.md +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_argument_types.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_bool_flag_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_click_config_building.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_click_constraint_formatting.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_click_decorator_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_click_interval_constraints.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_click_lambda_parsing.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_click_length_constraints.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_click_parameter_generation.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_click_predicate_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_closure_extraction_errors.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_closure_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_constraint_behavior.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_constraint_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_env_vars_option.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_explicit_argument_help_injection.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_field_alias_with_click_options.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_format_constraint_text.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_json_config_loading.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_lambda_behavior.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_lambda_error_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_predicate_source_errors.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_strict_mode_errors.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/click/test_type_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_accessors.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_advanced_features.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_core.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_env_utils.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_field_constraint_extraction.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_field_utils.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_field_utils_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_sources.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/core/test_type_checking_blocks.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_accessor_caching.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_extract_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_extract_subset_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_click_context_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_data_extraction.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_default_handling.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_environment_integration.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_extract_subset_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_extraction_methods.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_field_errors.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_model_object_extraction.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_non_dict_object_extraction.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/model/test_object_attribute_extraction.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/multi_model/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/multi_model/test_multi_model.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/multi_model/test_type_checking.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_argument_help_injection.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_auto_model_field_processing.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_comprehensive_imports.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_exclude_enum.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_generate_click_classmethod.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_help_system.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_init.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_init_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_init_version_edge_cases.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_model_extraction_methods.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_multiple_option_bug.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_type_checking_imports.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_variadic_argument_bug.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_version_fallback.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/test_version_parsing.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/auto_model.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/click_integration.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/comma_separated.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/core/__init__.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/core/accessors.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/core/env_utils.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/core/field_utils.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/core/model.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/core/sources.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/help_system.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/multi_model.py +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry/py.typed +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry.egg-info/SOURCES.txt +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry.egg-info/dependency_links.txt +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry.egg-info/requires.txt +0 -0
- {wry-0.5.1.dev3 → wry-0.5.1.dev4}/wry.egg-info/top_level.txt +0 -0
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
Before making any commit, AI assistants MUST:
|
|
9
9
|
|
|
10
|
-
1. **Update Documentation
|
|
10
|
+
1. **Update Documentation** (ALWAYS update CHANGELOG.md):
|
|
11
|
+
- **CHANGELOG.md**: ALWAYS add entry under [Unreleased] for ANY change
|
|
11
12
|
- README.md if user-facing changes
|
|
12
13
|
- AI_KNOWLEDGE_BASE.md if architecture/API changes
|
|
13
|
-
- CHANGELOG.md with entry under [Unreleased]
|
|
14
14
|
- Module docstrings if relevant
|
|
15
15
|
|
|
16
16
|
2. **Ensure Code Quality**:
|
|
@@ -49,6 +49,7 @@ Before making any commit, AI assistants MUST:
|
|
|
49
49
|
- Code patterns: `CONTRIBUTING.md` "Configuration Models" section
|
|
50
50
|
- Testing guide: `CONTRIBUTING.md` "Testing" section
|
|
51
51
|
- Pre-commit checklist: `CONTRIBUTING.md` "Pre-Commit Checklist" section
|
|
52
|
+
- Release workflow: `RELEASE_PROCESS.md` for creating releases
|
|
52
53
|
|
|
53
54
|
## Enforcement
|
|
54
55
|
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
# wry - Comprehensive AI/LLM Knowledge Base
|
|
2
2
|
|
|
3
|
-
**Last Updated**: 2025-10-
|
|
4
|
-
**Version**: 0.
|
|
3
|
+
**Last Updated**: 2025-10-14
|
|
4
|
+
**Version**: 0.5.0+
|
|
5
5
|
**Purpose**: Complete reference for AI assistants and LLMs to understand wry without reading the entire codebase
|
|
6
6
|
|
|
7
|
+
**Related Documentation**:
|
|
8
|
+
- 📖 **`CONTRIBUTING.md`** - Comprehensive contributor guide (referenced by `.cursorrules`)
|
|
9
|
+
- 🤖 **`.cursorrules`** - AI assistant quick reference (references this file and CONTRIBUTING.md)
|
|
10
|
+
- 📘 **`README.md`** - User-facing documentation
|
|
11
|
+
- 📝 **`CHANGELOG.md`** - Version history and changes
|
|
12
|
+
- 🚀 **`RELEASE_PROCESS.md`** - Release workflow (how to convert [Unreleased] → [X.Y.Z])
|
|
13
|
+
|
|
7
14
|
---
|
|
8
15
|
|
|
9
16
|
## Executive Summary
|
|
@@ -19,7 +26,9 @@
|
|
|
19
26
|
|
|
20
27
|
**Key Innovation**: Single source of truth for configuration with comprehensive source tracking.
|
|
21
28
|
|
|
22
|
-
**Stats**:
|
|
29
|
+
**Stats**: 494 tests (all passing), 92%+ coverage, supports Python 3.10-3.12, Pydantic v2.11+ compatible
|
|
30
|
+
|
|
31
|
+
**For Contributors**: See `CONTRIBUTING.md` for development guidelines and `.cursorrules` for AI assistant rules
|
|
23
32
|
|
|
24
33
|
---
|
|
25
34
|
|
|
@@ -2814,19 +2823,29 @@ Single source of truth: Pydantic model defines everything.
|
|
|
2814
2823
|
- ✅ Multi-source configuration (CLI/ENV/JSON/DEFAULT)
|
|
2815
2824
|
- ✅ Source tracking (know where every value came from)
|
|
2816
2825
|
- ✅ Type safety (Pydantic + Click)
|
|
2817
|
-
- ✅ Comprehensive testing (
|
|
2818
|
-
- ✅ Excellent documentation (README + AI KB + examples)
|
|
2826
|
+
- ✅ Comprehensive testing (494 tests, 92% coverage)
|
|
2827
|
+
- ✅ Excellent documentation (README + AI KB + examples + CONTRIBUTING)
|
|
2819
2828
|
|
|
2820
2829
|
**For AI assistants**:
|
|
2821
2830
|
|
|
2822
|
-
-
|
|
2823
|
-
- Reference this knowledge base for details
|
|
2824
|
-
- Check
|
|
2831
|
+
- **Follow** `.cursorrules` for quick development rules
|
|
2832
|
+
- **Reference** this knowledge base (AI_KNOWLEDGE_BASE.md) for technical details
|
|
2833
|
+
- **Check** `CONTRIBUTING.md` for complete development guidelines
|
|
2834
|
+
- Start with comprehensive examples to understand the system
|
|
2835
|
+
- Check version for bug fixes (v0.2.2 critical, v0.5.0 adds list support)
|
|
2825
2836
|
- Point users to examples for patterns
|
|
2826
2837
|
- Use `show_help_index()` to help users find documentation
|
|
2827
2838
|
|
|
2839
|
+
**For Contributors**:
|
|
2840
|
+
|
|
2841
|
+
- **Read** `CONTRIBUTING.md` for complete guidelines
|
|
2842
|
+
- **Follow** `.cursorrules` if using Cursor AI
|
|
2843
|
+
- **Reference** this knowledge base for architecture details
|
|
2844
|
+
- **Check** `CHANGELOG.md` for version history
|
|
2845
|
+
- **See** `RELEASE_PROCESS.md` for creating releases
|
|
2846
|
+
|
|
2828
2847
|
---
|
|
2829
2848
|
|
|
2830
|
-
**End of Knowledge Base** - Version 0.
|
|
2849
|
+
**End of Knowledge Base** - Version 0.5.0+ - Last Updated: 2025-10-14
|
|
2831
2850
|
|
|
2832
2851
|
**Access this**: `python -m wry.help_system ai` or `from wry import print_help; print_help('ai')`
|
|
@@ -15,6 +15,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
15
|
- `.cursorrules` references `CONTRIBUTING.md` for detailed explanations
|
|
16
16
|
- Both tailored specifically for wry development patterns
|
|
17
17
|
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **Documentation cross-references** 🔗
|
|
21
|
+
- README.md: Added Contributing section with links to CONTRIBUTING.md, .cursorrules, AI_KNOWLEDGE_BASE.md
|
|
22
|
+
- AI_KNOWLEDGE_BASE.md: Updated header with related documentation links
|
|
23
|
+
- AI_KNOWLEDGE_BASE.md: Updated version to 0.5.0+ and test count to 494
|
|
24
|
+
- AI_KNOWLEDGE_BASE.md: Added separate guidance sections for AI assistants and contributors
|
|
25
|
+
- Creates clear documentation hierarchy and navigation
|
|
26
|
+
|
|
27
|
+
- **CHANGELOG requirements strengthened** ⚠️
|
|
28
|
+
- .cursorrules: Made CHANGELOG.md update mandatory and explicit (first item)
|
|
29
|
+
- CONTRIBUTING.md: Added prominent warning that CHANGELOG.md updates are required for every commit
|
|
30
|
+
- CONTRIBUTING.md: Listed all CHANGELOG sections (Added/Changed/Fixed/Deprecated/Removed/Security)
|
|
31
|
+
- RELEASE_PROCESS.md: Clarified [Unreleased] → versioned section workflow
|
|
32
|
+
- RELEASE_PROCESS.md: Documented that commits add to [Unreleased] during development
|
|
33
|
+
- RELEASE_PROCESS.md: Explained that release commit converts [Unreleased] to [X.Y.Z]
|
|
34
|
+
|
|
18
35
|
### Tests
|
|
19
36
|
|
|
20
37
|
- **Additional comma-separated test** (494 total tests)
|
|
@@ -434,9 +434,17 @@ def test_feature_with_clear_name():
|
|
|
434
434
|
|
|
435
435
|
### 1. Documentation Updates
|
|
436
436
|
|
|
437
|
+
**⚠️ ALWAYS UPDATE CHANGELOG.md - This is required for every commit!**
|
|
438
|
+
|
|
439
|
+
- [ ] **CHANGELOG.md**: **ALWAYS** add entry under `[Unreleased]` with appropriate section:
|
|
440
|
+
- `Added` - New features, new files, new capabilities
|
|
441
|
+
- `Changed` - Changes to existing functionality, documentation updates
|
|
442
|
+
- `Fixed` - Bug fixes
|
|
443
|
+
- `Deprecated` - Features that will be removed
|
|
444
|
+
- `Removed` - Removed features
|
|
445
|
+
- `Security` - Security fixes
|
|
437
446
|
- [ ] **README.md**: Update if user-facing features, usage, or API changed
|
|
438
447
|
- [ ] **AI_KNOWLEDGE_BASE.md**: Update if architecture, implementation details, or patterns changed
|
|
439
|
-
- [ ] **CHANGELOG.md**: Add entry under `[Unreleased]` with section (Added/Changed/Fixed/Deprecated/Removed)
|
|
440
448
|
- [ ] **Module docstrings**: Update docstrings in modified modules
|
|
441
449
|
- [ ] **Examples**: Add or update examples if demonstrating new features
|
|
442
450
|
|
|
@@ -624,10 +632,21 @@ If pre-commit hooks are failing:
|
|
|
624
632
|
❌ Make breaking changes without major version bump
|
|
625
633
|
❌ Ignore linter/type checker errors
|
|
626
634
|
|
|
635
|
+
## Release Process
|
|
636
|
+
|
|
637
|
+
For information about creating releases, see **`RELEASE_PROCESS.md`**.
|
|
638
|
+
|
|
639
|
+
**Key points**:
|
|
640
|
+
- During development: Add all changes to `[Unreleased]` in CHANGELOG.md
|
|
641
|
+
- When releasing: Convert `[Unreleased]` to `[X.Y.Z] - YYYY-MM-DD`
|
|
642
|
+
- Tag the release commit: `git tag -s vX.Y.Z`
|
|
643
|
+
- See RELEASE_PROCESS.md for complete step-by-step instructions
|
|
644
|
+
|
|
627
645
|
## Questions?
|
|
628
646
|
|
|
629
647
|
- Check `examples/` for usage patterns
|
|
630
648
|
- Check `AI_KNOWLEDGE_BASE.md` for complete technical reference
|
|
631
649
|
- Check `README.md` for user documentation
|
|
650
|
+
- Check `RELEASE_PROCESS.md` for release workflow
|
|
632
651
|
- Check `tests/features/test_source_precedence.py` for source tracking examples
|
|
633
652
|
- Open an issue for questions or clarifications
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wry
|
|
3
|
-
Version: 0.5.1.
|
|
3
|
+
Version: 0.5.1.dev4
|
|
4
4
|
Summary: Why Repeat Yourself? - Define your CLI once with Pydantic models
|
|
5
5
|
Author-email: Tyler House <26489166+tahouse@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -892,7 +892,14 @@ The wry codebase is organized into focused modules:
|
|
|
892
892
|
|
|
893
893
|
## Contributing
|
|
894
894
|
|
|
895
|
-
We welcome contributions! Please
|
|
895
|
+
We welcome contributions! Please see **`CONTRIBUTING.md`** for comprehensive guidelines.
|
|
896
|
+
|
|
897
|
+
**Quick links**:
|
|
898
|
+
|
|
899
|
+
- 📖 **`CONTRIBUTING.md`** - Complete contributor guide (for humans)
|
|
900
|
+
- 🤖 **`.cursorrules`** - AI assistant quick reference
|
|
901
|
+
- 📚 **`AI_KNOWLEDGE_BASE.md`** - Complete technical reference
|
|
902
|
+
- 🚀 **`RELEASE_PROCESS.md`** - Release workflow and versioning
|
|
896
903
|
|
|
897
904
|
### Development Setup
|
|
898
905
|
|
|
@@ -848,7 +848,14 @@ The wry codebase is organized into focused modules:
|
|
|
848
848
|
|
|
849
849
|
## Contributing
|
|
850
850
|
|
|
851
|
-
We welcome contributions! Please
|
|
851
|
+
We welcome contributions! Please see **`CONTRIBUTING.md`** for comprehensive guidelines.
|
|
852
|
+
|
|
853
|
+
**Quick links**:
|
|
854
|
+
|
|
855
|
+
- 📖 **`CONTRIBUTING.md`** - Complete contributor guide (for humans)
|
|
856
|
+
- 🤖 **`.cursorrules`** - AI assistant quick reference
|
|
857
|
+
- 📚 **`AI_KNOWLEDGE_BASE.md`** - Complete technical reference
|
|
858
|
+
- 🚀 **`RELEASE_PROCESS.md`** - Release workflow and versioning
|
|
852
859
|
|
|
853
860
|
### Development Setup
|
|
854
861
|
|
|
@@ -2,31 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
This document outlines the correct process for creating a new release.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Development Workflow
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### During Development (Between Releases)
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
As you make commits, **ALWAYS update CHANGELOG.md** under `[Unreleased]`:
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
## [Unreleased]
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- New feature X
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Bug Y
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Every commit** should add its changes to the `[Unreleased]` section. This keeps the changelog up-to-date continuously.
|
|
22
|
+
|
|
23
|
+
### When Ready to Release
|
|
24
|
+
|
|
25
|
+
Follow these steps IN ORDER:
|
|
26
|
+
|
|
27
|
+
1. **Verify all changes are in [Unreleased]**
|
|
28
|
+
- Check that CHANGELOG.md `[Unreleased]` section has all changes since last release
|
|
29
|
+
- Ensure all tests pass (`pytest`)
|
|
12
30
|
- Fix any linting issues
|
|
13
31
|
|
|
14
|
-
2. **Update
|
|
32
|
+
2. **Update CHANGELOG.md for release**
|
|
33
|
+
- Change `## [Unreleased]` to `## [X.Y.Z] - YYYY-MM-DD`
|
|
34
|
+
- Add a new empty `## [Unreleased]` section above it
|
|
35
|
+
- Update comparison links at bottom if present
|
|
36
|
+
|
|
37
|
+
**Example**:
|
|
38
|
+
```markdown
|
|
39
|
+
## [Unreleased]
|
|
40
|
+
|
|
41
|
+
## [0.5.0] - 2025-10-14
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
- Feature from unreleased section (now part of 0.5.0)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
3. **Update documentation**
|
|
15
48
|
- Update README.md if needed
|
|
49
|
+
- Update AI_KNOWLEDGE_BASE.md version numbers
|
|
16
50
|
- Update any affected documentation
|
|
17
51
|
|
|
18
|
-
|
|
19
|
-
- Add a new version section under `## [Unreleased]`
|
|
20
|
-
- Document all changes following [Keep a Changelog](https://keepachangelog.com/) format
|
|
21
|
-
- Update the comparison links at the bottom of the file
|
|
22
|
-
|
|
23
|
-
4. **Commit all changes**
|
|
52
|
+
4. **Commit the release preparation**
|
|
24
53
|
```bash
|
|
25
54
|
git add -A
|
|
26
55
|
git commit -m "chore: prepare for vX.Y.Z release"
|
|
27
56
|
```
|
|
28
57
|
|
|
29
|
-
5. **Create signed tag**
|
|
58
|
+
5. **Create signed tag on the release commit**
|
|
30
59
|
```bash
|
|
31
60
|
git tag -s vX.Y.Z -m "Release vX.Y.Z: brief description"
|
|
32
61
|
```
|
|
@@ -37,6 +66,10 @@ Follow these steps IN ORDER for each release:
|
|
|
37
66
|
git push origin vX.Y.Z
|
|
38
67
|
```
|
|
39
68
|
|
|
69
|
+
### After the Release
|
|
70
|
+
|
|
71
|
+
Continue development by adding changes to the (now empty) `[Unreleased]` section.
|
|
72
|
+
|
|
40
73
|
## Example
|
|
41
74
|
|
|
42
75
|
For v0.1.8 release:
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.5.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 5, 1, '
|
|
31
|
+
__version__ = version = '0.5.1.dev4'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 5, 1, 'dev4')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g338dafeb9'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wry
|
|
3
|
-
Version: 0.5.1.
|
|
3
|
+
Version: 0.5.1.dev4
|
|
4
4
|
Summary: Why Repeat Yourself? - Define your CLI once with Pydantic models
|
|
5
5
|
Author-email: Tyler House <26489166+tahouse@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -892,7 +892,14 @@ The wry codebase is organized into focused modules:
|
|
|
892
892
|
|
|
893
893
|
## Contributing
|
|
894
894
|
|
|
895
|
-
We welcome contributions! Please
|
|
895
|
+
We welcome contributions! Please see **`CONTRIBUTING.md`** for comprehensive guidelines.
|
|
896
|
+
|
|
897
|
+
**Quick links**:
|
|
898
|
+
|
|
899
|
+
- 📖 **`CONTRIBUTING.md`** - Complete contributor guide (for humans)
|
|
900
|
+
- 🤖 **`.cursorrules`** - AI assistant quick reference
|
|
901
|
+
- 📚 **`AI_KNOWLEDGE_BASE.md`** - Complete technical reference
|
|
902
|
+
- 🚀 **`RELEASE_PROCESS.md`** - Release workflow and versioning
|
|
896
903
|
|
|
897
904
|
### Development Setup
|
|
898
905
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wry-0.5.1.dev3 → wry-0.5.1.dev4}/tests/unit/auto_model/test_auto_model_annotation_inference.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|