2023 Swift Mentorship Program: Contributing to the Swift Package Index

The Swift Mentorship Program has truly been an amazing experience for my personal and technical growth, and I highly recommend this program to anyone looking to get their feet in the door to open source contributions. As part of this program, I had the privilege of collaborating on the Swift Package Index (SPI) project, created by my mentor, Dave Verwer, and Sven A. Schmidt.

The SPI is a valuable resource that helps us search, discover and make better decisions on selecting our Swift package dependencies. I was excited to be able to contribute to the SPI as it would be my first time working on an open source web application that incorporates server-side programming with Swift.

My Goals :star2:

In my introduction meeting with my mentor, we outlined my goals for the program. The goals that I wanted to focus on were to gain confidence in contributing to an open source project, complete a full-stack feature, and improve my communication skills by sharing my learnings through technical writing or blog posts.

The Journey :woman_technologist:

After my initial meeting with my mentor, I began the quest of tackling my first issue. My mentor recommended a few github issues to look at, and before I knew it, I had created my first pull request!

I have always wanted to be more involved in the open source community and engage in projects outside of work. However, I often find myself lurking behind the scenes and being hesitant to contribute. Despite the imposter syndrome, I am thankful for the supportive environment that my mentor created, allowing me to feel more confident in both, making my first open-source pull request in this program and collaborating openly.

Within the SPI, each package carries an internal score that partially influences search results. Although the scoring algorithm has always been public, we wanted to take this opportunity to make this score more transparent to the package maintainers. Therefore, my primary focus was to provide visibility into the package score and to inform a package maintainer on how the score is calculated. In addition to making the score details visible, I introduced two more metrics that influence a package’s score, which involves checking for any test targets and a README file. You can read more about the feature in the blog post that I wrote to introduce the new section on the package’s maintainer page and view the changes for the feature in this pull request.

With the completion of this program, I can confidently say that I have accomplished most of the goals I set out for myself. Not only have I succeeded in making my first open source contributions outside of work, but I was able to complete a feature from end to end with the support of my mentor. On the backend, I was able to add more metrics to the package score, update the scores in the database and dive a bit into SQL. On the frontend, I was able to apply my design thinking skills by working with Dave on different iterations for presenting the package score section and using HTML and CSS to make the designs come to life. This feature was wrapped up and completed by crafting a blog post describing what the package score and the new section is. Overall, each meeting with my mentor has led me to learn something new and the conversations have always been enjoyable and I hope that this new feature adds value to the package maintainers.

Final Thoughts :tada:

This program has led me through a journey of self-discovery, technical growth, and increased self-assurance. Dave is such an inspiration and a great communicator, in a way that he inspires me to think about launching my own open source project one day. While it felt daunting to take on a feature that will be publicly displayed on the site, I appreciate that Dave has trusted me and given me this opportunity to work on the feature. My mentorship journey has shown me that open source is a space of growth, learning, and opportunity, and I am eager to continue to contribute to the open source community with more confidence.

I encourage anyone interested in Swift development or open source to participate in the Swift Mentorship Program. It is a valuable opportunity to receive guidance and make an impact in the Swift Community. I am happy to provide further details or answer any questions that I can about my experience in this program.

Thank you to Dave and Sven for supporting me along the way and I appreciate all the contributors to the SPI project for their time. Lastly, thank you to Holly and the Diversity in Swift team for providing this opportunity. :blush:

16 Likes

Thank you for all your work on this Cyndi! It made a great feature for the package index, and it was great to work with you over the summer!

1 Like

Is there going to be another Swift Mentorship Program in 2024? Please let me know so I can set my schedule appropriately.