gitpod-io / gitpod-io/gitpod

Epic: Deprecate definitely-gp

Open
#8,473 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

meta: never-stale team: webapp type: epic
Dominant language
TypeScript
Stars
13.8k
Forks
1.4k
Avg merge
17h 58m
Merged PRs (30d)
5

Description

Early Gitpod users were given the option of storing their config in https://github.com/gitpod-io/definitely-gp/ instead of in their own repo. This feature is not documented anymore.

Workspaces start by looking for a directory in definitely-gp which matches the repo name, and then use the configuration from that directory. The configuration can include both gitpod.yml and a Dockerfile.

There are several issues with this approach

  • False positive repo name matches result in unexpected errors during workspace initialization e.g. see below.
  • Depending on framework-specific configuration from another Gitpod-owned repo for workspace starts, creates additional maintenance and software supply chain security burdens.
  • References to publicly hosted repos from within Gitpod complicate self-hosted installations on private networks.

See discord discussion

Proposal
Gitpod should deprecate the built-in runtime use of files from definitely-gp for workspace configuration.

A community-driven repo like https://github.com/shaal/awesome-gitpod would be a better way to share best practices of how to configure Gitpod for different frameworks or languages.

If there are significant numbers of repos in use which regulary depend on this capability, we should do this in 2 stages (if the number is small say < 100, we can simply remove the capability immediately):

  • #9049
  • #9050

The length of the deprecation period depends on how heavily used this feature is.

Background

I noticed when opening a repo called kit that the workspace was being initiazlized with pnpm, even though it was configured for npm with a package-lock.json.

  • The repo was not configured for gitpod.
  • No inferred .gitpod.yml was added inside the workspace, making the source of the errors difficult to work out.

Screenshot 2022-02-27 at 22 21 16

Screenshot 2022-02-27 at 22 20 51

A GitHub search revealed that the init and command tasks were probably coming from here: https://github.com/gitpod-io/definitely-gp/blob/master/kit/.gitpod.yml.

From the inference code here and implementation here it appears that opening a workspace on any repo whose name matches a directory in https://github.com/gitpod-io/definitely-gp will attempt to use the configuration from there.

To reproduce

For another example see https://gitpod.io/#https://github.com/gitpod-io/book

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with components/server/src/workspace/config-provider.ts, especially the inference and implementation locations linked in the issue, and review the related work in #9049 and #9050. Determine the required deprecation or removal stages based on usage, with done defined as Gitpod no longer depending on definitely-gp for workspace configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.