Skip to content

Releases: dimanu-py/instant-python

0.21.0

12 Dec 10:18

Choose a tag to compare

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...

Read more

0.20.0

05 Dec 08:07

Choose a tag to compare

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

27 Nov 10:58

Choose a tag to compare

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

24 Nov 15:39

Choose a tag to compare

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

19 Nov 17:42

Choose a tag to compare

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

17 Nov 11:27

Choose a tag to compare

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

12 Nov 17:01

Choose a tag to compare

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

12 Nov 10:12

Choose a tag to compare

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

10 Nov 20:35

Choose a tag to compare

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

10 Nov 20:16

Choose a tag to compare

v0.15.1 (2025-11-10)

🪲 Bug Fixes

  • initialize: Handle KeyError in template rendering (cedeb7b)

Detailed Changes: 0.15.0...0.15.1