Repository navigation
0.15.0
v0.15.0 (2025-11-10)
✨ Features
-
initialize: Modify how custom project structure is discover but not making compulsory create a folder named 'custom' (
e35d882) -
initialize: Ensure presence of pyproject.toml file in project structure (
d677228) -
shared: Temporary remove source_path attribute in template section if custom template is selected (
c6f9e0c) -
initialize: Modify 'move' method from yaml config repository to store config file always with the name ipy.yml even if it's a file created by the user (
2e3d53f) -
initialize: Handle missing templates by setting content to None (
deb6195) -
shared: Prompt user for custom template file path when selecting custom template (
1b30673) -
shared: Ensure source path is set for custom templates (
5f51c83) -
shared: Add source path attribute to template config object (
a3f5e40) -
Delete old implementation for init command (
c99e43d) -
initialize: Update path parameters to use Path type for improved type safety (
8dc2bc2) -
initialize: Implement write method in YamlConfigRepository to move config file (
39f6c88) -
initialize: Remove config parameter from ProjectInitializer execute method (
459c8c2) -
initialize: Invoke repository write method in ProjectInitializer (
20d1c1d) -
initialize: Add config_path parameter to ProjectInitializer execute method (
fa92d33) -
repository: Add write method to ConfigRepository interface (
04ab916) -
config: Update ConfigSchema class to allow instantiation from primitives and validate content structure to avoid inconsistent data (
a6dc931) -
initialize: Add 'execute_or_raise' method to SystemConsole to encapsulate command execution and error handling when needed (
87f2b6f) -
initialize: Add property to check if version control needs initialization (
ac41ab0) -
initialize: Conditionally initialize git repository based on config setting (
187f334) -
initialize: Integrate version control setup in ProjectInitializer (
0a706c2) -
initialize: Inject VersionControlConfigurer into ProjectInitializer (
5cf1669) -
initialize: Add abstract VersionControlConfigurer class for git configuration setup (
43a24a5) -
initialize: Add abstract ProjectFormatter class for project formatting (
ab8c177) -
initialize: Add error handling for command execution in RuffProjectFormatter (
2bc7b2d) -
initialize: Call formatter after project configuration for improved output formatting (
7c467cd) -
initialize: Use console when is injected to install uv (
8feeb28) -
initialize: Use console when is injected to install dependencies (
e74c046) -
initialize: Use console when is injected to create virtual environment (
38f85ab) -
initialize: Use console when is injected to install python version (
8eb81e4) -
initialize: Use console when is injected to check if uv has been installed (
f202a3d) -
initialize: Inject system console to uv manager (
a5b6dae) -
initialize: Handle unexpected errors during command execution (
951398c) -
initialize: Add method to CommandExecutionResult to know if it has succeeded or not (
6dd97dc) -
initialize: Implement command execution using subprocess (
1bad062) -
initialize: Modify EnvManager interface to adhere to previous DependencyManager manager to keep the same behavior until refactor (
09d68fc) -
initialize: Integrate EnvManager into ProjectInitializer for environment setup (
e307135) -
initialize: Introduce abstract Node class with create method for extensibility (
8fbde36) -
initialize: Implement directory and file creation methods in FileSystemNodeWriter (
126f87c) -
initialize: Add FileSystemNodeWriter for directory and file creation (
6d555da) -
initialize: Implement recursive creation of child nodes in directory (
94a0a46) -
initialize: Add support for creating init.py in Python modules (
45d77c2) -
initialize: Add create method to handle directory creation with NodeWriter (
f97ebb1) -
initialize: Add create method to handle file creation using NodeWriter (
dd741c4) -
initialize: Create abstract base class for file and directory creation (
339ca96) -
initialize: Add support for creating files in the file system (
7845c4d) -
writer: Implement write method to create directories and init.py for Python modules (
d720f7d) -
initialize: Modify project initializer use case to receive the folder where the project will be created (
b507bc4) -
initialize: Write project structure using writer (
c9952ba) -
initialize: Add ProjectWriter dependency to ProjectInitializer (
16a645c) -
initialize: Make Directory iterable through iteration of its children (
0c4bf05) -
initialize: Add flatten method to ProjectStructure for iterating through nodes (
724b96c) -
initialize: Modify ProjectRenderer port and adapter signatures to return a ProjectStructure (
b0c251f) -
initialize: Add iter and len methods to ProjectStructure class to be able to iterate through them (
d733664) -
initialize: Implement ProjectStructure class for building project nodes (
a8a36c2) -
initialize: Add Directory class with path building and representation methods (
bdfcd14) -
initialize: Add repr method to File class (
2e88d75)
🪲 Bug Fixes
-
initialize: Add pyproject file to standard template in acceptance tests (
1a9e6e3) -
initialize: Use file name and extension as default template name if not provided in file node (
e07a2cb) -
templates: Correct template path for value_object in YAML configuration (
cd4d6a4) -
templates: Write correct template name for python version file (
b6adb23) -
templates: Remove 'project_structure/' prefix from all templates (
60cecf0) -
initialize: Introduce UnknownTemplateError (
d507ed7) -
initialize: Introduce UnknownNodeTypeError (
b155055) -
templates: Format templates correctly so ruff formatter does not fail (
30bb6b1) -
initialize: Improve error message formatting for command execution failures (
d8bfc8d) -
initialize: Correct failing uv test due to interface change (
a65910f) -
initialize: Update import of NodeWriter to be conditional for type checking (
1afe2ad)
⚙️ Build System
- Fix misspelling in pyproject.toml pytest config section (
84cf27c)
♻️ Refactoring
-
shared: Remove unused methods from ConfigSchema class (
5ef231f) -
Inline all messages in call to super method in application errors (
3980af5) -
shared: Delete error types enum (
9ef7981) -
shared: Remove 'type' attribute in application errors as it's not used (
00674fa) -
initialize: Streamline project setup process by modularizing methods (
f9f0632) -
config: Move ConfigSchema domain object to shared folder (
fbd8bd0) -
initialize: Delete config reader use case (
2bfe0cc) -
initialize: Rename destination_path to base_directory for clarity (
bc96230) -
cli: Update working directory handling for project initialization (
b9025e8) -
initialize: Add custom error for missing configuration files (
1daec9d) -
initialize: Rename write method to move for clarity (
f29dbaa) -
initialize: Allow optional user template path in initializer (
6b722e2) -
initialize: Streamline project initialization by integrating ProjectInitializer and simplifying config handling (
791a841) -
templates: Add 'template' field to all templates structures (
745bcd7) -
initialize: Remove repository dependency and update execute method signature (
148d3bb) -
initialize: Simplify project creation by removing custom template option (
ca697d0) -
initialize: Change config_file_path type to str and convert to Path in execute method (
961b162) -
repository: Rename config_repository to yaml_config_repository and update imports (
688937a) -
config: Update ConfigRepository to return ConfigSchema instead of dict (
4d5e4ed) -
initialize: Add ConfigRepository dependency to ProjectInitializer (
440a420) -
config: Remove parser port and adapter now that config schema validates structure (
d228200) -
initialize: Simplify ConfigReader by removing parser dependency and using ConfigSchema for configuration parsing (
ed8b871) -
config: Modify config generator to instantiate a ConfigSchema instead of using parser (
4ac7e15) -
config: Move ConfigKeyNotPresent and EmptyConfigurationNotAllowed to config_schema.py (
0ecb482) -
initialize: Replace command execution with execute_or_raise for improved error handling in pdm env manager (
4903ece) -
initialize: Replace command execution with execute_or_raise for improved error handling in uv env manager (
2972f57) -
initialize: Replace command execution with execute_or_raise for improved error handling (
506cd56) -
initialize: Modify GitConfigurer internal methods to use 'execute_or_raise' from console for those commands that can fail (
3c18406) -
initialize: Inject console into GitConfigurer and update setup method (
551419c) -
initialize: Remove project_directory parameter from GitConfigurer (
d376364) -
initialize: Remove unused _run_command method from GitConfigurer (
ac76479) -
initialize: Streamline command execution by removing console checks in GitConfigurer methods (
cd88a92) -
initialize: Use console when is injected to execute git commands (
1299f0a) -
initialize: Add console parameter to GitConfigurer constructor (
4f9e9e9) -
initialize: Rename setup_repository to setup and update parameter naming (
4bff249) -
initialize: Reorganize git configurer imports and file structure (
e894a87) -
initialize: Make RuffProjectFormatter inherit from ProjectFormatter (
278b16e) -
initialize: Reorganize CommandExecutionError import and remove redundant definitions (
b8f1074) -
initialize: Inject console into RuffProjectFormatter (
4e147b7) -
initialize: Remove project_directory parameter from RuffProjectFormatter (
0a6d292) -
initialize: Use console when is injected to run format command (
f87905c) -
formatter: Add console parameter to RuffProjectFormatter for enhanced flexibility (
b741778) -
initialize: Rename ProjectFormatter to UvxProjectFormatter and update references (
bf3078c) -
initialize: Move ProjectFormatter to initialize.infra for better organization (
8be7870) -
initialize: Add ProjectFormatter to ProjectInitializer for enhanced project formatting (
2603d66) -
initialize: Inject console instance into env manager factory instead of passing project folder path (
bc695ef) -
initialize: Remove 'project_directory' attribute from env managers as is console who executes the commands (
327922f) -
initialize: Replace subprocess calls with SystemConsole for command execution in pdm env manager (
fba2167) -
initialize: Extract method to encapsulate all the logic executed to install one dependency (
750f7e7) -
initialize: Extract method for raising command execution error (
02edb57) -
initialize: Remove unused subprocess command execution method (
380bb4f) -
initialize: Simplify setup method by removing unnecessary try-except block (
88bb72a) -
initialize: Clean up UvEnvManager removing old implementation that run directly commands in the console (
699db31) -
initialize: Pull down _run_command and attributes from EnvManager to leave it as a pure interface and begin refactor to inject SystemConsole (
b197e68) -
initialize: Extract command execution method to run commands (
1753fd4) -
initialize: Enhance error message for unknown dependency managers (
e1dcb29) -
dependency-manager: Remove old files for dependency manager concept (
41b2558) -
initialize: Move previous implementation for dependencies managers to env manager concept in new initialize command architecture (
aacc3d3) -
initialize: Remove config parameter from write method in ProjectWriter and FileSystemProjectWriter (
d30d142) -
initialize: Convert File and Directory classes to inherit from Node (
6abad70) -
initialize: Rename nodes module to node and update imports (
f91b46c) -
initialize: Simplify node writing logic by delegating to node's create method (
ad2b780) -
initialize: Rename build_path_for to _build_path_for and update create method (
5fc167d) -
initialize: Convert 'build_path_for' method in File to protected as now it wont be accessed from outside (
f211a85) -
initialize: Build path for file and directory using Path instead of string (
a0ca50c) -
initialize: Update import statement for NodeType in jinja_project_renderer.py (
6c1531c) -
initialize: Update jinja project renderer to return ProjectStructure using named constructor (
6e20b78) -
initialize: Modify project structure constructor to receive the list of Nodes and implement a named constructor to build the nodes from raw structure (
2eeba6f)
Detailed Changes: 0.14.0...0.15.0