Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Contributing to Gitpod #5618

Closed
7 tasks
ghuntley opened this issue Sep 9, 2021 · 1 comment
Closed
7 tasks

Contributing to Gitpod #5618

ghuntley opened this issue Sep 9, 2021 · 1 comment
Labels
meta: never-stale This issue can never become stale

Comments

@ghuntley
Copy link
Contributor

ghuntley commented Sep 9, 2021

👋 Howdy folks,

Whilst Gitpod is an open-source project, the contributing experience isn’t as good as it should be. We are working on making improvements to this but for now I highly recommend starting a discussion over at www.gitpod.io/chat in the #contributing discussion room whilst our CONTRIBUTING.md is built and knowledge is transferred.

Topics to cover:

  • Fundamental knowledge (leeway, components)
  • Establishing a development loop
  • Tips and Tricks (telepresence)
  • Formatting your code
  • Expectation related to unit/integration testing
  • Testing changes to gitpod-io/openvscode-server in gitpod-io/gitpod
  • ... ?

Testing gitpod-io/vscode in gitpod-io/gitpod

gitpod-io/openvscode-server#22 (comment)

Listing components that can be built

$ leeway collect 

chart/config/db/init:init-scripts                              ae337ce2e9ec67cd718513b257ff8cd85a714610
chart/config/db/init:release-tar                               eb17b2de8c76e531e5709ef48f7bdd86b863e71e
chart:helm                                                     667269128c21450b6c175baf0cdb5e4882350121
chart:release-tars                                             8cffdf01efe4c7537429bc1af1ff0fe7f7c48fbc
components/blobserve:app                                       730ea1ae76bf4093f7746283e0d69b334ec06883
components/blobserve:docker                                    b2175eaaf501aa05afa3612f17dba26669773c73
components/common-go:lib                                       2bfc80de94e06e38d0647deb41238219579f8142
components/content-service-api/go:lib                          2b1120a2b313f22187a61cd9f98f12751831a0b9
components/content-service-api/typescript:lib                  22cc835ca83200c09c65ef3c61a54540d46d5b67
components/content-service:app                                 7fc4d1abd19cefc19546556d08db61120837ea21
components/content-service:docker                              855920f3ec5fc1f9b7a91674dced7fae1dfdee4f
components/content-service:lib                                 f7c0cc7a68e0823c02bb70675e9184196987d610
components/dashboard:app                                       3318c542c680c561adfa051b928b1a1b151a1d40
components/dashboard:docker                                    7c1bd1573940f74904878436c883db7839160897
components/dashboard:static                                    c2913a250f9d81e94c97f2008854bbc9639e7224
components/docker-up:app                                       bc627fb214f9e3841ad727954ed3315ce0366d65
components/docker-up:bin-docker-up                             78c9f70c084102985cb26090f8b126d3f266c3f8
components/docker-up:bin-runc-facade                           5ae1bbe839d625d15acfb4e486d113a6c5567276
components/docker-up:bin-slirp-docker-proxy                    1a78583a52b1632f2d28a2e1d1024d34f5af6538
components/docker-up:docker                                    34288bcc4ce3d4fa6fd27457968effb2be6ae2a4
components/ee/agent-smith/cmd/testbed:app                      c8c4bd69af2f3f0f15a874f7721989d6e9c8553e
components/ee/agent-smith/cmd/testtarget:app                   207c18496686c730b4d71a3d6ad742eb02f5e1c9
components/ee/agent-smith:app                                  6785c68ce8c9a555830d27200faee6e45fafff1a
components/ee/agent-smith:docker                               6c2ba35676e79f0aa8f845d0bed8dde600c69c6e
components/ee/agent-smith:example-config                       c880a98daf78e302e7bb3d94037a7bc29201440b
components/ee/agent-smith:falco-bpf-probe                      a4a5fa479c5b752f2cafa4612edbb250188902a6
components/ee/db-sync:app                                      898391328aac4579fbd897d7e96e0d5f08036ceb
components/ee/db-sync:dbtest                                   ffaad84d463d5d8a5877242f26d5156a67bc6c69
components/ee/db-sync:docker                                   5fe851ee5f079671757a1fa4ef53a046c1cb0f74
components/ee/kedge:app                                        19092a548bbb586f7c99e943cf5973781e2d9a51
components/ee/kedge:docker                                     fac7eecf1b7a271e1e5ab36cb749afdc4de1e1ce
components/ee/payment-endpoint:app                             fb42ef1719ce9eac8ec3b4bd420b21b23c6f5e8a
components/ee/payment-endpoint:dbtest                          b654381cd1f2925d933e58ef8eff531add4f9ef1
components/ee/payment-endpoint:docker                          3026939e3e54d4d175d097fc36a959d093c63c32
components/ee/payment-endpoint:lib                             5382cf515211c5ed9237e953f5a43563a7c5fb8a
components/ee/ws-scheduler:app                                 c93033a4a72fa6394635387de3f43c7fd005a0b5
components/ee/ws-scheduler:docker                              3d0ed83e79a09d440cfbcf5b6a36c949f62aa757
components/gitpod-cli:app                                      4dedc567570aee3bacb949ac022d6f66c97d3ae9
components/gitpod-db:dbtest                                    3a78c2822e413e4dab8cf6c47719bf18b88c52dc
components/gitpod-db:dbtest-init                               80ca7f12b9ad4846f300be923a531dbd19d3739e
components/gitpod-db:docker                                    5696f09049e663db221e332adc341120dab53657
components/gitpod-db:lib                                       4a644712b408234baed43ddd1efbe45381066455
components/gitpod-db:migrations                                472d19145e31a91cd2ff4bef706df66e1fc51ed9
components/gitpod-messagebus:lib                               ece6118677a7e14c7372499314c3c7c9275d8520
components/gitpod-protocol/go:lib                              74e0017ea2360c48ef608f238623c41b0d9bfcc6
components/gitpod-protocol:gitpod-schema                       07eded344851b96a647dab04db931ea7e9b1eabe
components/gitpod-protocol:lib                                 8fb9fec856276c6a8605907ce5b0ffbc8e5422cc
components/gitpod-protocol:publish                             61252f9cfc3f88481db9dee86ad0733508ac8627
components/gitpod-protocol:scripts                             eb0117c390b90b52eac25a1a4552646cbedf8aa8
components/gitpod-protocol:theia-plugin-list                   f866641781b4cb91dda46b6407575faa2c92079f
components/ide/code:docker                                     a68bc563d72a481ecb34c6d9144e6d0233434466
components/ide/theia:docker                                    b8914cf40115453d62359bc2a0fa86a6d5b00759
components/image-builder-api/go:lib                            5ead334bdc5e930cd823ae4cfdaf7a7797411004
components/image-builder-api/typescript:lib                    62c8d9b6a904459d32300507ca682d326b7bf193
components/image-builder-bob:app                               9cb57ac81995181afbe4e5791179c4c2a5f87031
components/image-builder-bob:docker                            c5cd6cb0f18cba271b09b0715573cae190326d90
components/image-builder-mk3/workspace-image-layer:pack        4b43acf97007fece57b1454adc3441a9ca569a59
components/image-builder-mk3:app                               8dc343e04909173e4ccc0aa26146bb6463622abf
components/image-builder-mk3:docker                            a81f04290bc1d714806f7efc90e63492bbd24d55
components/image-builder/workspace-image-layer:pack            09e88d5af744a88d6d944c92bd7f586b42783a77
components/image-builder:app                                   28ac84b22a239ae61daffd96d8d9d422a0456541
components/image-builder:docker                                539010ef659eef2136b475fce2056b1121c48be3
components/licensor/typescript:lib                             542a6f37b7977a8144c78fc9c46317bb0b27a03b
components/licensor:app                                        d7a093c9294ae10955d4ebc3690f4a0ff3b8dd2c
components/licensor:lib                                        9a7202332e5587c5de533b80aa058688173800bb
components/local-app-api/go:lib                                83e0891fab37b3885b9aaefd530b136fed13185a
components/local-app-api/typescript-grpcweb:lib                6dde5df0cbc4d29d43f793fe89d24f7e59a9fbec
components/local-app-api/typescript-grpcweb:publish            00f216d8ad83b8bc4998cfa192fd080692b59829
components/local-app-api/typescript-grpcweb:scripts            4f6ed105cb7ed58bc317a393dbb555249ed46be0
components/local-app-api:proto                                 cc43657954e88d5d0b9f1016a320a19f2728be04
components/local-app:app                                       2a9910b8c3320a587b636b87791444c7cdcb441b
components/local-app:app-darwin                                c5c8d37653fbdc0486c1f68d16d4578241568264
components/local-app:app-linux                                 14dd5cabd657cbb987fafc2203b8176fb0c45f56
components/local-app:app-windows                               7cd09a39e0899614d6057fd49d230fb55840cd7c
components/local-app:docker                                    0a72b5547467901287582bf843a88d5a08d74fe1
components/local-app:version                                   82ae5fa1da3d65e6e5d6a85683277a11776c2932
components/proxy:docker                                        3a578ce04b338ea8bd8ee46e76ad7abb68d40db4
components/registry-facade-api/go:lib                          22c08bb79582e65010fbf9ac0a3c3c0dacada34a
components/registry-facade:app                                 c0f3efa75c8a4e6b6cef36b0c4e9f7b9b408234e
components/registry-facade:docker                              e9620cf8e29b2c21751df8be5cc92a469cbf0a4f
components/registry-facade:lib                                 efad3500b36d4e25607ee66790fd8eed30383014
components/server:app                                          d9961f6cee504ca714fcf0e5899e49cddaa10f84
components/server:dbtest                                       f70ab136696937f08cf019f5a5ff25166d81f75d
components/server:docker                                       d92b343368143cf419d3b79d6fd2cd9fe825972e
components/server:lib                                          74a7001e8870fb5cbfeac6ee3154ec432f42a9ed
components/service-waiter:app                                  15851f2aa6e1f6e29718f2f78c335cef7800536e
components/service-waiter:docker                               36db8624eb58f874aca34e310560ffc7de065602
components/supervisor-api/go:lib                               6afed03d7c447f12f0e37c4cb49409af61dc9ec8
components/supervisor-api/typescript-grpc:lib                  63f896a2446bc78190d17e3e45cd897c79e5b358
components/supervisor-api/typescript-grpc:publish              79481d34db7b630f42e5f7db58aa42b799888213
components/supervisor-api/typescript-grpcweb:lib               d17eb6b22e4ee1d48027cd614668e9862ce9cf5f
components/supervisor-api/typescript-grpcweb:publish           f87798a36b96428cea08512ab560972aafe7a86a
components/supervisor-api:proto                                fb1b9b94a340231f236086af20465a2797e35b88
components/supervisor/frontend:app                             bd642626b2cc08893fae00b4f36ee6b8a6e0b20c
components/supervisor:app                                      c16ab20411e979aa73108bb54318f6e719397a9a
components/supervisor:docker                                   0abafc48214059506f34c415d963a89609d7d372
components/supervisor:dropbear                                 daf199936ca83eeeec5a0042bd15c1bbe334d585
components/workspacekit:app                                    6c5539dd906eb4ffa31b5ffb03c9e4248a37f06b
components/workspacekit:fuse-overlayfs                         9d21f84360f725fc368da29c16b648c699776dbb
components/workspacekit:lib                                    e9d4a54ec2f5dcdb45774aeadd20bcee6d3c0b16
components/ws-daemon-api/go:lib                                ddad567b4eb109768e2901cede59281811661e97
components/ws-daemon-api/typescript:lib                        61ba5f3e9964fd2c4ddb5babae17c83bab36ac4d
components/ws-daemon/nsinsider:app                             7a9f619f58c0363552067f17ee603532723fc486
components/ws-daemon/seccomp-profile-installer:app             54e825b84d46c1aca02631911847cdf09da626fa
components/ws-daemon/seccomp-profile-installer:docker          6b67a35975671cf00fc48778b97409b15f262a8c
components/ws-daemon/seccomp-profile-installer:profile         5b134d03db382140a4998418cc4b17d8590d5a22
components/ws-daemon/shiftfs-module-loader:docker              c1fa75e10e15037d35c0fd85bb084e9aa6ded700
components/ws-daemon:app                                       bd18a4adfa79e08ea35282e64e75fb128b15b4df
components/ws-daemon:content-initializer                       33e6c32ef85a5d66a8be1db9031c155b7e11f166
components/ws-daemon:docker                                    92a3f86476e4b0cd826f52e3d3c27586981fc59f
components/ws-manager-api/go:lib                               f7938430707d70402a1c09cdc9b651034d694838
components/ws-manager-api/typescript:lib                       75737e6597f4d4dc7c90a9e23fefc16adb8f729d
components/ws-manager-bridge-api/go:lib                        1ec0ea5546f762f9cd8732dc7e0ff009f17c145b
components/ws-manager-bridge-api/typescript:lib                5a2558175dfe65e8c1d4c459895557ca222bb323
components/ws-manager-bridge:app                               57269e29ec7c63278b1fa16c19e6fb62cf4da8a1
components/ws-manager-bridge:docker                            941f4e7a08c143a394ecfb58f17ceec1844a86d3
components/ws-manager:app                                      6edd27e24ab0a1f026d1bfb0edd56b9c52574782
components/ws-manager:docker                                   fcaf38db4f702e9a97cee75182dee7fe3bb7e5e1
components/ws-manager:docker-debug                             abeac7fc745b752b56ee0447a68c12e9ff36ef5f
components/ws-manager:integration-test                         96cabd0ee25723b9f508c48bdc3ba0bfb6c68e91
components/ws-manager:userns-test-fixtures                     1f5c4da2982339540bdb625db89f1daae52f4ec6
components/ws-proxy:app                                        a17f4014420c1690228d337d1234f9de3a87d259
components/ws-proxy:docker                                     506ab1cbd177680a43a3c2adeb6c40bd54fa3853
components:all                                                 86420a967b7cd1b46989dd2a7d03c65841b6a2a9
components:all-apps                                            cf269d1051ce7688296310fd96e5d4f0cfa64ef6
components:all-docker                                          c68b9f4e275f6282b1d0d795a306c82e9c349220
components:docker-versions                                     614de95842f70cf1dd9f4df870a16c16d7ed1f13
dev/addlicense:app                                             08a17724b9d99a22f6136391300aaae3c5a9e9d0
dev/blowtorch:app                                              f82c9e3fcb6c4a96699afc5324b05156c37e8bcb
dev/gpctl:app                                                  fcf82cb3c64353f2dcd3daa7695fa48a3eafdcca
dev/image:docker                                               b6fa1e3b6c3e48ca254947b9243cfb4664b5ab8b
dev/loadgen:app                                                631c79c3644b888d57ac5121b864de7050308e74
dev/poolkeeper:app                                             488800613c6e364541aa492ce208d131aca15715
dev/poolkeeper:docker                                          5f1fbb75e6e53a1709562e7ab051f4730ef3171b
dev/sweeper:app                                                e1a1e3db4fbc8eca19c5de9fe58082116170305a
dev/sweeper:docker                                             57aaf3345762726d5ba6ef00fdcd5492b51ec9d4
dev/telepresence-hack:copy-mounts                              f1a5deaa15579a3fcf3589f57f2996424b0a14f6
dev/version-manifest:app                                       c47e6f353d9d260ec9486b27c8cf30bbd8499d84
dev:all                                                        d30688b6f0287ff56e6c9447c3c915e8f96929b0
install/docker/examples/gitpod-gitlab/gitlab:docker            50f7aa99b08247497a08cc02c9f89ea96867603a
install/docker/gitpod-image:docker                             1429e29f1c94cbd857e4662ed569884c83ba72ae
install/gcp-terraform/environment/installer/modules:all        c8bdee7ad5ddbd73fd2358c46544ca3f8c84242d
install/gcp-terraform/environment/installer/modules:installer  08c5cd22daa00b9f31584688a88db8e3816d8148
install/gcp-terraform/environment/installer:lib                0cb15deedf8ba4d089f0b81f9732c69afb6f3ae7
install/gcp-terraform/modules:all                              b2e4df0e34f496bae8aaf4056e3c1788e2bc5809
install/gcp-terraform/modules:installer                        95e010fb06339eade18924da06b5a00a168bfb0f
install:all                                                    10ba72ab0b1d4b42609b967814dba972bc68b884
install:release-tar                                            3eaa8f62f183e3f9ace76d70c91a1b3de4706d29
test:app                                                       2429487ca0f911a4fc40e7810d3730470935d375
test:docker                                                    9aab1e558d7d2fb49e9efdffaa2fb36da56e718c

Building a component

$ leeway build components/ws-daemon:app 

Create a component

  1. Create it
$ mkdir components/geoff
$ cd components/geoff
$ leeway init geoff
$ leeway collect |grep geoff
components/geoff:geoff                                         b38b4f9aeac36f45915368a183bc1b6f8bd8a874
  1. Configure it to be built

In the root you'll find a [WORKSPACE.yaml](https://github.com/gitpod-io/gitpod/blob/master/WORKSPACE.yaml) which is the root configuration for leeway. The default target for the workspace is components:all. Walk down the tree and open up [components/BUILD.yaml](https://github.com/gitpod-io/gitpod/blob/master/components/BUILD.yaml) which defines the package allwhich specifies lists as dependencies of everything that should be built by that target.

deps:
      - components/blobserve:docker
      - components/content-service:docker
      **- components/geoff:docker**
@anbraten
Copy link

anbraten commented Mar 6, 2022

Linking #6466 (comment) as I don't know where it belongs 🙈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta: never-stale This issue can never become stale
Projects
None yet
Development

No branches or pull requests

3 participants