Rename terminology to industry standard terms

- Grove → Project
- Tree → Package
- Fruit → Artifact
- Graft → Tag
- Cultivate → Upload
- Harvest → Download

Updated across:
- Backend models, schemas, and routes
- Frontend types, API client, and components
- README documentation
- API endpoints now use /project/:project/packages pattern
This commit is contained in:
Mondo Diaz
2025-12-08 10:38:44 -06:00
parent 386ea0df4d
commit ff7df9eb3f
12 changed files with 470 additions and 485 deletions

View File

@@ -4,14 +4,14 @@ from pydantic import BaseModel
from uuid import UUID
# Grove schemas
class GroveCreate(BaseModel):
# Project schemas
class ProjectCreate(BaseModel):
name: str
description: Optional[str] = None
is_public: bool = True
class GroveResponse(BaseModel):
class ProjectResponse(BaseModel):
id: UUID
name: str
description: Optional[str]
@@ -24,15 +24,15 @@ class GroveResponse(BaseModel):
from_attributes = True
# Tree schemas
class TreeCreate(BaseModel):
# Package schemas
class PackageCreate(BaseModel):
name: str
description: Optional[str] = None
class TreeResponse(BaseModel):
class PackageResponse(BaseModel):
id: UUID
grove_id: UUID
project_id: UUID
name: str
description: Optional[str]
created_at: datetime
@@ -42,8 +42,8 @@ class TreeResponse(BaseModel):
from_attributes = True
# Fruit schemas
class FruitResponse(BaseModel):
# Artifact schemas
class ArtifactResponse(BaseModel):
id: str
size: int
content_type: Optional[str]
@@ -56,17 +56,17 @@ class FruitResponse(BaseModel):
from_attributes = True
# Graft schemas
class GraftCreate(BaseModel):
# Tag schemas
class TagCreate(BaseModel):
name: str
fruit_id: str
artifact_id: str
class GraftResponse(BaseModel):
class TagResponse(BaseModel):
id: UUID
tree_id: UUID
package_id: UUID
name: str
fruit_id: str
artifact_id: str
created_at: datetime
created_by: str
@@ -74,19 +74,19 @@ class GraftResponse(BaseModel):
from_attributes = True
# Cultivate response (upload)
class CultivateResponse(BaseModel):
fruit_id: str
# Upload response
class UploadResponse(BaseModel):
artifact_id: str
size: int
grove: str
tree: str
project: str
package: str
tag: Optional[str]
# Consumer schemas
class ConsumerResponse(BaseModel):
id: UUID
tree_id: UUID
package_id: UUID
project_url: str
last_access: datetime
created_at: datetime