Skip to content
Loran-l edited this page Oct 1, 2021 · 61 revisions

Lab 1

Due Date

Friday September 17th.

NOTE: your Release 0.1 does not need to be completely finished before you do the lab.

Overview

So far your Release 0.1 has been an individual project. Lab 1 will change that so you begin working on the code in a community. This lab will help you practice the following:

  • using Slack to network and collaborate with community members
  • thoroughly test and review code you didn't write
  • identify bugs, missing features, and other issues in a GitHub repository
  • file useful GitHub Issues
  • have the open source community test and review your own code
  • collaborate with the wider open source community on GitHub

Step 1. Networking on Slack

Use Slack to find a partner to review and test your Release 0.1 SSG code.

Each student needs to:

  1. review, test, and file issues for someone else's project;
  2. have another student review, test, and file issues in your project. You can review/test the code of the student who reviews/tests yours, or you can work with another student. If someone has already reviewed/tested a particular repo, move on to one that hasn't been reviewed/tested yet.
  3. fix and close all issues identified by your reviewer

NOTE: even if your Release 0.1 code isn't perfect, or isn't finished, you can still have someone review and test it. Software is never done.

Step 2. Review and Test

Each project needs to be reviewed and tested by another student. This means doing each of the following steps, and keeping track of what does and doesn't work, what is and isn't clear, etc:

  1. find and fork the repo on GitHub
  2. clone the fork locally (i.e., to your own machine)
  3. follow the instructions in the README.md file to set up the project on your machine
  4. follow the README.md instructions to run the project in various ways
  5. read the code from start to finish, see below.

Step 3. Review and File Issues

You are asked to do a detailed review of the project and its code. NOTE: this is not a review of the developer, only the code. Review should help us, and our software, get better, and isn't meant to be a tool to belittle or make people feel small. Use this process to encourage and collaborate.

Use Slack to discuss things as you work with your partner. For each problem, bug, or improvement you find, file an Issue in the original GitHub repo. Make sure your issues are clear and include enough information to be useful. Here are some suggested steps to follow, but you are welcome to add more:

  • Does the project have an appropriate open source License file? Is the copyright and license information done correctly?
  • Was the README clear? Could any info be added to help improve the documentation? Was any of the information wrong? Was any information missing or assumed?
  • Were there any mistakes in the README (typos, errors, formatting)? Was proper Markdown used?
  • Did you have any problems installing the necessary dependencies (version issues, OS issues, etc)?
  • Does the -v or --version flag print the tool's name and version?
  • Does the -h or --help flag print a useful help message? Could the help message be improved?
  • Does the -i or --input allow a file path to be processed?
  • Does the -i or --input allow a folder path to be processed?
  • Does a folder path find all the *.txt files? Does it properly skip/ignore other types of files?
  • Is an .html file generated for each *.txt input file?
  • Does the generated .html file contain the correct data?
  • Is the formatting, markup, structure, etc. of the generated HTML file correct. Is it valid? Test it at https://html5.validator.nu/
  • Do the paragraphs in the .txt file get converted to <p>...</p> tags in the .html? Does this process have any bugs (e.g., what if you modify the source .txt file, can you break it?)
  • Is the generated .html placed in a .dist/ folder?
  • What happens if you run the tool twice, is the dist/ folder removed/recreated?
  • Are at least 2 optional features implemented? Are they discussed in the README? Do they work as expected? Can you break them with various input or steps? List those steps/input in your issue.
  • Does the program work the way you expect? Was anything surprising?
  • Does the program work correctly? Could anything be improved?
  • Was anything else missing?
  • Did you notice any issues while reading the source code? Were there formatting issues? Could the code be cleaned up? Is it using any incorrect or inefficient methods? Are there better ways to write any of it? Make detailed suggestions in your issues to show how you'd improve it. Saying "this is not good" isn't enough. Explain why and make suggestions about how to improve.
  • Was the code easy to understand? Could it be simplified?
  • Are there any features that are missing that you think other users would need?
  • Finally, what did you like about the code and/or project? Did you learn anything while reading and testing the code? Make sure your feedback discusses this along with any bugs.

If you get to the end of Step 3 and can't find any Issues to file, try harder! I expect each reviewer to file at least 3-5 issues for a project this size. Software is never finished, and can always be improved. Remember: an issue can be very small.

Step 4. Have Your Project Reviewed and Tested

The same way that you reviewed and tested another student's repo for Steps 2 and 3, have another student review and test yours. Support them as they do it, answering any questions they have as they work.

Remember: testing and code review is about helping us write the best software possible. Don't make or take criticism personally. Everyone gets their code reviewed in open source, and it's normal that you will make mistakes. There's nothing wrong with you if someone finds a bug in your code, or suggests ways to improve things. This is how we build high quality software. You're not a bad programmer if you make a mistake: we all make mistakes. Accept your reviewer's feedback as something meant to help you.

Step 5. Fix Your Issues

After your code has been tested and reviewed, take some time to fix your issues before submitting Release 0.1. You are free to fix your code yourself, or submit fixes to the project you review. We'll focus on Pull Requests next week, so it's not necessary this week, if you're not feeling ready.

Step 6. Blog About the Process and Outcomes

When you're finished Steps 1-5, write a blog post. In your post, talk about the following:

  • How did you go about finding someone to work with?
  • What was it like testing and reviewing someone else's code? Did you run into any problems? Did anything surprise you?
  • What was it like having someone test and review your code? Were you surprised by anything?
  • What kind of issues came up in your the testing and review? Discuss a few of them in detail.
  • Provide links to issues you filed, and discuss what you found
  • Provide links to issues that were filed on your repo, and what they were about
  • Were you able to fix all your issues? What was that like?
  • What did you learn through the process of doing the testing and reviewing?

Getting Help

For this to work, you're going to have to leverage your community. Slack will be a critical tool for us all this week, as we try to find others to work with, run into problems, and need help. Be vocal on Slack and don't wait for people to find you.

Submission

When you have completed all the requirements above, please add your details to the table below.

NOTE: in order to edit this wiki, you must accept the GitHub invitation you were sent for this repository. If you don't have one, please talk to your professor.

Name Blog Post (URL) Repo you Reviewed (URL) Your Repo (URL) Name of Student Who Reviewed Your Repo
Example Name https://example.com/blog/1 https://github.com/example/tool-name https://github.com/example2/another-tool-name Example2 Name
Eugene Chung https://ycechung-opensource.blogspot.com/2021/09/lab-1-friend-of-open-source.html https://github.com/Kevan-Y/text-ssg https://github.com/ycechungAI/cmd-ssg Kevan Yang
Kevan Yang https://dev.to/pandanoxes/lab-1-reviewing-other-student-code-sources-5bbg https://github.com/ycechungAI/cmd-ssg https://github.com/Kevan-Y/text-ssg Eugene Chung
Minh Hang Nguyen https://dev.to/minhhang107/1st-collaboration-for-open-source-o2k https://github.com/hlavu/my-ssg https://github.com/minhhang107/mh-ssg Vivian Vu
Hung Nguyen https://dev.to/nguyenhung15913/lab-1-testing-fixing-and-reflection-343 https://github.com/menghif/dodo-SSG/ https://github.com/nguyenhung15913/OSD600-SSG Francesco Menghi
Ahmad Rokay https://dev.to/ar/collaboration-lab-1-56di https://github.com/japneetsingh035/ModernSSG https://github.com/a-rokay/static-site-generator Japneet Singh
Joshua Li https://dev.to/jli/code-review-and-testing-with-a-classmate-14fl https://github.com/gusmccallum/GAS-ssg https://github.com/joshuali7536/LennahSSG Gus McCallum
Minh Quan Nguyen https://dev.to/mqnguyen/collaborating-with-others-in-open-source-n8o https://github.com/lyu4321/jellybean https://github.com/mqnguyen5/mini-ssg Leyang Yu
Vivian Vu https://dev.to/vivianvu/osd600-review-ssg-code-1ffp https://github.com/minhhang107/mh-ssg https://github.com/hlavu/my-ssg Minh Hang Nguyen
Japneet Singh Kalra https://dev.to/japneetsingh035/lab-01-static-site-generator-collaborations-2fbc https://github.com/a-rokay/static-site-generator https://github.com/japneetsingh035/ModernSSG Ahmad Rokay
Irene Park https://dev.to/irenejoeunpark/osd600-lab1-peer-review-for-other-code-4ih2 https://github.com/trangntt-016/static-site-generator https://github.com/irenejoeunpark/ssgApplication Trang Nguyen
Trang Nguyen https://tracy016.medium.com/osd600-reviewing-other-students-source-code-79fd4c219242 https://github.com/irenejoeunpark/ssgApplication https://github.com/trangntt-016/static-site-generator Irene Park
Francesco Menghi https://dev.to/menghif/collaborating-via-github-2747 https://github.com/nguyenhung15913/OSD600-SSG https://github.com/menghif/dodo-SSG Hung Nguyen
Kunwarvir Dhillon https://dev.to/dhillonks/open-source-collaborating-with-others-47l0 https://github.com/DerekJxy/My-First-SSG https://github.com/dhillonks/cli-ssg Xiongye Jiang
Xiongye Jiang https://dev.to/derekjxy/working-in-open-source-554l https://github.com/dhillonks/cli-ssg https://github.com/DerekJxy/My-First-SSG Kunwarvir Dhillon
Chi Kien Nguyen https://dev.to/kiennguyenchi/osd600-week-2-lab-1-5h0b https://github.com/tcvan0707/txt2html https://github.com/kiennguyenchi/potato-generator Thanh Cong Van
Tuan Thanh Tan https://dev.to/tuanthanh2067/process-of-reviewing-my-friend-s-code-in-nodejs-d8o https://github.com/ritikbheda/commandline-ssg https://github.com/tuanthanh2067/cv-ssg Ritik Bheda
Andre Willomitzer https://dev.to/andrewillomitzer/the-gustavo-experiment-partners-in-open-source-4b78 https://github.com/GMOTGIT/GMOT-SSG https://github.com/AndreWillomitzer/textToHTML_V2 Gustavo Tavares
Minsu Kim https://dev.to/mkim219/process-and-outcomes-from-release-0-1-44e5 https://github.com/suhhee1011/SUHHEE_SSG_OSD-release0.1 https://github.com/mkim219/kimchi-ssg Suhhee Kim
Leyang Yu https://dev.to/lyu4321/creating-an-ssg-and-working-with-others-46h9 https://github.com/mqnguyen5/mini-ssg https://github.com/lyu4321/jellybean Minh Quan Nguyen
Anatoliy Serputov https://medium.com/@aserputov/lab-01-for-my-osd-course-8350455afaf4 https://github.com/MizuhoOkimoto/pajama-ssg https://github.com/aserputov/qck-ssg-final Mizuho Okimoto
Mizuho Okimoto https://dev.to/okimotomizuho/open-source-test-review-a-static-site-generator-ssg-1j94 https://github.com/aserputov/final-qck-ssg https://github.com/MizuhoOkimoto/pajama-ssg Anatoliy Serputov
Thanh Cong Van https://dev.to/tcvan0707/my-very-first-collaboration-lab-1-54fb https://github.com/kiennguyenchi/potato-generator https://github.com/tcvan0707/txt2html Chi Kien Nguyen
Oliver Pham https://dev.to/oliverpham/my-first-baby-steps-in-open-source-452 https://github.com/TueNguyen2911/tue-1st-ssg https://github.com/oliver-pham/silkie Tue Nguyen
Gustavo Tavares https://dev.to/gmotgit/reviewing-someone-s-code-osd600-lab-01-3g75 https://github.com/AndreWillomitzer/textToHTML_V2 https://github.com/GMOTGIT/GMOT-SSG Andre Willomitzer
Jia Hua Zou https://medium.com/@jhzou/ssg-0-1v-code-review-caa120b6bc17 https://github.com/lmpham1/cool_ssg_generator https://github.com/JiaHua-Zou/Jia_SSG Le Minh Pham
Le Minh Pham https://medium.com/@lmpham1/my-first-open-source-collaboration-c94d6cbdf827 https://github.com/JiaHua-Zou/Jia_SSG https://github.com/Yoda-Canada/Magic-SSG https://github.com/lmpham1/cool_ssg_generator Jia Hua Zou & Tengzhen Zhao
Gus McCallum https://dev.to/gusmccallum/lab-1-ble https://github.com/joshuali7536/LennahSSG https://github.com/gusmccallum/GAS-ssg Joshua Li
Roxanne Lee https://medium.com/@Roxanne.Lee/lab-1-853f58febdaf https://github.com/abatomunkuev/static_site_generator https://github.com/rclee91/SiteGen Andrei Batomunkuev
Tengzhen Zhao https://dev.to/yodacanada/review-lab-1-4fog https://github.com/lmpham1/cool_ssg_generator https://github.com/Yoda-Canada/Magic-SSG Le Minh Pham
Reza Poursafa https://medium.com/@rezapscodes/code-review-osd600-6989b2f384c6 https://github.com/AmasiaNalbandian/static-site-generator https://github.com/Reza9472/StaticSiteGenerator Amasia Nalbandian
Suhhee Kim https://dev.to/suhhee1011/after-peer-testing-and-review--lab01-5eon https://github.com/mkim219/kimchi-ssg https://github.com/suhhee1011/suhheeKim_OSD_release0.1_create_ssg Minsu Kim
Andrei Batomunkuev https://medium.com/@andreibatomunkuev/new-experiences-in-open-source-15e2909cadb9 https://github.com/rclee91/SiteGen https://github.com/abatomunkuev/static_site_generator Roxanne Lee
Jun Song https://dev.to/juuuuuuun/my-first-experience-co-operate-with-other-student-in-programming-2b0o https://github.com/sirinoks/SSGNode https://github.com/juuuuuuun/jun-ssg Alex Romanova
Ritik Bheda https://dev.to/ritikbheda/learnings-from-release-0-1-14no https://github.com/tuanthanh2067/cv-ssg https://github.com/ritikbheda/commandline-ssg Tuan Thanh Tan
Alex Romanova https://dev.to/sirinoks/my-ssgnode-and-his-jun-ssg-fbl https://github.com/juuuuuuun/jun-ssg https://github.com/sirinoks/SSGNode Jun Song
Qiwen Yu https://dev.to/qiwenyu/static-site-generator-texthtmlpress-jd8 https://github.com/BeAmazedVariable/TS-SSG https://github.com/Qiwen-Yu/TextHTMLPress James Mai
Tue Nguyen https://dev.to/tuenguyen2911_67/doing-code-review-pg7 https://github.com/oliver-pham/silkie https://github.com/TueNguyen2911/tue-1st-ssg Oliver Pham
Emily Phan https://dev.to/hphan9/work-together-in-open-source-project-3kek https://github.com/dbelokon/glazed-donut https://github.com/hphan9/shinny-ssg Diana
Luigi Zaccagnini https://dev.to/luigizaccagnini/contributing-to-the-open-source-community-fp7 https://github.com/drew5494/the-great-site-generator https://github.com/LuigiZaccagnini/octo Andrew Tassone
Amasia Nalbandian https://dev.to/amasianalbandian/reviews-issues-and-tissues-kdj https://github.com/AmasiaNalbandian/StaticSiteGenerator https://github.com/AmasiaNalbandian/static-site-generator Reza Poursafa
loran-l https://loran.hashnode.dev/osd-lab1-report https://github.com/TristanT-dev/txt-to-html-converter https://github.com/AmasiaNalbandian/StaticSiteGenerator Tristan Taylor
Diana Belokon https://dev.to/belokond/breaking-code-and-letting-others-break-my-code-3c4c https://github.com/hphan9/shinny-ssg https://github.com/dbelokon/glazed-donut Emily Phan
Gerardo Enrique Arriaga Rendon https://dev.to/jerryhue/participating-in-open-source-4cn6 https://github.com/DukeManh/OSD_SSG https://github.com/JerryHue/yassgy
James Mai https://dev.to/beamazedvariable/surviving-week-2-mix-feeling-4eej https://github.com/BeAmazedVariable/TS-SSG https://github.com/BeAmazedVariable/TextHTMLPress Qiwen Yu
Duc Bui Manh https://medium.com/@manhducdkcb/code-review-time-718870f0ca6c https://github.com/JerryHue/yassgy https://github.com/DukeManh/OSD_SSG Gerardo Enrique Arriaga Rendon
Tuan Phong Nguyen https://blog.andrewnt.dev/post/osd-600-series-collaborating-on-projects https://github.com/Antonio-Bennett/rssg https://github.com/Andrewnt219/paper Antonio Bennett
Andrew Tassone https://dev.to/drew5494/collaborating-and-contributing-1a63 https://github.com/drew5494/the-great-site-generator https://github.com/drew5494/the-great-site-generator Luigi Zaccagnini