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 2024-12-13 06:03:48:+0000 • Latest version


Past Iterations:

Current Velocity is 12, calculated for last 4 iterations

Past Iteration Points Issue Count
2024-10-07 - 2024-10-20 8 9
2024-10-21 - 2024-11-03 20 12
2024-11-04 - 2024-11-17 12 6
2024-11-18 - 2024-12-01 7 5

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)

2024-11-25 - 2024-12-08: 12 points, 9 issues (4 closed)

Weight Issue Link
1 Set default for desired_config_generator_version in rails domain logic (Closed)
1 Delete remote_development_agent_configs table (Closed)
0 Use external secrets for configuring gitlab-workspaces-proxy (Closed)
2 Build golden container image to be used by default for creating workspace (Closed)
2 UI: Refactor popovers when creating workspace
Investigation: Allow agents to be mapped to a namespace under a different top-level group within an organization
2 bug: Can’t run VSCode Jupyter Extension in a Workspace
2 Expose workspace_variables in graphQL API
2 Do not show warning on opening IDE inside workspace

2024-12-02 - 2024-12-15: 10 points, 6 issues

Weight Issue Link
2 Backend: Use default devfile with golden image to create workspace if no devfile is present
1 Docs: Add docs to support default devfile for projects if not present
3 Workspace reconcile should be resilient to any individual workspace errors
1 Update workspaces vscode fork version to 1.89.1-1.0.0-dev-20241005040238
1 Remove deprecated editor field from GraphQL API
2 Workspaces cannot be created on CentOS 7 / Ubuntu 20.04 based GitLab instance after upgrading to GitLab 17.4

2024-12-09 - 2024-12-22: 6 points, 3 issues

Weight Issue Link
3 Investigate port forwarding in workspaces VSCode fork
2 Create policy for workspace_variables
1 Add deprecation announcement on editor field in workspaces graphql schema

Unprioritized Issues:

Issue Link
Eliminate need to install new license in Gitpod each time
Open dev cheat sheet on GitPod start
Enable SSH access for GDK image in Remote Development workspace
stdout and stderr streams not behaving correctly
Resolve Workspace/devfile relationship and versioning
Investigation: Use Sysbox to provide container build and run capability inside workspace
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
Introduce enums into Workspace graphql type
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
Handle connection errors more gracefully 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
Drop SSL requirement
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
VS Code terminal not working in ARM containers
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
Support custom entrypoint and command script hooks in the main Workspace container
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
Fix: Extensions (even built-in) unavailable when connecting WebIDE to a local development VS Code Server
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
Workspaces: Auth Proxy error pages
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
Introduce error handling/recovery procedures in the project cloner
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?
What are the best practices for tracking error in Sentry through Rails
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