Phase 1: Extract Domain Types ============================= - Create internal/domain/ package with canonical types: - domain/task.go: Task, Attempt structs - domain/tracking.go: TrackingConfig and MLflow/TensorBoard/Wandb configs - domain/dataset.go: DatasetSpec - domain/status.go: JobStatus constants - domain/errors.go: FailureClass system with classification functions - domain/doc.go: package documentation - Update queue/task.go to re-export domain types (backward compatibility) - Update TUI model/state.go to use domain types via type aliases - Simplify TUI services: remove ~60 lines of conversion functions Phase 2: Delete ErrorCategory System ==================================== - Remove deprecated ErrorCategory type and constants - Remove TaskError struct and related functions - Remove mapping functions: ClassifyError, IsRetryable, GetUserMessage, RetryDelay - Update all queue implementations to use domain.FailureClass directly: - queue/metrics.go: RecordTaskFailure/Retry now take FailureClass - queue/queue.go: RetryTask uses domain.ClassifyFailure - queue/filesystem_queue.go: RetryTask and MoveToDeadLetterQueue updated - queue/sqlite_queue.go: RetryTask and MoveToDeadLetterQueue updated Lines eliminated: ~190 lines of conversion and mapping code Result: Single source of truth for domain types and error classification
32 lines
900 B
Go
32 lines
900 B
Go
// Package queue provides task queue functionality
|
|
package queue
|
|
|
|
import (
|
|
"github.com/jfraeys/fetch_ml/internal/domain"
|
|
)
|
|
|
|
// Re-export from domain for backward compatibility
|
|
// Deprecated: Use internal/domain directly
|
|
type (
|
|
FailureClass = domain.FailureClass
|
|
FailureInfo = domain.FailureInfo
|
|
)
|
|
|
|
// Re-export functions from domain
|
|
// Deprecated: Use internal/domain directly
|
|
var (
|
|
ClassifyFailure = domain.ClassifyFailure
|
|
GetFailureSuggestion = domain.GetFailureSuggestion
|
|
ShouldAutoRetry = domain.ShouldAutoRetry
|
|
RetryDelayForClass = domain.RetryDelayForClass
|
|
)
|
|
|
|
// Re-export constants
|
|
// Deprecated: Use internal/domain directly
|
|
const (
|
|
FailureInfrastructure = domain.FailureInfrastructure
|
|
FailureCode = domain.FailureCode
|
|
FailureData = domain.FailureData
|
|
FailureResource = domain.FailureResource
|
|
FailureUnknown = domain.FailureUnknown
|
|
)
|