DEV Community

arinak1017
arinak1017

Posted on

The Open Source Finale: Pt. 3

Hello, Blog!

If you have just stumbled upon my OSD600 series of blog posts, it has been created to document and share my learnings as I progress through my Open Source Development college course.

This post wraps up the final stretch of my Open Source course, Release 0.4. In it, I’ll share updates on my latest contributions and give an overview of what I’ve achieved in this assignment.

A bit about Release 0.4

For our final assignment, we were tasked to leverage the skills and experience we’ve built over the term to work on something meaningful to us in one way or another.

If you missed how I started working on 0.4, check out my previous posts:

Last Issue follow up

In my last post, I shared how I created a draft Pull Request for the following issue:

feat: add ability to view the current game without having to log in #43

Display the current game at the login screen.

E.g. we should update the login screen to look exactly like the screen after login, but instead of the code editor, we should display the login form.

I had implemented the base requirements and left a comment asking for feedback from the maintainer to clarify some doubts:

Comment for #92

arilloid avatar
arilloid commented on

Hello @yurijmikhalevich!

I have refactored the login page!

I have a doubt about the login form. Would it be better to move into a sperate component, or is it okay just to leave it as is? (I tried to move the form into a separate component, but this seems to have disrupted how the E2E tests interact with the page elements)

Also, would you suggest displaying any kind of placeholder/animation while the game screen is loading?

What happened next?

I quickly received feedback from the maintainer. First, they pointed out that copying the resizing logic from another page wasn’t ideal and questioned whether it was necessary on the login page. They also addressed my question about the login form. Initially, I had moved it into a separate component, but since this caused the e2e tests to fail, I kept it inside the login page for the time being.

The maintainer suggested that it would be better to move the login form into a separate component and encouraged me to adjust the e2e tests if necessary.

Addressing feedback

Most of the changes were straightforward. I simplified the /login page by removing the resizing logic, moved the login form into a separate component, and investigated the e2e tests.

Initially, I couldn’t run the e2e tests locally due to an issue where one of the testing commands failed because my absolute file path contained a space. Once I fixed that, I was able to run the tests successfully. However, the login tests were still failing due to the default 30-second timeout being insufficient for the tests to complete.

Image description

Since the project uses Playwright for testing, I consulted their documentation on timeouts to find a solution. I increased the timeout for both tests to 60 seconds to resolve the issue. With this adjustment, the tests ran smoothly. After confirming everything was working as expected, I pushed my changes and reached out to the maintainer for another review.

Final Touches

The maintainer left two minor comments, which I quickly addressed. Now, I’m waiting for my PR to be merged.

Comment

Discussion thread 1

Discussion thread 2

Wrap up

This assignment concludes my Open Source Development course. While I couldn’t get both of my Pull Requests merged by the deadline due to some life circumstances, I still learned a lot and accomplished most of my goals. Here’s what I achieved:

  • Contributed to high-priority issues: I addressed two high priority issues, making key features of the app publicly accessible for unauthenticated users.
  • Gained hands-on experience with new tools and frameworks: now I know how to build full-stack Vue.js apps using Nuxt, write Playwright tests. /+ I learned a bit more about Prisma ORM.
  • Improved communication with project maintainers: Unlike my previous contributions, where feedback was limited, I had a more engaging back-and-forth with the maintainer. So, I finally had the chance to polish features based on feedback and make necessary adjustments to meet project expectations.

Afterthoughts

The Open Source course at Seneca pushed me out of my comfort zone. I’m no longer as intimidated by collaboration or sharing my code with others. I’ve become much more proficient with Git and, overall, feel more confident in my programming skills despite the hiccups I faced throughout the course.

Top comments (0)