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

Fix JetBrains Rider integration #20141

Merged
merged 3 commits into from
Aug 23, 2024
Merged

Fix JetBrains Rider integration #20141

merged 3 commits into from
Aug 23, 2024

Conversation

mustard-mh
Copy link
Contributor

@mustard-mh mustard-mh commented Aug 22, 2024

Description

Latest Rider still not supported, as there's a bug on JetBrains Rider 2024.2 and 2024.2.1 that plugin build will complain codeWithMe plugin is not found (its plugin.xml incompatible) [internal chat] [YouTrack]

Related Issue(s)

Fixes #20132 , ENT-56

How to test

Rider integration

  • Open a workspace in preview env with stable (the latest stable) Rider
  • Make sure it can connect with JetBrains Gateway, with Gitpod integration
    • Test with gp open README.md (touch one if it doesn't exist) and gp preview --external https://google.com in Rider
    • There should have Gitpod related actions (double shift)
    • Workspace heartbeat works
    • Tasks terminals are opened
❗ Oldest pinnable Rider is working with current build of backend plugin
  • Open this PR with Gitpod
  • Update ide config to update rider 2024.1's backend-plugin 's image (first image inside imageLayers) to use what stable rider using
    export KUBE_EDITOR='code --wait'
    kubectl edit cm ide-config
    
  • Restart ide-service and server
    kubectl rollout restart deploy ide-service
    kubectl rollout restart deploy server
    
  • Pin Rider to 2024.1
  • Start a workspace with Rider 2024.1
  • It should work like Rider integration section

Integration tests
Should pass to prove it doesn't affect other editors.
❗And do smoke test latest stable GoLand, WebStorm. They should all work well


✅ Shared Test Results

Heartbeat Method Rider 2024.1.4 and 2024.1 gp open and gp preview
image image image
GoLand JetBrains Integration tests
image https://github.com/gitpod-io/gitpod/actions/runs/10517565106/job/29142109450?pr=20141 image

Documentation

Preview status

Gitpod was successfully deployed to your preview environment.

Build Options

Build
  • /werft with-werft
    Run the build with werft instead of GHA
  • leeway-no-cache
  • /werft no-test
    Run Leeway with --dont-test
Publish
  • /werft publish-to-npm
  • /werft publish-to-jb-marketplace
Installer
  • analytics=segment
  • with-dedicated-emulation
  • workspace-feature-flags
    Add desired feature flags to the end of the line above, space separated
Preview Environment / Integration Tests
  • /werft with-local-preview
    If enabled this will build install/preview
  • /werft with-preview
  • /werft with-large-vm
  • /werft with-gce-vm
    If enabled this will create the environment on GCE infra
  • /werft preemptible
    Saves cost. Untick this only if you're really sure you need a non-preemtible machine.
  • with-integration-tests=jetbrains
    Valid options are all, workspace, webapp, ide, jetbrains, vscode, ssh. If enabled, with-preview and with-large-vm will be enabled.
  • with-monitoring

/hold

@@ -1,7 +1,7 @@
pluginVersion=0.0.1
gitpodVersion=dev
# Supported environments: stable, latest (via https://github.com/stevesaliman/gradle-properties-plugin)
environmentName=latest
environmentName=stable-rider
Copy link
Contributor

Choose a reason for hiding this comment

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

This file seems generic.

Should this value be something generic, too...like stable or latest?

Copy link
Contributor

Choose a reason for hiding this comment

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

In other words, being specific to rider seems odd.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This file seems generic.

It's not, we don't use file unless we want to write code for backend-plugin, then we need to follow steps wrote in BUILD.yaml to build proper plugin (latest / stable / latest-rider /stable-rider)

README.md is kind of outdated because of the breaking changes of Intellij Platform Plugin 2.0. I don't plan to update them until all stable IDEs are 2024.2

Copy link
Contributor

Choose a reason for hiding this comment

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

Got it, thank you, @mustard-mh ! 🫶

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Btw, environmentName=xxx will be rewrite when building

}
}
}

tasks.named<ProcessResources>("processResources") {
duplicatesStrategy = DuplicatesStrategy.WARN
Copy link
Contributor

Choose a reason for hiding this comment

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

It seems the default value is INHERIT, and if there's no parent it defaults to INCLUDE (ref).

By setting warn, it means we'll take the most recent file.

Is it okay to take the most recent file? What files are we going to skip/ignore by taking the latest?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You can try to comment these lines, build complains logo.svg duplicated, which with sourceSet settings, this should no happen. This change is about to fix it

Copy link
Contributor

@kylos101 kylos101 left a comment

Choose a reason for hiding this comment

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

Hi @mustard-mh, I added questions inline, starting testing now.

@kylos101
Copy link
Contributor

Rider works with dotnet on Gitpod:
image

Prior to doing, I updated dotnet like so:

sudo apt-get update &&   sudo apt-get install -y dotnet-sdk-8.0

@kylos101
Copy link
Contributor

Actions from double shift:
image

Breakdown of FirstActive and LastActive:

    Last Transition Time:  2024-08-23T14:29:02Z
    Message:               
    Reason:                MarkActiveRequest
    Status:                True
    Type:                  FirstUserActivity
  Last Activity:           2024-08-23T14:44:33Z

@roboquat roboquat merged commit 5329913 into main Aug 23, 2024
282 of 293 checks passed
@roboquat roboquat deleted the hw/fix-rider branch August 23, 2024 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot start workspaces with JetBrains Rider
3 participants