Difference between revisions of "SPO600 Code Review Lab"
Chris Tyler (talk | contribs) |
Chris Tyler (talk | contribs) |
||
(14 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:SPO600]] | + | [[Category:SPO600 Labs]] |
− | + | {{Admon/lab|Purpose of this Lab|This lab is designed to explore the code review processes used in open source projects/communities. This is important to know because you will later be submitting your own code for review.}} | |
− | |||
− | |||
− | |||
+ | <!-- {{Admon/note|Homework|Unlike other labs, we will not be working on this lab in class -- please complete this lab as homework.}} | ||
+ | --> | ||
+ | == Lab 1 == | ||
− | {{Admon/tip|Finding Software Packages|One way to find potential software packages on an RPM-based Linux system is to take advantage of the rpm database. For example, the command <code>rpm -q -i bash</code> will display information about the ''bash'' package, including the URL of the upstream project as well as the software license.}} | + | # Select '''any two open source software packages''' that have '''different licenses''' (and therefore are most likely to use different approaches to community organization). |
+ | # Research the procedure used by those projects to accept code ("patches") from contributors. This may be through a mailing list, bug tracker, or source code management system (SCMS)/version control system (VCS) such as Mercurial, Bazaar, or Git/GitHub. | ||
+ | # Identify one software change ("patch") successfully submitted in each community, and observe the entire review process from start to finish. Note how many people were involved in the review, the role of those people in the community and project, how long the whole review took, how responsive the participants were to updates in the process, what kinds of issues were discussed, and how issues were resolved. | ||
+ | # '''Write a blog post discussing your findings'''. Explain in detail how each community's review process works (including all of your observations from the previous step with links), the reasons for what you've observed, and note the advantages and disadvantages of each approach. Consider what you personally would have to do and learn in order to successfully submit a patch to each community. Include links to the particular patch/issue that you observed. | ||
+ | |||
+ | |||
+ | {{Admon/tip|Finding Software Packages|One way to find potential software packages for this lab on an RPM-based Linux system is to take advantage of the rpm database. For example, the command <code>rpm -q -i bash</code> will display information about the ''bash'' package, including the URL of the upstream project as well as the software license.}} |
Latest revision as of 08:06, 7 September 2022
Lab 1
- Select any two open source software packages that have different licenses (and therefore are most likely to use different approaches to community organization).
- Research the procedure used by those projects to accept code ("patches") from contributors. This may be through a mailing list, bug tracker, or source code management system (SCMS)/version control system (VCS) such as Mercurial, Bazaar, or Git/GitHub.
- Identify one software change ("patch") successfully submitted in each community, and observe the entire review process from start to finish. Note how many people were involved in the review, the role of those people in the community and project, how long the whole review took, how responsive the participants were to updates in the process, what kinds of issues were discussed, and how issues were resolved.
- Write a blog post discussing your findings. Explain in detail how each community's review process works (including all of your observations from the previous step with links), the reasons for what you've observed, and note the advantages and disadvantages of each approach. Consider what you personally would have to do and learn in order to successfully submit a patch to each community. Include links to the particular patch/issue that you observed.