Skip to content

Commit 6569385

Browse files
authored
Merge pull request #86 from nebari-dev/rename-env-to-workspace
refactor: rename environment to workspace
2 parents 67503e1 + 0caefcc commit 6569385

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+2581
-2581
lines changed

app.go

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -191,89 +191,89 @@ func (a *App) startEmbeddedServer(cfg *config.Config, database *gorm.DB) {
191191
logToFile("startEmbeddedServer: server stopped")
192192
}
193193

194-
// Environment represents a simplified environment for the frontend
195-
type Environment struct {
194+
// WailsWorkspace represents a simplified workspace for the Wails frontend
195+
type WailsWorkspace struct {
196196
ID string `json:"id"`
197197
Name string `json:"name"`
198198
Status string `json:"status"`
199199
PackageManager string `json:"packageManager"`
200200
CreatedAt string `json:"createdAt"`
201201
}
202202

203-
// ListEnvironments returns all environments
204-
func (a *App) ListEnvironments() ([]Environment, error) {
203+
// ListWorkspaces returns all workspaces
204+
func (a *App) ListWorkspaces() ([]WailsWorkspace, error) {
205205
if a.db == nil {
206206
return nil, fmt.Errorf("database not connected")
207207
}
208208

209-
var envs []models.Environment
210-
if err := a.db.Order("created_at DESC").Find(&envs).Error; err != nil {
209+
var workspaces []models.Workspace
210+
if err := a.db.Order("created_at DESC").Find(&workspaces).Error; err != nil {
211211
return nil, err
212212
}
213213

214-
result := make([]Environment, len(envs))
215-
for i, env := range envs {
216-
result[i] = Environment{
217-
ID: env.ID.String(),
218-
Name: env.Name,
219-
Status: string(env.Status),
220-
PackageManager: env.PackageManager,
221-
CreatedAt: env.CreatedAt.Format("2006-01-02 15:04:05"),
214+
result := make([]WailsWorkspace, len(workspaces))
215+
for i, ws := range workspaces {
216+
result[i] = WailsWorkspace{
217+
ID: ws.ID.String(),
218+
Name: ws.Name,
219+
Status: string(ws.Status),
220+
PackageManager: ws.PackageManager,
221+
CreatedAt: ws.CreatedAt.Format("2006-01-02 15:04:05"),
222222
}
223223
}
224224
return result, nil
225225
}
226226

227-
// CreateEnvironment creates a new environment
228-
func (a *App) CreateEnvironment(name string, pixiToml string) (*Environment, error) {
227+
// CreateWorkspace creates a new workspace
228+
func (a *App) CreateWorkspace(name string, pixiToml string) (*WailsWorkspace, error) {
229229
if a.db == nil {
230230
return nil, fmt.Errorf("database not connected")
231231
}
232232

233-
env := models.Environment{
233+
ws := models.Workspace{
234234
Name: name,
235-
Status: models.EnvStatusPending,
235+
Status: models.WsStatusPending,
236236
PackageManager: "pixi",
237237
}
238238

239-
if err := a.db.Create(&env).Error; err != nil {
239+
if err := a.db.Create(&ws).Error; err != nil {
240240
return nil, err
241241
}
242242

243-
return &Environment{
244-
ID: env.ID.String(),
245-
Name: env.Name,
246-
Status: string(env.Status),
247-
PackageManager: env.PackageManager,
248-
CreatedAt: env.CreatedAt.Format("2006-01-02 15:04:05"),
243+
return &WailsWorkspace{
244+
ID: ws.ID.String(),
245+
Name: ws.Name,
246+
Status: string(ws.Status),
247+
PackageManager: ws.PackageManager,
248+
CreatedAt: ws.CreatedAt.Format("2006-01-02 15:04:05"),
249249
}, nil
250250
}
251251

252-
// DeleteEnvironment deletes an environment by ID
253-
func (a *App) DeleteEnvironment(id string) error {
252+
// DeleteWorkspace deletes a workspace by ID
253+
func (a *App) DeleteWorkspace(id string) error {
254254
if a.db == nil {
255255
return fmt.Errorf("database not connected")
256256
}
257257

258-
return a.db.Where("id = ?", id).Delete(&models.Environment{}).Error
258+
return a.db.Where("id = ?", id).Delete(&models.Workspace{}).Error
259259
}
260260

261-
// GetEnvironment gets a single environment by ID
262-
func (a *App) GetEnvironment(id string) (*Environment, error) {
261+
// GetWorkspace gets a single workspace by ID
262+
func (a *App) GetWorkspace(id string) (*WailsWorkspace, error) {
263263
if a.db == nil {
264264
return nil, fmt.Errorf("database not connected")
265265
}
266266

267-
var env models.Environment
268-
if err := a.db.Where("id = ?", id).First(&env).Error; err != nil {
267+
var ws models.Workspace
268+
if err := a.db.Where("id = ?", id).First(&ws).Error; err != nil {
269269
return nil, err
270270
}
271271

272-
return &Environment{
273-
ID: env.ID.String(),
274-
Name: env.Name,
275-
Status: string(env.Status),
276-
PackageManager: env.PackageManager,
277-
CreatedAt: env.CreatedAt.Format("2006-01-02 15:04:05"),
272+
return &WailsWorkspace{
273+
ID: ws.ID.String(),
274+
Name: ws.Name,
275+
Status: string(ws.Status),
276+
PackageManager: ws.PackageManager,
277+
CreatedAt: ws.CreatedAt.Format("2006-01-02 15:04:05"),
278278
}, nil
279279
}

cmd/nebi/client.go

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import (
1212
"github.com/nebari-dev/nebi/internal/localstore"
1313
)
1414

15-
// ErrEnvNotFound is returned when an environment name is not found on the server.
16-
var ErrEnvNotFound = errors.New("environment not found on server")
15+
// ErrWsNotFound is returned when a workspace name is not found on the server.
16+
var ErrWsNotFound = errors.New("workspace not found on server")
1717

1818
// resolveServerFlag returns the server argument, falling back to the default server from config.
1919
func resolveServerFlag(serverArg string) (string, error) {
@@ -50,20 +50,20 @@ func getAuthenticatedClient(serverArg string) (*cliclient.Client, error) {
5050
return cliclient.New(serverURL, cred.Token), nil
5151
}
5252

53-
// findEnvByName searches for an environment by name on the server.
54-
func findEnvByName(client *cliclient.Client, ctx context.Context, name string) (*cliclient.Environment, error) {
55-
envs, err := client.ListEnvironments(ctx)
53+
// findWsByName searches for a workspace by name on the server.
54+
func findWsByName(client *cliclient.Client, ctx context.Context, name string) (*cliclient.Workspace, error) {
55+
workspaces, err := client.ListWorkspaces(ctx)
5656
if err != nil {
57-
return nil, fmt.Errorf("listing environments: %w", err)
57+
return nil, fmt.Errorf("listing workspaces: %w", err)
5858
}
5959

60-
for i := range envs {
61-
if envs[i].Name == name {
62-
return &envs[i], nil
60+
for i := range workspaces {
61+
if workspaces[i].Name == name {
62+
return &workspaces[i], nil
6363
}
6464
}
6565

66-
return nil, fmt.Errorf("%w: %q", ErrEnvNotFound, name)
66+
return nil, fmt.Errorf("%w: %q", ErrWsNotFound, name)
6767
}
6868

6969
// findGlobalWorkspaceByName looks up a global workspace by name in the local index.
@@ -161,9 +161,9 @@ func saveOrigin(server, name, tag, action, tomlContent, lockContent string) erro
161161
return store.SaveIndex(idx)
162162
}
163163

164-
// parseEnvRef parses a reference in the format env:tag.
165-
// Returns (env, tag) where tag may be empty if not specified.
166-
func parseEnvRef(ref string) (string, string) {
164+
// parseWsRef parses a reference in the format workspace:tag.
165+
// Returns (workspace, tag) where tag may be empty if not specified.
166+
func parseWsRef(ref string) (string, string) {
167167
if idx := strings.LastIndex(ref, ":"); idx != -1 {
168168
return ref[:idx], ref[idx+1:]
169169
}
@@ -179,21 +179,21 @@ func formatTimestamp(ts string) string {
179179
return t.Format("2006-01-02 15:04")
180180
}
181181

182-
// waitForEnvReady polls until the environment reaches ready state or timeout.
183-
func waitForEnvReady(client *cliclient.Client, ctx context.Context, envID string, timeout time.Duration) (*cliclient.Environment, error) {
182+
// waitForWsReady polls until the workspace reaches ready state or timeout.
183+
func waitForWsReady(client *cliclient.Client, ctx context.Context, wsID string, timeout time.Duration) (*cliclient.Workspace, error) {
184184
deadline := time.Now().Add(timeout)
185185
for time.Now().Before(deadline) {
186-
env, err := client.GetEnvironment(ctx, envID)
186+
ws, err := client.GetWorkspace(ctx, wsID)
187187
if err != nil {
188-
return nil, fmt.Errorf("failed to get environment status: %w", err)
188+
return nil, fmt.Errorf("failed to get workspace status: %w", err)
189189
}
190-
switch env.Status {
190+
switch ws.Status {
191191
case "ready":
192-
return env, nil
192+
return ws, nil
193193
case "failed", "error":
194-
return nil, fmt.Errorf("environment setup failed")
194+
return nil, fmt.Errorf("workspace setup failed")
195195
}
196196
time.Sleep(500 * time.Millisecond)
197197
}
198-
return nil, fmt.Errorf("timeout waiting for environment to be ready")
198+
return nil, fmt.Errorf("timeout waiting for workspace to be ready")
199199
}

cmd/nebi/diff.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ func resolveLocalSource(dir, defaultLabel string) (*diffSource, error) {
199199
}
200200

201201
func resolveServerSource(ref string) (*diffSource, error) {
202-
envName, tag := parseEnvRef(ref)
202+
wsName, tag := parseWsRef(ref)
203203

204204
server, err := resolveServerFlag(diffServer)
205205
if err != nil {
@@ -213,26 +213,26 @@ func resolveServerSource(ref string) (*diffSource, error) {
213213

214214
ctx := context.Background()
215215

216-
env, err := findEnvByName(client, ctx, envName)
216+
ws, err := findWsByName(client, ctx, wsName)
217217
if err != nil {
218218
return nil, err
219219
}
220220

221-
versionNumber, err := resolveVersionNumber(client, ctx, env.ID, envName, tag)
221+
versionNumber, err := resolveVersionNumber(client, ctx, ws.ID, wsName, tag)
222222
if err != nil {
223223
return nil, err
224224
}
225225

226-
toml, err := client.GetVersionPixiToml(ctx, env.ID, versionNumber)
226+
toml, err := client.GetVersionPixiToml(ctx, ws.ID, versionNumber)
227227
if err != nil {
228228
return nil, fmt.Errorf("fetching pixi.toml: %w", err)
229229
}
230230

231-
lock, _ := client.GetVersionPixiLock(ctx, env.ID, versionNumber)
231+
lock, _ := client.GetVersionPixiLock(ctx, ws.ID, versionNumber)
232232

233-
label := envName
233+
label := wsName
234234
if tag != "" {
235-
label = envName + ":" + tag
235+
label = wsName + ":" + tag
236236
}
237237

238238
return &diffSource{
@@ -243,9 +243,9 @@ func resolveServerSource(ref string) (*diffSource, error) {
243243
}
244244

245245
// resolveVersionNumber resolves a tag or latest version to a version number.
246-
func resolveVersionNumber(client *cliclient.Client, ctx context.Context, envID, envName, tag string) (int32, error) {
246+
func resolveVersionNumber(client *cliclient.Client, ctx context.Context, wsID, wsName, tag string) (int32, error) {
247247
if tag != "" {
248-
tags, err := client.GetEnvironmentTags(ctx, envID)
248+
tags, err := client.GetWorkspaceTags(ctx, wsID)
249249
if err != nil {
250250
return 0, fmt.Errorf("getting tags: %w", err)
251251
}
@@ -254,15 +254,15 @@ func resolveVersionNumber(client *cliclient.Client, ctx context.Context, envID,
254254
return int32(t.VersionNumber), nil
255255
}
256256
}
257-
return 0, fmt.Errorf("tag %q not found for environment %q", tag, envName)
257+
return 0, fmt.Errorf("tag %q not found for workspace %q", tag, wsName)
258258
}
259259

260-
versions, err := client.GetEnvironmentVersions(ctx, envID)
260+
versions, err := client.GetWorkspaceVersions(ctx, wsID)
261261
if err != nil {
262262
return 0, fmt.Errorf("getting versions: %w", err)
263263
}
264264
if len(versions) == 0 {
265-
return 0, fmt.Errorf("environment %q has no versions", envName)
265+
return 0, fmt.Errorf("workspace %q has no versions", wsName)
266266
}
267267
latest := versions[0]
268268
for _, v := range versions {

cmd/nebi/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ var Version = "dev"
1313

1414
var rootCmd = &cobra.Command{
1515
Use: "nebi",
16-
Short: "Nebi - Local-first environment management for Pixi",
16+
Short: "Nebi - Local-first workspace management for Pixi",
1717
Long: `Nebi manages Pixi workspaces locally and syncs them to remote servers.`,
1818
Example: ` # Track a workspace and push it to a server
1919
nebi init

cmd/nebi/publish.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,16 @@ func init() {
3939
}
4040

4141
func runWorkspacePublish(cmd *cobra.Command, args []string) error {
42-
envName, tag := parseEnvRef(args[0])
42+
wsName, tag := parseWsRef(args[0])
4343
if tag == "" {
4444
return fmt.Errorf("tag is required; usage: nebi workspace publish <workspace>:<tag>")
4545
}
4646

4747
// Parse optional repo:oci-tag from second positional arg
48-
repo := envName
48+
repo := wsName
4949
ociTag := tag
5050
if len(args) == 2 {
51-
r, t := parseEnvRef(args[1])
51+
r, t := parseWsRef(args[1])
5252
repo = r
5353
if t != "" {
5454
ociTag = t
@@ -67,8 +67,8 @@ func runWorkspacePublish(cmd *cobra.Command, args []string) error {
6767

6868
ctx := context.Background()
6969

70-
// Find environment on server
71-
env, err := findEnvByName(client, ctx, envName)
70+
// Find workspace on server
71+
ws, err := findWsByName(client, ctx, wsName)
7272
if err != nil {
7373
return err
7474
}
@@ -85,8 +85,8 @@ func runWorkspacePublish(cmd *cobra.Command, args []string) error {
8585
Tag: ociTag,
8686
}
8787

88-
fmt.Fprintf(os.Stderr, "Publishing %s:%s to %s:%s...\n", envName, tag, repo, ociTag)
89-
resp, err := client.PublishEnvironment(ctx, env.ID, req)
88+
fmt.Fprintf(os.Stderr, "Publishing %s:%s to %s:%s...\n", wsName, tag, repo, ociTag)
89+
resp, err := client.PublishWorkspace(ctx, ws.ID, req)
9090
if err != nil {
9191
return fmt.Errorf("failed to publish: %w", err)
9292
}

0 commit comments

Comments
 (0)