|
| 1 | ++++ |
| 2 | +title = "GSoC'23: Enhancing VS Code Developer Experience" |
| 3 | +date = "2023-07-13T00:00:00+01:00" |
| 4 | +author = "Md Sahil" |
| 5 | +tags = ["GSoC'23", "VS Code", "IDE Extension"] |
| 6 | ++++ |
| 7 | + |
| 8 | +<img width="100px" src="https://summerofcode.withgoogle.com/assets/media/gsoc-2023-badge.svg" align="right" /> |
| 9 | + |
| 10 | +# GSoC'23: Enhancing VS Code Developer Experience |
| 11 | + |
| 12 | +## Motivation |
| 13 | + |
| 14 | +The VS Code Extension for Unikraft enables developers to quickly and painlessly build unikernels from the VS Code IDE. |
| 15 | +Amongst other features, it allows developers to list and find unikernel libraries as well as run basic commands. |
| 16 | +In this project, I will upgrade the VS Code extension to use [KraftKit](https://github.com/unikraft/kraftkit), the newly released CLI companion tool for Unikraft, written in Go. |
| 17 | + |
| 18 | +### Summary of Objectives |
| 19 | + |
| 20 | +This project aims to achieve the following outcomes: |
| 21 | + |
| 22 | +* Modify the project's main binary, `kraft`, to enable JSON output of various commands, so that the integration with VS Code could be done through a machine-readable interface. |
| 23 | +* Update VS Code IDE extension to function properly with new Go-based KraftKit. |
| 24 | +* Additionally, enhance the experience, including adding support for other steps, in Unikraft's build cycle: package unikernels in different formats, provide linting. |
| 25 | + |
| 26 | +### Progress in the past 3 weeks (From June 19 To July 7, 2023) |
| 27 | + |
| 28 | +* [Developed a subcommand `add` for the command `kraft pkg`](https://github.com/unikraft/kraftkit/pull/622) that pulls a new library to the project directory and updates `Kraftfile` of the project directory for the new added library. |
| 29 | +* [Developed a subcommand `show` for the command `kraft pkg`](https://github.com/unikraft/kraftkit/pull/536) that shows manifest of a package in JSON|YAML format. |
| 30 | +* [Developed a subcommand `prune` for the command `kraft pkg`](https://github.com/unikraft/kraftkit/pull/546) that prunes the library/libraries available on the host machine. |
| 31 | +* [Developed a command `kraft lib create` for Kraftkit](https://github.com/unikraft/kraftkit/pull/591) just like `kraft lib init` in Pykraft to initiate a library template for development. |
| 32 | + |
| 33 | +## Next Steps |
| 34 | + |
| 35 | +* My Next is to create more commands that will be used by IDE Extension to work properly with Kraftkit, Once all the commands are developed in Kraftkit that IDE Extension uses I'll start making further changes in IDE Extension for initialization & other operations. |
| 36 | + |
| 37 | +## About Me |
| 38 | + |
| 39 | +I'm [Md Sahil](https://github.com/MdSahil-oss), A third year undergraduate student of Computer Science Engineering at [Maharshi Dayanand University](https://mdu.ac.in/). |
0 commit comments