Skip to content

Commit 066a9de

Browse files
committed
Prepare 1st blog post for summer of code summary posts (2025)
These were approved by their respective contributor co-authors over here in #1191 fix formatting, and add a note that this is already shipping
1 parent 20c6b4e commit 066a9de

File tree

5 files changed

+93
-0
lines changed

5 files changed

+93
-0
lines changed

_data/authors.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,12 @@ mitchellallison:
560560
github: mitchellallison
561561
about: "Mitchell Allison works on Distributed Systems in Swift at Apple."
562562

563+
priyambada:
564+
name: Priyambada Roul
565+
566+
github: roulpriya
567+
about: Priyambada is a software developer based in Bangalore, working at Cashfree Payments, a leading payment processor in India. Shen she's not coding, she enjoys Bharatanatyam dance, painting, sculpting with clay, and experimenting with side projects on GitHub.
568+
563569
heckj:
564570
name: Joe Heck
565571
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
layout: new-layouts/post
3+
published: true
4+
date: 2025-02-NN 10:00:00
5+
title: 'Swift GSoC 2025 highlight: Swiftly (Swift installer) support in Visual Studio Code
6+
author: [ktoso, priyambada]
7+
category: "Community"
8+
---
9+
10+
Another year of successful Swift participation in [Google Summer of Code](https://summerofcode.withgoogle.com) 2025 came to an end recently, and this year we'd like to shine some light on the projects and work acomplished during the summer!
11+
12+
Summer of Code is an annual program, organized by Google, which provides hands-on experience for newcomers contributing
13+
to open source projects. Participants usually are students, but do not have to be.
14+
15+
In this series of four posts, we'll highlight each of the Summer of Code contributors and their projects.
16+
You can navigate between the posts using these convenient links:
17+
18+
- Bringing Swiftly support to VS Code (this post)
19+
- [JNI mode for swift-java’s source jextract tool](2025-11-NN-swift-gsoc-2025-highlight-2-swift-java-jextract-jni-mode.md)
20+
- [Improve the display of documentation during code completion in SourceKit-LSP](2025-11-NN-swift-gsoc-2025-highlight-3-vscode-swift-lsp-documentation.md)
21+
- [Improved Console Output for Swift Testing](2025-11-NN-swift-gsoc-2025-highlight-4-swift-testing-output.md)
22+
23+
What follows, is a shortened writeup about their project and experience by the GSoC contributors.
24+
If you'd like to learn more, please check out the full version of their posts on the Swift forums (linked below)!
25+
26+
---
27+
28+
## Bringing Swiftly support to VS Code
29+
30+
I am Priyambada Roul. I'm incredibly excited to share what I've been working on over the past three months as part of Google Summer of Code 2025 with Swift.org, alongside my mentors, @cmcgee1024 @matthewbastien
31+
32+
My project focused on integrating **Swiftly** (Swift's toolchain manager) into the **VS Code Swift extension.**
33+
34+
## The Problem We Solved
35+
36+
We've made switching toolchains easier with Swiftly, allowing you to install and switch between Swift versions without leaving VS Code.
37+
38+
1. **Switch Swift versions** with a single click
39+
2. **Install new toolchains** without leaving VS Code
40+
3. **See real-time progress** during installations
41+
4. **Automatically sync** with project-specific Swift versions
42+
43+
## What's New for Swift Developers
44+
45+
### Swiftly VS Code Integration
46+
47+
The VS Code extension now provides an entirely **seamless toolchain management experience**:
48+
49+
* We now support macOS too!
50+
* See your current Swift version in the VS Code status bar.
51+
* Click the version to switch between installed toolchains instantly.
52+
* Install any Swift version directly from VS Code with real-time progress.
53+
* Automatic detection of .swift-version files with prompts to switch
54+
55+
### Enhanced Swiftly CLI
56+
57+
* Swiftly now supports a machine-readable JSON output format.
58+
* Swiftly now reports toolchain installation progress updates in **JSONL format**
59+
* We have polished error reporting.
60+
61+
![](/assets/images/gsoc-25/swiftly-1.jpg)
62+
63+
![](/assets/images/gsoc-25/swiftly-2.jpg)
64+
65+
![](/assets/images/gsoc-25/swiftly-3.jpg)
66+
67+
This experience is already shipping in the latest update of the VS Code extension, so you can try it yourself now!
68+
69+
### Things I learnt
70+
71+
* Making a VS Code extension. While I have experience with TypeScript from web development, the VS Code extension API and its development workflow are different from what I'm used to.
72+
* I understood the structure and distribution of Swift toolchains, as well as how different versions can coexist on the same system using symlinks, environment variables, and PATH manipulation, across both macOS and Linux.
73+
* The extension spawns Swiftly processes and reads their JSON output streams in real-time. This involved learning about IPC mechanisms, stdin/stdout buffering and process lifecycle management.
74+
75+
Want to see what we built? Check out the repositories:
76+
77+
* **VS Code Swift Extension**: [github.com/swiftlang/vscode-swift](https://github.com/swiftlang/vscode-swift)
78+
* **Swiftly CLI**: [github.com/swiftlang/swiftly](https://github.com/swiftlang/swiftly)
79+
80+
I have linked all pull requests and technical details in my **[detailed project report](https://docs.google.com/document/d/1Mnb9ybmVkpL6pAgrpMbSg6EV3owA2rz_FgltvAXdnUE/edit?tab=t.0)**, which provides an in-depth look into the specific changes.
81+
82+
This GSoC experience has been transformative. I came in as someone intimidated by large codebases, and I'm leaving with the confidence to tackle complex, multi-tool integrations. I'm excited to continue contributing to Swift community!
83+
84+
85+
---
86+
87+
If you'd like to learn more about this project, please [check out the full post on the Swift forums](https://forums.swift.org/t/gsoc-2025-bringing-swiftly-support-to-vs-code/81886)!
534 KB
Loading
418 KB
Loading
499 KB
Loading

0 commit comments

Comments
 (0)