Releases: dimanu-py/instant-python
0.21.0
v0.21.0 (2025-12-12)
✨ Features
-
metrics: Set default values for api_key and host in PostHogConfig (
8cfd3c2) -
metrics: Add metrics disabled check in PostHogMetricsReporter to prevent sending metrics when disabled (
11e3cd3) -
config: Add metrics_enabled field to configuration for controlling metrics collection (
841cd9f) -
metrics: Add error metrics handling in metrics middleware for improved exception tracking (
7192e88) -
metrics: Implement error handling in send_error method for capturing exceptions (
49d227f) -
metrics: Add error handling for command failures in usage metrics sender (
364a731) -
metrics: Create class to store all data related to error event (
8174b3f) -
metrics: Add send_error method to metrics reporter for error handling (
c3e2cdb) -
metrics: Add ConfigSnapshotPrimitives type and to_primitives method (
eb28115) -
metrics: Add snapshot creator instance inside metrics middleware (
a7f4984) -
metrics: Add method to create unknown ConfigSnapshot and handle missing config file (
4e17a87) -
metrics: Implement method to be able to compare two snapshots (
ec00d47) -
metrics: Implement 'is_unknown' method in config snapshot class to determine if it has been properly read or not (
910c8d1) -
metrics: Implement use case to create a snapshot of the configuration file (
4ab1892) -
shared: Add 'for_metrics' method in config schema to be able to get only the data I need for metrics and not need to access all the internals of the class (
feb27b7) -
metrics: Inject config repository to snapshot creator to be able to read an existing configuration file (
e10e26c) -
metrics: Create config snapshot class to store all the data related to the config file that will be sent to metrics (
32db003) -
metrics: Integrate MetricsMiddleware into InstantPythonTyper for enhanced command execution metrics (
2b9db62) -
metrics: Add MetricsMiddleware to handle command execution and send usage metrics data after command execution has finished (
bdbbe00) -
metrics: Implement execute method in metrics sender use case to send usage metrics data (
2fbecb8) -
metrics: Validate distinct ID format when loading from metrics file (
007c9d2) -
metrics: Handle JSON decoding errors and missing distinct ID in metrics file (
c2e6be6) -
metrics: Retrieve distinct ID from metrics.json if it exists so an existing user does not generate a new id (
9b52f46) -
metrics: Store distinct ID in metrics.json on first execution (
da050c9) -
metrics: Add UserIdentityManager to generate distinct user IDs (
36ef740) -
metrics: Implement fire-and-forget strategy for metric sending (
6cc0761) -
metrics: Enable sync mode for PostHog client initialization (
51c52bc) -
metrics: Capture event to be sent to posthog using a temporary distinct_id (
db27119) -
metrics: Create posthog client inside reporter to be able to send metrics (
59aa393) -
metrics: Create post hog config class to handle env variables related with post hog (
95a4516) -
metrics: Create dataclass to store all data related to usage metrics that will be send to posthog (
0368a98)
⚙️ Build System
-
pyproject: Add platformdirs as production dependency as it's not built-in with all supported python versions (
ef5dcf3) -
pyproject: Update dependencies to remove vulnerability (
c858003) -
pyproject: Add vcr dependency to run posthog integration test without affecting current project (
ccc11f0) -
pyproject: Add pydantic settings dependency to handle env variables gracefully (
0b8b19f)
♻️ Refactoring
-
metrics: Streamline success metrics handling in metrics middleware (
65962b6) -
metrics: Update send_error method to include error parameter (
61210ac) -
metrics: Rename send method to send_success in metrics reporter (
462db4c) -
metrics: Rename execute method to execute_on_success (
ac34809) -
metrics: Modify metrics middleware to take config snapshots to avoid errors when init command finished its execution and config file is moved (
0716f62) -
metrics: Enhance UsageMetricsEvent with dependency_manager and adjust built_in_features initialization (
0281909) -
metrics: Update execute method to accept config_snapshot parameter and not need to read configuration file (
ee03fc9) -
metrics: Rename UsageMetricsData to UsageMetricsEvent for clarity (
24a47ab) -
metrics: Simplify UsageMetricsSender initialization by removing repository parameter (
e5d5917) -
metrics: Rename method to improve clarity in config reading (
9468e1a) -
metrics: Update ConfigSnapshotCreator to utilize for_metrics method for improved config handling (
2ce0140) -
config: Improve error handling in configuration file loading (
1114c17) -
metrics: Extract configuration data handling into a separate method and streamline metrics data creation (
e316523) -
metrics: Simplify execute method by removing success and error message parameters now that it will be handled automatically by posthog reporter (
77469a9) -
metrics: Rename get_distinct_id method to get_or_create_distinct_id for clarity ([
0a068c7](0a068c7e...
0.20.0
v0.20.0 (2025-12-05)
✨ Features
-
schema: Add JSON schema for custom project template structure to enable syntax and key/value detection (
bf918b5) -
schema: Add JSON schema for instant-python project configuration to enable syntax and key/value detection when modifying ipy config file manually (
2e3d4f7) -
templates: Add autostyle command to makefile to automatically format, lint and commit modified files (
96c4610) -
initialize: Implement 'write' method in yaml config repository to be able to write ipy config file in working directory (
ca04b4c) -
initialize: Add 'write' method to config repository to be able to use it with config command and move it to shared (
e081a34)
⚙️ Build System
-
makefile: Add command to makefile to automatically format, lint and commit modified files (
2837703) -
pyproject: Add posthog dependency (
b3df1c0) -
makefile: Modify add-dep and remove-dep commands in makefile to not need scripts files (
b9d5286)
♻️ Refactoring
-
templates: Rename all templates for project structure to remove the '.j2' extension as it is not need it (
cde9f87) -
initialize: Modify file name for project structure template to not include j2 extension (
e8cd1f1) -
cli: Modify main callback to print ipy help if no subcommand is called (
1784a3d) -
initialize: Move config repository port and its adapter to shared folder so it can be properly shared among commands (
438f89c) -
config: Remove legacy config writer now that its behavior has been unified in the config repository (
3bcd3c9) -
config: Extract semantic method to keep use case with the same abstraction level and make it more readable (
7077e6a) -
config: Modify config generator dependency to receive a config repository instead of a config writer (
89ed351) -
initialize: Modify 'write' method so it uses absolute config file path instead of creating it (
5acc795) -
shared: Make default config file path absolute from users root folder to avoid incorrect destination and relative path errors (
074e4a7)
Detailed Changes: 0.19.1...0.20.0
0.19.1
v0.19.1 (2025-11-27)
🪲 Bug Fixes
-
templates: Correct indentation level for source and test templates in standard project (
54b36ca) -
templates: Remove aggregate and value object file from event bus folder structure now that these implementation have delegated to sindripy (
13a7780) -
templates: Modify EventAggregate template to use Aggregate from sindripy instead of legacy aggregate that doesn't exist anymore (
dcbf2d3) -
templates: Include sindripy dependency when event bus feature is selected to be able to use the Aggregate implementation (
b5c3000)
♻️ Refactoring
-
templates: Rename value objects template to errors now that it only contains errors and value objects are handled with sindripy (
df8458b) -
templates: Move new advanced macros to root of templates folder and use it along project structure templates (
736314c) -
templates: Remove legacy templates now that they are better organized (
c1b6c44) -
templates: Update main templates for standard project structure using new macros and organized templates folder (
4fe22f3) -
templates: Add advanced macros to be able to reuse render logic for templates and avoid conditionals (
76cc909) -
templates: Separate and modularize structure of standard project template in layers (
7123c85) -
templates: Update main templates for ddd project structure using new macros and organized templates folder (
613f361) -
templates: Add advanced macros to be able to reuse render logic for templates and avoid conditionals (
f96a178) -
templates: Separate and modularize structure of ddd template in layers (
66044d5) -
templates: Move config files for projects templates to specific folder for better organization (
5bc4e15) -
templates: Move github related templates to specific folder for better organization (
ee42c25) -
templates: Move fastapi templates to specific folders for better organization (
7437c95) -
templates: Move documentation templates such as readme, citation and security to specific folders for better organization (
3608d27) -
templates: Modify test structure to include application folder too (
b0bc458) -
templates: Remove conditional logic to include features in infra tests for clean architecture and use render_children_for macro to make it clearer and easier to extend (
87fe7fc) -
templates: Update test infra template to include mock event bus from template (
20fd887) -
templates: Do not include mock event bus in test domain folder for clean architecture template (
20e1d73) -
templates: Modify template paths for event features pointing to better organized folders (
35e56ac) -
templates: Organize events templates inside a specific folder to keep them better organized (
2552a60) -
templates: Update template paths in clean architecture project structure to use new organized persistence templates (
ad4fced) -
templates: Organize persistence templates inside a specific folder to keep them better organized (
b3ff817) -
templates: Remove legacy templates for clean architecture structure now that new version is stable (
d5293fc) -
templates: Modify jinja macro to be able to handle cases where one template file has to be included in more than once scenario so it's not get created two times (
99e6572) -
templates: Rename old main structure, source and test templates files to mark them as legacy but having them as backup (
2ea3614) -
templates: Separate clean architecture source and test structure in separate folders to handle easily each folder and its features (
f92b499) -
templates: Write advanced macros to render children blocks and built in features for clean architecture (
720bf69)
Detailed Changes: 0.19.0...0.19.1
0.19.0
v0.19.0 (2025-11-24)
✨ Features
- cli: Add logic to return installed version of instant python with --version flag (
f083e18)
Detailed Changes: 0.18.1...0.19.0
0.18.1
v0.18.1 (2025-11-19)
♻️ Refactoring
- initialize: Improve error message when configuration file is not found (
851f725)
Detailed Changes: 0.18.0...0.18.1
0.18.0
v0.18.0 (2025-11-17)
✨ Features
-
templates: Add sindri value objects error handler for fastapi application if value objects feature is selected (
8ac4773) -
templates: Remove value object folders from project structure templates (
6029ca6) -
templates: Remove value object implementation templates now that this feature is provided by sindripy (
1164d85) -
templates: Add sindripy to value_objects dependencies (
b563be5)
♻️ Refactoring
-
templates: Remove faker and random generator as it's not need it (
0ba348b) -
templates: Stop including pytest if value objects feature is selected as it doesn't include tests anymore (
c747731) -
templates: Include random generator template only if value objects feature is not selected (
2ad49c3) -
templates: Remove test value object templates from project structures now that it has been substituted by sindripy library (
9e27b5b)
Detailed Changes: 0.17.0...0.18.0
0.17.0
v0.17.0 (2025-11-12)
✨ Features
- templates: Include conftest with async session fixture when async sqlalchemy built in feature is included (
b105b6a)
🪲 Bug Fixes
-
initialize: Modify virtual environment creation with uv to install main and dev dependencies (
73696f6) -
templates: Include correctly logger templates when is selected in domain driven design (
5348fe3)
Detailed Changes: 0.16.0...0.17.0
0.16.0
v0.16.0 (2025-11-12)
✨ Features
-
initialize: Add resolve_import_path filter to jinja environment (
22d7fa7) -
initialize: Add _resolve_import_path function to be able to get the full import path (
1b284ab)
🪲 Bug Fixes
-
templates: Include pydantic and pydantic settings deps by default when async sqlalchemy is selected (
a8b1f5d) -
templates: Correct import in domain_event_json_deserializer.py template (
33a8864) -
templates: Correct templates names in event_bus_infra.yml.j2 (
41a49f8) -
templates: Write correct names in GitHub action and value object templates (
7b96b4c) -
templates: Import UUID inside uuid.py template (
c5d0045) -
templates: Correct wrong indentation in dependencies in pyproject.toml file and write them in separate lines (
60c6ca0)
♻️ Refactoring
-
templates: Move persistence folder with postgres settings structure to its separate template and import it as expected in sqlalchemy and migrator (
022ead8) -
templates: Modify imports in boilerplate to import postgres settings from persistence (
f5cefc3) -
templates: Write postgres settings file inside persistence folder instead of persistence/sqlalchemy (
841f24e) -
templates: Include models metadata file only if async sqlalchemy has been included (
ca892e6) -
templates: Remove extra empty lines in makefile template (
1cb2153) -
templates: Update how development dependencies are set in the pyproject.toml template file (
9613543) -
templates: Update how production dependencies are set in the pyproject.toml template file (
7dd9be7) -
templates: Update pyproject.toml to support dynamic dependency manager and conditional ruff configuration (
5209286) -
templates: Modify github release workflow to use user's dependency manager to build library instead of hardcoding uv (
6555ba1) -
templates: Modify default github ci workflow to use user's dependency manager to run tests instead of hardcoding uv (
d2a8fd0) -
templates: Modify makefile template to be easier to change with local variables (
9ba8ead) -
templates: Include pre push stages in pre commit hook file only if makefile built in feature is selected (
e138a0e) -
templates: Simplify import statements using resolve_import_path filter (
644da31)
Detailed Changes: 0.15.2...0.16.0
0.15.2
v0.15.2 (2025-11-10)
🪲 Bug Fixes
- initialize: Add warning for missing templates in file content (
6574822)
Detailed Changes: 0.15.1...0.15.2
0.15.1
v0.15.1 (2025-11-10)
🪲 Bug Fixes
- initialize: Handle KeyError in template rendering (
cedeb7b)
Detailed Changes: 0.15.0...0.15.1