[go: up one dir, main page]

Skip to content

[Discussion] Should we include the entire GitLab Workflow extension in the Web IDE or abstract functionality?

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Goal

Understand the approach we will take to bring functionality in the GitLab Workflow extension to the Web IDE

Problems

As described in &8191 (closed), there is work to be done to the GitLab Workflow extension to make it compatible with the web context. Even after this work is completed, there are some UX discussions to be had on whether all the features make sense in the context of the Web IDE. Does all of the functionality in the extension apply to both contexts? Are we making more work for ourselves by maintaining a single extension and using it in both contexts?

Approaches

We may have two approaches we can consider:

Pre-install the GitLab Workflow Extension in the Web IDE is the previously assumed path forward. Here we would have to make the extension compatible to be installed in the web context and modify it to work in the context of the Web IDE. That may mean that some functionality remains unused (like authentication) and potentially new functionality needs to be written specifically for the Web IDE. Even though we'd end up with more complex logic in the extension, we'd have a single package to maintain and deploy.

Abstract functionality in the extension into separate npm modules that can be included in the Web IDE build is a concept we should consider. If we could take the core functionality of the extension and break it up into separate modules, would we be able to include a subset of the functionality of the extension with less overall complexity to the extension's structure? For example, could we include the pipeline status and MR review modules in the Web IDE but leave out the authentication module?

Pros and cons

Pros Cons
Pre-install the extension
  • One codebase can be used across both platforms
  • Consistent experience across platforms
  • Wider adoption of the extension
  • Branching logic in the extension to handle platform needs
  • Not all features may be relevant to the Web IDE
Abstract into modules
  • Use only the functionality applicable to the Web IDE
  • Can extend core functionality to be catered to the specific needs of the platform
  • Maybe impossible 😆
  • Need to maintain multiple modules
Edited by 🤖 GitLab Bot 🤖