@@ -782,18 +782,30 @@ def _cmd_validate_package(self, args: str) -> bool:
782782 try :
783783 package_path = Path (parsed_args ['package_dir' ]).resolve ()
784784
785- # Use the validator from environment manager
786- is_valid , validation_results = mcp_manager .hatch_env_manager .package_validator .validate_package (package_path )
785+ # Create validator with registry data from environment manager
786+ from hatch_validator import HatchPackageValidator
787+ validator = HatchPackageValidator (
788+ version = "latest" ,
789+ allow_local_dependencies = True ,
790+ registry_data = mcp_manager .hatch_env_manager .registry_data
791+ )
792+
793+ # Validate the package
794+ is_valid , validation_results = validator .validate_package (package_path )
787795
788796 if is_valid :
789797 self .logger .info (f"Package validation SUCCESSFUL: { package_path } " )
790798 else :
791799 self .logger .warning (f"Package validation FAILED: { package_path } " )
800+
801+ # Print detailed validation results if available
792802 if validation_results and isinstance (validation_results , dict ):
793- for key , issues in validation_results .items ():
794- self .logger .warning (f"\n { key } issues:" )
795- for issue in issues :
796- self .logger .warning (f"- { issue } " )
803+ for category , result in validation_results .items ():
804+ if category != 'valid' and category != 'metadata' and isinstance (result , dict ):
805+ if not result .get ('valid' , True ) and result .get ('errors' ):
806+ self .logger .warning (f"\n { category .replace ('_' , ' ' ).title ()} errors:" )
807+ for error in result ['errors' ]:
808+ self .logger .warning (f" - { error } " )
797809
798810 except Exception as e :
799811 self .logger .error (f"Error validating package: { e } " )
0 commit comments