这是indexloc提供的服务,不要输入任何密码
Skip to content
DenisC edited this page Oct 29, 2025 · 21 revisions

Lab 6

Due Date

Monday Oct 27 by Midnight.

Overview

Over the next two weeks, we are going to extend our 0.1 projects by exploring the features of another similar open source project, Repomix. We'll also use this lab in order to explore how it works, and get inspiration for our own tools.

This lab will help you practice the following:

  • evaluating existing open source projects for inspiration and ideas when building your own solutions
  • reading the code for an existing open source project
  • prototyping a new feature and implementing a working proof-of-concept
  • planning future work via Issues

Step 1: Learning Repomix

Please read the Repomix Guide. Pay special attention to features in Repomix that you don't have in your own tool. In the open source world, it's fine to copy where licenses allow it. Repomix's License allows you to "use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software," as long as you accept and maintain the license.

You are asked to pick a feature of Repomix that you think is interesting. You are free to pick whatever feature you like.

Step 4: Read the Code

Reading source code is a critical skill. The best way to do it is to have a goal--it's hard to read source code like a book (i.e., you don't sit down and start reading at main()!). You want to use tools to help you navigate around and find what you're looking for. We'll practice reading-with-a-goal by using Repomix and your chosen Feature from the previous step.

You are asked to try and locate all of the code related to your feature. This includes:

  • implementation
  • tests
  • build or configuration settings
  • docs
  • Pull Requests and Issues related to the original work

Here are some strategies we can use:

  1. git grep. Git has built-in search capabilities. Whenever you clone a repo, you can use git grep to search within the tracked files and folders. For example, you might look for a keyword like a function name, a string you see in the UI, etc.
  2. GitHub Code Search. GitHub also has many advanced search features built into the UI. Using it you can navigate files and folders, look at type information (e.g., click a function to see where it's defined or referenced). There are lots of powerful features to explore.
  3. Using AI. Large Language Models (LLMs) are excellent for helping us understand what existing code is doing.

Step 5: Write Your Code Reading Results

Create a blog post explaining what you learned about how your feature is implemented. Be detailed and technical! Include links to files or lines of code you reference. Give a summary of what the feature is and how it works. Next, talk about how the code that makes it work is organized and written. Give examples of things you learned while reading the code (e.g., styles of programming or ways of solving problems you've never thought about before), aspects that were hard to understand, and anything you're still trying to decipher. Also talk about the strategies you used to read the code. Were you able to learn everything you needed from GitHub? Did you need to use AI to help? What worked best?

Often code reading is something we do to get a sense vs. a perfect understanding of how software works. Don't pressure yourself to be perfect, but also don't give up easily. If you get stuck, take a break and come back to it again another day.

Step 6: Plan your Feature and File Issues

Now it's your turn to implement something similar in your own project. Plan how you'll implement a prototype of this feature using GitHub Issues. File Issues in your repo to document what needs to be done and ideas on how you'll approach the work. The smaller you can make each Issue, the easier it will be to fix them.

Next, prototype the feature in your project. Prototyping means building just enough of a feature in order to understand how the finished version might work. It doesn't need to be 100% complete or perfect. With a prototype, going fast is more important than being meticulous and detail oriented.

Create a branch and start implementing your code, committing to git as you knock-off various bits of the work.

When you're done, you should have something that can be squashed and merged into your default branch. It can be a simple proof-of-concept (missing key elements), as long as it works and proves your idea.

Step 7: File Follow-Up Issues

By the of the lab, for any aspects of the feature that you can't get done, file more Issues to be fixed later on. Challenge yourself to stay on schedule, and convert unfinished work into Issues to be solved in subsequent releases. Figure out what you need to cut in order to ship something on time. Shipping on time is more important than being perfect and never shipping. Software is never done, so it's important to learn to embrace the chaos of rolling releases and ongoing bug fixes.

Step 8: Write a Blog Post about your Feature

After you're all done, write about your project's new feature. Here are some ideas to touch on in your post:

  • Describe your feature. How does it work? What problem(s) does it solve? What does it do?
  • What did you build it?
  • How did Repomix inspire your feature?
  • What did you do similarly to Repomix, and what did you do differently?
  • What are your next steps for the feature and how can people get involved to help you move it forward (e.g., issues you've filed)

Remember, make sure you include URLs to everything you discuss.

Submission

When you have completed all the requirements above, please add your details below, copying the template:


Student Name

  1. Blog Post about Code Reading Analysis of Repomix Feature: https://dev.to/{your-name}/reading-repomix-code
  2. Blog Post about Writing the same Feature in your Project: https://dev.to/{your-name}/announcing-my-new-feature
  3. GitHub Commit https://github.com/{your-username}/{your-repo}/commit/ddeaf180bcde5ebed04b695453fa52cf6b410aca

Oleksandra Kordonets

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Kyle Homen

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Dharam Ghevariya

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Sheng-Lin Yang

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Baihua Chen

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub PR | GitHub Commits Have several commits for the feature.

Karthika Krishnan

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Steven Hur

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Elshad Humbatli

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Wen-Hao Yang

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Aubrey Du

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

David Rivera

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Github Commit

Hitesh Sachdeva

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Hok Kan Cheung

  1. Blog Post about Code Reading Analysis of Repomix Feature
  2. Blog Post about Writing the same Feature in your Project
  3. GitHub Commit

Clone this wiki locally