workspaces-iteration-planning-report-latest.md

Workspaces Velocity-Based Iteration Planning Report


  1. Past Iterations
  2. Prioritized Issues for Current and Future Iterations
  3. Unprioritized Issues

Additional Links: Remote Development Group Planning ProcessWorkspaces Iteration Planning BoardGitLab Velocity Board Extension

Generated at 2025-04-30 18:03:56:+0000 • Latest version


Past Iterations:

Current Velocity is 20, calculated for last 4 iterations

Past Iteration Points Issue Count
2025-02-24 - 2025-03-09 15 11
2025-03-10 - 2025-03-23 21 9
2025-03-24 - 2025-04-06 17 9
2025-04-07 - 2025-04-20 27 20

Prioritized Issues for Current and Future Iterations:

(Note: These future iterations are dynamically calculated based on velocity, but they all map to the single fixed current iteration in standard GitLab. See the reasons for this)

2025-04-14 - 2025-04-27: 20 points, 16 issues (8 closed)

Weight Issue Link
0 Point GitLab default image to workspace default image which contains latest image with tools (Closed)
2 Introduce gl_workspace_reconciled_actual_state file var (Closed)
3 Create terraform code to setup workspaces infrastructure on AWS (Closed)
1 Rails: Convert Rails API to use GET instead of POST (Closed)
1 UX: Open terminal by default when launching workspace (Closed)
1 Remove default_max_hours_before_termination and max_hours_before_termination_limit from agent_config proto definition (Closed)
1 Rename variables to workspace_variables in create mutation (Closed)
1 GraphQL cleanup on rails backend and frontend (Closed)
Frontend: Query organization cluster agents on creating workspace
Rename remoteDevelopmentClusterAgents type internally to workspacesClusterAgents and corresponding GraphQL queries
2 Support preserving default ENTRYPOINT/CMD for containers used for Workspaces
2 Add support for devfile postStart event in Workspaces
Refactor agent_workspaces_list.vue async callback with graceful reactivity
2 bug: Can’t run VSCode Jupyter Extension in a Workspace
3 Enable Workspaces on Content Sites Handbook
1 Rename namespace agent mapping mutations

2025-04-21 - 2025-05-04: 18 points, 14 issues

Weight Issue Link
1 Remove deprecated editor field from GraphQL API
2 Eliminate duplication of workspaces internal scripts in reconciliation logic
3 Build and publish linux/arm64 for gitlab-workspaces-tools image
BE: Add new workspace ports table
BE: Add new query API to list workspace ports
BE: Add mutation APIs for workspace ports
BE: Generate k8s service on workspace_ports db updates
1 Remove deprecated devfile_ref from GraphQL
0 Update default devfile to use image digest
3 Use OverlayFS to persist changes to workspace HOME directory
3 New UI in the admin section to support mapping creation/deletion functionality
3 Package GLIBC and MUSLC along with the vscode-reh-web server
1 Deprecate gitlab-workspaces-tools project and repo properly
1 Documentation on organizational cluster-agent mapping and access

2025-04-28 - 2025-05-11: 18 points, 6 issues

Weight Issue Link
3 Migrate additional things from gitlab-workspaces-tools
5 Update devfile dropdown with file selection option and .devfile.yaml/yml
5 Convert existing Workspaces internal script logic to postStart hooks
1 Document new workspaces script hook and container Entrypoint/Cmd support
2 Write blog post announcing new workspaces script hook and container Entrypoint/Cmd support
2 Rails development/test environment should pick up changes to Workspaces script files in source tree

2025-05-05 - 2025-05-18: 17 points, 8 issues

Weight Issue Link
3 Move init-tools.sh script into Rails repo
1 Remove type argument from WorkspaceVariableInput
3 Build workspace base image and use it as base for other workspace images
1 Remove default value for actual_state_updated_at on workspaces table
2 Allow workspaces to be created with an organization mapped agent
2 Rails: Update network policy to use pod selectors to target the workspace pod
2 Rails: Do not generate ResourceQuota when using a shared namespace
3 Add metrics for workspace creation result and failure rate

Unprioritized Issues:

Issue Link
Add support for additional filter parameters when querying organization cluster agents via GraphQL
Eliminate need to install new license in Gitpod each time
Open dev cheat sheet on GitPod start
stdout and stderr streams not behaving correctly
Resolve Workspace/devfile relationship and versioning
Investigation: Use Kata containers with hypervisors (e.g. qemu, firecracker) to provide container build and run capability inside workspace
Workspaces can be created under user or project namespaces
Investigation: Can we inject gitlab-sshd directly inside a workspace instead of expecting OpenSSH pre-installed
UX: Client only WebIDE vs Remote Development
Follow-up from ROP part 3 - split up classes into smaller methods
GitLab Workspaces Proxy - Ensure OAuth redirects to GitLab work on HTTP and HTTPS both
Investigate a WASM or client-based approach to remote development environments
Design mechanism to match versions of VS Code server and WebIDE
[Test Refactor] Refactor unit test duplication in agent_workspaces_list_spec.js
Document updating,building, and running WebIDE and VS Code server
Preserve unsaved edits while establishing a remote connection in the Web IDE
Coder Integration
Allow for creation of different classes of Workspaces(1gb-2cpu, 4gb-8cpu, etc)
Allow users to vertically scale up Workspace resources
Support image pre-builds
Allow users to expose endpoints in a running Workspace
Provide Devfile Schema Linting
Cluster internal cluster error feedback to users
Provide Error / Failed state feedback for users
Spike: Re-route VSCode telemetry to GitLab‘s snowplow
Remote Development Container does not start
Workspace <-> Namespace relationship
Permission denied errors when attempting to copy GDK for Gitpod
Improve workspace data isolation with micro VMs
Storing flattened devfile in database
Synchronise settings between browser-only WebIDE and VS Code server in the Workspace
Create workspace_versions db, model, and graphql query support
Populate workspace_versions table upon every change to a workspaces table record
Create Vue UI for workspace_versions
Build tools-injector for ARM platform
Implement Workspace Metrics for general availability
Understand and document why devfile ffi gem does not work in gitlab monolith
Remove WebUI from the editor injector
Consider scenarios where project-less workspace might be beneficial
Null check safety in actual state calculate of remote development
Devfile gem is not correctly packaged
Implement changing working folder in RD WebIDE
Investigate security implications of connecting to workspace though WebIDE
Abstract editor configuration as a configuration setting for admins
Improve devfile go code CLI UX help
GitLab Workspaces Proxy - Should be automatically deployed by the agent
Ensure guidelines for existing projects created for Remote Development have been followed
Terminate workspaces after an agent has been disabled
Workspaces: Solve for authentication issue for Web IDE connection to VS Code server in the Workspace
Feature Request: Register to account
Support multiple options for naming a devfile in a project
Possibly optimize workers to re-use a common informer across full & partial syncs
Enhance StoppableTask to capture and return errors to the caller
Finish incomplete work on state management logic, testing, and test fixtures
GA4K - Add test case for nil check while sending request to rails
Custom pages when access workspaces which is starting/stopped/stopping/restarting/terminating
Create a dictionary of error-cause-solution
GDK: tooling/config to support GA4K remote dev module
GitLab Workspaces Proxy - Refactor auth redirect path to use router
Use Jupyter Notebook as the editor in a workspace
Implement a GraphQL subscription API to track a workspace’s state
Add rootClusterAgents GraphQL field for workspace creation
Use docker-image published by Gitlab in the project cloner
Explore PROJECTS_ROOT and PROJECT_SOURCE env vars with devfile team
Display devfile and cluster agents validity in create workspace form
Inject the glab CLI into every workspace
When there is a workspace error (e.g. invalid container), the UI shows the workspace state as Starting for 10 minutes before changing to Failed
Invalid agent configuration YAML file breaks the agentk
Ensure we gather logs from in-cluster components (agentk + auth proxy)
Spike: Investigate possible OAuth proxy errors
Specify security context in the devfile before generating the kubernetes resources
What is the best way to log a field in Rails which is a complex hash map?
Review structured logging for standards compliance and security
Revisit handling of on_delete in workspaces table migrations
Address review feedback: Resolve N+1 issues
Abstract project cloner configuration as a configuration setting for admins
Come up with more user-friendly scheme for random workspace names
Choose image based on which editor is passed
Review STOPPING and STARTING scenarios in actual_state_calculator.rb
Add coverage for all scenarios to actual_state_calculator_spec.rb
Improve reconcile_processor_scenarios_spec.rb
Extract port to constant in create_processor.rb
Allow user to specify optional clone depth for workspace’s git repo
Revisit all error messsages and user strings for proper i18n patterns
Add JSONSchemer validation of schema itself
Instead of defining a new factory check if we could FactoryBot.modify existing factory and add the EE-specific trait
Prefix the factory to avoid name clashes in the future
Remove development: Make workspace factory strategy agnostic
Follow-up from “rails integration branch for”Remote Development Integration Branches””
Remote development: Make feature spec more resilient to changes
Follow-up from “rails integration branch for”Remote Development Integration Branches””
Remote Development: Fix all RSpec/ExpectInHook offenses
Follow-up from “rails integration branch for”Remote Development Integration Branches””
Follow-up from “rails integration branch for”Remote Development Integration Branches””
Follow-up from “Add user’s git configuration in workspace”
Investigate why volume mounted in GCloud has a different UID than the one on Rancher Desktop
Add a GraphQL mutation to validate a devfile
Add fuzz testing for Remote Development
Add remote development workspace support for Windows/macOS
Investigation: Solve longterm Devfile Gem Technical Debt