cBioPortal / GSoC

Documentation repository of Google Summer of Code (GSoC) project ideas for cBioPortal and related projects
106 stars 41 forks source link

Upgrade cBioPortal to newer version of Node.js and Webdriver.io #108

Open alisman opened 5 months ago

alisman commented 5 months ago

Background: cBioPortal frontend build system and CI infrastructure is on a deprecated version of Node.js (15.2). We want to upgrade to a more recent version, but there are many issues that will need to be resolved to do that.

Goal: To upgrade Node.js to a modern version.

Approach: The largest obstacle is that our e2e process uses Webdriver.io at v6, which cannot run on newer versions of Node. We will need to upgrade Webdriver.io and all the tests to use async style https://webdriver.io/docs/async-migration. As explained here, Node 16 no longer supports sync methods and so that style of e2e scripting will not work anymore. This will require a significant amount of work to migrate about 600 tests to use asycn style.

Need skills: Solid javascript skills and understanding of async code execution. Familiarity with and interest in subject of browser-automation tests.

Possible mentors: @alisman @haynescd @walleXD

Community-Programmer commented 4 months ago

Hello @alisman I am a first-year undergraduate student in CSE with a keen interest in JavaScript and browser-automation tests. Despite being new to college, I have two years of experience as a volunteer automation engineer for a government organization. My solid JavaScript skills and familiarity with browser-automation tests make me well-equipped to upgrade cBioPortal's Node.js version and migrate Webdriver.io tests. I am eager to work on this project and look forward to contributing effectively to the team.

Thank you

Abdo865 commented 3 months ago

Hello, @alisman @walleXD and @haynescd I would like to contribute to this project I only want any first steps that I can start with to contribute with you

sam-sny commented 3 months ago

Project Title: Upgrade cBioPortal to Newer Versions of Node.js and Webdriver.io

Project Description: Upgrade the existing cBioPortal system to leverage the latest versions of Node.js and Webdriver.io. The current implementation relies on Webdriver.io at version 6, which poses compatibility issues with newer Node.js versions. The upgrade involves transitioning to a version of Webdriver.io that supports the desired Node.js version, ensuring a smooth and reliable end-to-end (e2e) testing process.

Project Goals:

1. Update Node.js:

Identify and select a Node.js version that is both stable and supported by the desired Webdriver.io version. Implement the necessary changes to ensure compatibility with the upgraded Node.js environment.

2. Upgrade Webdriver.io:

Choose a Webdriver.io version compatible with the selected Node.js version. Update the existing Webdriver.io implementation to align with the chosen version's syntax and features.

3. Migrate Tests to Async Style:

Adapt approximately 600 tests to utilize the async style as per the Webdriver.io documentation. Refactor test scripts to align with the changes in Node.js that no longer support sync methods. Required Skills / Knowledge:

Programming Languages: JavaScript (Node.js) Web Automation: Familiarity with Webdriver.io and e2e testing. Node.js Ecosystem: Understanding of Node.js, its versioning, and dependencies.

Project Size: Medium 175 hours.

Difficulty Level: Medium

Potential Mentors: Alisman Haynescd WalleXD

Contributor: Ekpo Sampson, sampsonekpo6@gmail.com

MobinAkhter commented 3 months ago

Hello, I'm Mobin. 4th year CS student. I am interested in this project, who do I share my initial draft with for feedback?

EmmanuelEmp commented 3 months ago

Hey @alisman, @haynescd, and @walleXD,

Hope you're all doing great! I stumbled upon the Node.js upgrade project for cBioPortal and couldn't help but feel drawn to it. Even though I've graduated with a BSc in Biochemistry, my love for coding led me to dive into JavaScript for the past couple of years.

Now, as a recent grad, I'm itching to put my skills to good use and contribute to open-source projects like this one. The idea of upgrading Node.js sounds like a thrilling challenge, and I'm eager to roll up my sleeves and dive in.

Although I'm still learning the ropes of Computer Science, I'm confident in my abilities and super keen on learning more. Plus, the chance to work on browser-automation tests? Count me in! I'm all about exploring new territories and making a meaningful impact in the community.

Looking forward to potentially teaming up with you all and making some magic happen!

Cheers, emmyochogwu@gmail.com