Skip to content

Conversation

@Tobbe
Copy link
Member

@Tobbe Tobbe commented Oct 13, 2025

Migration from Gitpod Classic to Ona

This PR migrates the Cedar repository from Gitpod Classic to Ona. As announced in Gitpod is now Ona.

This PR was originally created towards the RedwoodJS repo over at redwoodjs/graphql#12093

What's changed

Configuration migration

  • Replaced .gitpod.yml with modern Dev Container configuration (.devcontainer/devcontainer.json)
  • Added Ona Automations configuration (.ona/automations.yaml) for services and tasks
  • Updated documentation from using-gitpod.md to using-ona.md

🔧 Technical details

Environment Configuration

  • Base image: mcr.microsoft.com/devcontainers/javascript-node:1-20-bullseye
  • Node.js version: 20.x with corepack enabled
  • Port forwarding: 8910 (Web), 8911 (API) with HTTPS protocol
  • Persistent volumes: Yarn cache and node_modules for faster rebuilds

Automation Tasks

  • setup-environment: Automatic setup on environment start
  • start-dev-after-setup: Auto-start development server after setup
  • sync-framework-changes: Manual framework synchronization
  • open-ports/close-ports/list-ports: Port management
  • start-dev-server/stop-dev-server/restart-dev-server: Service control

Development Workflow

  1. Environment starts → Dev Container initializes
  2. Setup task runs → Installs framework dependencies and creates test project
  3. Ports open automatically → Development servers accessible via HTTPS
  4. Service starts → RedwoodJS development server ready for use
  5. Framework changes sync → Use sync task to update test project

Documentation

Updated documentation includes:

Try it below

Run in Ona

- Replace .gitpod.yml with Dev Container configuration
- Add automations.yaml for services and tasks
- Implement proper timing coordination between setup and service start
- Move setup logic from postStartCommand to automated task
- Add dependency coordination using completion markers
- Maintain auto-start behavior with proper sequencing
- Fix hanging setup task by removing blocking service start call
- Add separate task for auto-starting service after setup completion
- Simplify service configuration and remove problematic readiness checks
- Add port management with HTTPS protocol for dashboard visibility
- Include manual port control tasks (open/close/list ports)
- Ensure ports 8910 (Web) and 8911 (API) are accessible via HTTPS URLs
- Add video demonstration back to Ona Snapshot section in CONTRIBUTING.md

Co-authored-by: Ona <[email protected]>
@netlify
Copy link

netlify bot commented Oct 13, 2025

Deploy Preview for cedarjs ready!

Name Link
🔨 Latest commit f82df9e
🔍 Latest deploy log https://app.netlify.com/projects/cedarjs/deploys/68ecce94d2f16f00086ae62c
😎 Deploy Preview https://deploy-preview-475--cedarjs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@Tobbe Tobbe added the release:feature This PR introduces a new feature label Oct 13, 2025
@Tobbe Tobbe added this to the next-release milestone Oct 13, 2025
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Summary

This PR attempts to migrate from Gitpod Classic to Ona by replacing .gitpod.yml with Dev Container and Ona Automations configurations. However, the implementation has critical issues: the configuration files were copied directly from a RedwoodJS repository without proper adaptation to Cedar.

Critical Issues Found:

  • All references throughout both config files use "RedwoodJS" and "RedwoodGraphQL" instead of "Cedar"
  • Workspace paths reference /workspaces/RedwoodGraphQL instead of /workspaces/cedar
  • Test app directory is named rw-test-app instead of cedar-test-app
  • Commands use yarn rw dev instead of yarn cdr dev (Cedar's CLI command)
  • Configuration file references redwood.toml instead of cedar.toml
  • Package cleanup targets node_modules/@redwoodjs instead of node_modules/@cedarjs

What Works:

  • Documentation updates in CONTRIBUTING.md, docs/docs/how-to/using-ona.md, and docs/docs/quick-start.md are mostly correct
  • The overall structure and approach of the migration is sound
  • Deletion of .gitpod.yml is appropriate

The PR description itself appears to be copied from the RedwoodJS repository (mentions "RedwoodJS GraphQL repository" and references wrong PR number #12093).

Confidence Score: 0/5

  • This PR cannot be safely merged - it will break the entire development environment setup
  • The configuration files contain pervasive incorrect references to RedwoodJS instead of Cedar, wrong file paths, incorrect CLI commands, and wrong configuration file names. If merged, developers attempting to use Ona would encounter failures throughout the setup and development workflow.
  • .devcontainer/devcontainer.json and .ona/automations.yaml require complete revision to replace all RedwoodJS/RedwoodGraphQL references with Cedar-specific names, paths, and commands

Important Files Changed

File Analysis

Filename Score Overview
.devcontainer/devcontainer.json 1/5 New Dev Container config contains multiple incorrect references to "RedwoodGraphQL" and "RedwoodJS" instead of "Cedar"
.ona/automations.yaml 0/5 New Ona automations config has pervasive issues: all references to RedwoodJS/RedwoodGraphQL, wrong paths, wrong commands (rw vs cdr), wrong config files (redwood.toml vs cedar.toml)
.gitpod.yml 5/5 Old Gitpod Classic config file deleted as expected for migration
CONTRIBUTING.md 4/5 Documentation updated to reference Ona instead of Gitpod, mentions added for new workflow
docs/docs/how-to/using-ona.md 4/5 Documentation migrated from using-gitpod.md with references updated to Ona, mostly correct
docs/docs/quick-start.md 5/5 Quick start doc updated with Ona references and links, changes look correct

Sequence Diagram

sequenceDiagram
    participant User
    participant Ona
    participant DevContainer
    participant Setup as setup-environment
    participant AutoStart as start-dev-after-setup
    participant DevServer as dev-server

    User->>Ona: Click "Run in Ona" button
    Ona->>DevContainer: Initialize Dev Container
    DevContainer->>DevContainer: Pull base image (Node 20)
    DevContainer->>DevContainer: Install GitHub CLI feature
    DevContainer->>DevContainer: Run postCreateCommand (corepack)
    
    DevContainer->>Setup: Trigger postDevcontainerStart
    Setup->>Setup: Set RWFW_PATH env var
    Setup->>Setup: Create test app directory
    Setup->>Setup: Clean node_modules cache
    Setup->>Setup: Install framework dependencies
    Setup->>Setup: Build test project with --link
    Setup->>Setup: Configure cedar.toml
    Setup->>Setup: Open ports 8910 & 8911
    Setup->>Setup: Create completion marker
    
    par Parallel Task
        DevContainer->>AutoStart: Trigger postDevcontainerStart
        AutoStart->>AutoStart: Wait for setup completion
        AutoStart->>AutoStart: Check /tmp marker file
    end
    
    Setup-->>AutoStart: Setup complete signal
    AutoStart->>AutoStart: Ensure ports are open
    AutoStart->>DevServer: Start dev-server service
    DevServer->>DevServer: Run yarn cdr dev
    DevServer-->>User: Development environment ready
    
    User->>User: Make framework changes
    User->>Ona: Trigger "Sync Framework Changes"
    Ona->>Setup: Run sync task
    Setup->>Setup: yarn rwfw project:sync
    Setup-->>DevServer: Sync changes to test app
Loading

6 files reviewed, 21 comments

Edit Code Review Agent Settings | Greptile

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Summary

This PR migrates Cedar from Gitpod Classic to Ona by replacing .gitpod.yml with modern Dev Container configuration and Ona Automations. However, critical naming issues exist throughout - the configuration files use "RedwoodJS" and "RedwoodGraphQL" instead of "Cedar", which will cause workspace path failures and user confusion.

Major Issues Found:

  • .devcontainer/devcontainer.json and .ona/automations.yaml reference "RedwoodGraphQL" workspace paths that don't match the actual Cedar repository
  • Port labels, service names, and task descriptions all reference "RedwoodJS" instead of Cedar
  • Documentation links point to redwoodjs/starter instead of Cedar repositories
  • Changeset incorrectly references "Redwood documentation"
  • Three fixture .gitpod.yml files in __fixtures__/ directory were not migrated (though these may be intentional test fixtures)

What Works Well:

  • The migration approach from Classic Gitpod to Ona is technically sound
  • Automation tasks are comprehensive and well-structured
  • Dev Container configuration uses appropriate base image and features
  • Old .gitpod.yml was properly removed

Confidence Score: 1/5

  • This PR has critical naming/branding issues that will break the development environment
  • Score reflects that while the migration approach is sound, the consistent use of "RedwoodJS/RedwoodGraphQL" instead of "Cedar" will cause workspace path failures (/workspaces/RedwoodGraphQL won't exist), incorrect environment variables (RWFW_PATH), and user confusion. These are not cosmetic issues - they will prevent the Ona environment from working correctly
  • .devcontainer/devcontainer.json and .ona/automations.yaml require immediate attention - all RedwoodJS/RedwoodGraphQL references must be changed to Cedar before this can work

Important Files Changed

File Analysis

Filename Score Overview
.changesets/475.md 2/5 Changeset added but references "Redwood documentation" instead of Cedar
.devcontainer/devcontainer.json 1/5 New Dev Container config but uses "RedwoodGraphQL" naming throughout instead of Cedar - will break workspace paths
.ona/automations.yaml 1/5 New Ona Automations config but references "RedwoodJS" and "RedwoodGraphQL" instead of Cedar throughout - will cause path and naming issues
docs/docs/how-to/using-ona.md 2/5 Renamed from using-gitpod.md but contains incorrect references to redwoodjs/starter repo and "Redwood" instead of Cedar

Sequence Diagram

sequenceDiagram
    participant User
    participant Ona as Ona Platform
    participant DevContainer as Dev Container
    participant Setup as Setup Task
    participant DevServer as Dev Server Task
    participant Service as Cedar Dev Service

    User->>Ona: Click "Run in Ona" button
    Ona->>DevContainer: Initialize Dev Container
    DevContainer->>DevContainer: Pull base image (Node 20)
    DevContainer->>DevContainer: Install GitHub CLI
    DevContainer->>DevContainer: Enable corepack
    
    DevContainer->>Setup: Trigger postDevcontainerStart
    Setup->>Setup: Set RWFW_PATH env var
    Setup->>Setup: Clean cache & symlinks
    Setup->>Setup: yarn install (framework deps)
    Setup->>Setup: Build test project (rw-test-app)
    Setup->>Setup: Configure redwood.toml
    Setup->>Ona: Open ports 8910 & 8911
    Setup->>Setup: Signal completion (/tmp/redwood-setup-complete)
    
    DevServer->>DevServer: Wait for setup completion
    Setup-->>DevServer: Setup complete
    DevServer->>Ona: Ensure ports are open
    DevServer->>Service: Start dev-server service
    Service->>Service: cd /workspaces/rw-test-app
    Service->>Service: yarn rw dev
    
    Service-->>User: Development servers ready
    User->>Ona: Access port 8910 (Web)
    User->>Ona: Access port 8911 (API)
    
    Note over User,Service: Optional: Framework Changes
    User->>Service: Make framework changes
    User->>Ona: Run "Sync Framework Changes" task
    Ona->>Setup: yarn rwfw project:sync
    Setup->>Service: Sync changes to test project
Loading

Additional Comments (3)

  1. docs/docs/how-to/using-ona.md, line 26-32 (link)

    logic: Links still point to redwoodjs/starter instead of Cedar repository

  2. docs/docs/how-to/using-ona.md, line 33 (link)

    logic: References "Redwood" instead of "Cedar"

  3. docs/docs/how-to/using-ona.md, line 39-50 (link)

    logic: Image links still reference redwoodjs/starter - should update to Cedar repository or remove if images don't exist

No files reviewed, 5 comments

Edit Code Review Agent Settings | Greptile

@Tobbe Tobbe merged commit 5d61340 into main Oct 13, 2025
39 checks passed
@Tobbe Tobbe deleted the feat/migrate-gitpod-classic-to-ona branch October 13, 2025 10:51
Tobbe added a commit that referenced this pull request Oct 17, 2025
@Tobbe Tobbe modified the milestones: next-release, v0.14.0 Oct 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:feature This PR introduces a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants