Skip to content

Files

Latest commit

8041f2b · Jul 26, 2024

History

History
377 lines (245 loc) · 15.6 KB

01-topics.md

File metadata and controls

377 lines (245 loc) · 15.6 KB
marp header footer theme paginate
true
Open-Source Project
Prof. Dr. Gerit Wagner
ub-theme
true

WI-Project: Open-Source Project with Git and Python

Juniorprofessur für Digital Work


Your instructor

  • Prof. Dr. Gerit Wagner
  • At Bamberg University since October, 2022
  • I work with Git, Python, and R since 2014
  • I enjoy coding, solving programming puzzles, and building tools
  • My latest and most significant project: CoLRev

bg right:50% width:550px


What you will learn (I): Git/GitHub

  • Use git and GitHub for versioning and collaboration
  • Git quickly established itself as the most popular version control system
  • As a prominent example, Microsoft has acquired GitHub and moved the source code of Windows to git (1)
  • Many companies have public GitHub programs and share parts of their work as Open-Source (e.g., Google or Meta)

bg right:40% width:350px


What you will learn (II): Python

  • Write Python code and contribute to a Python package
  • Python is the leading programming language in several rankings, including the TIOBE Index and the PYPL (PopularitY of Programming Language) ranking
  • Job requirements for Data Scientists, Full-stack Software Engineers, DevOps Engineers, or Data Engineers commonly include Python (1)

bg right:45% width:450px


What you will learn (III): Open-Sourcing

  • Work with the Open-Source workflows of GitHub
  • Make a first contribution to a public Open-Source project
  • Adopt the role of a maintainer and review code of your peers
  • Have an opportunity to create your developer portfolio

bg right:35% width:350px


The project: CoLRev

Collaborative Literature Reviews (CoLRev) is an open-source environment for collaborative literature reviews. It integrates with differerent synthesis tools, takes care of the data, and facilitates Git-based collaboration.

The following features stand out:

  • Supports all literature review steps: problem formulation, search, dedupe, (pre)screen, pdf retrieval and preparation, and synthesis
  • An open platform based on shared data and process standards
  • Builds on git and its transparent collaboration model for the entire literature review process
  • Focus: command-line interface

bg right:30% width:300px


Agenda

<style> img[alt~="center"] { display: block; margin: 0 auto; } </style>

width:750px center

Dates and rooms are available online. We will evaluate the code four days before the code review session.


How groups will form

You assign yourself to a group when you contribute code following these steps:

  1. Signal your intent to contribute by joining the issue discussion on Github (in the issue discussion, before the Git Session, for two topics at most).
  2. Organize your work, meet potential group members, and select a project leader (in the following sessions). Keep in mind that no more than 6 people will be accepted per group.
  3. Officially sign up for a group by contributing a non-trivial code part. Contributions of team members must be in separate commits. Select a project lead who sends your Github-ID together with a link to your code contribution, your student ID, and e-mail address to gerit.wagner@uni-bamberg.de.

This process ensures that all group members make a fair contribution. It is at our discretion to adapt the rules if necessary. It is your responsibility to bring up concerns early.


How you can make the project a success

  • Embrace the challenge and adopt a problem solving mindset
  • Take full responsibility to set up your programming environment
  • Be prepared. Know your code, be able to explain it, and ask prepared questions (Google it, consider different options)
  • Do not use generative AI such as ChatGPT (risk of copyright infringement)
  • Adopt an Open-Source approach (work publicly, communicate in English, create a profile)
  • Reach out and schedule individual hacking sesisons via calendly to discuss challenges and get feedback

Evaluation criteria

  • Organize as a team, following Open-Source principles (e.g., create atomic commits; use branches and pull requests; review, discuss, revise, and test your code)
  • Adopt an Open-Source approach (work publicly, communicate in English, create a profile)
  • Be able to explain the code contribution of the team as a whole
  • Each team member: Make a concise and high-quality contribution to the code. This is a necessary condition to pass the course. We review code contributions at the end.
  • Embrace the challenge and adopt a problem solving mindset
  • Contribute your code to the CoLRev project and have your code merged
  • Attend your presentation session and contribute to the code review
  • Do not use generative AI such as ChatGPT (risk of copyright infringement)

Finding things in an Open Source project

Go to the CoLRev project repository.

Form groups of three and try to find the following information in 10 minutes:

  1. How many commits, contributors, and downloads does the project have? What's the test coverage?
  2. Where is the documentation and how can I install CoLRev?
  3. What's the license and where can we find information on how to contribute to the project?
  4. What information should be provided for bug reports, where can I open a feature request?
  5. How many issues are open vs. closed? How many pull requests are open vs. closed?
  6. How long do workflows with tests or code formatting run, when did the last one fail?
  7. What is "unpaywall" used for in the project?
  8. Where can we find the features planned for milestone v0.12.0 (due March 1st)?

CoLRev: Demo and Topics

An overview of the process and the worfklow are available in the documentation. A brief overview is available on YouTube.

Find a topic

  • Go to milestone v0.13.0 and read the open issues (available topics).
  • Find others who are interested in the same topic.
  • Ask questions.

Until next session

  • Sign up for our VC course (password: shaiChi4)
  • Create a GitHub account (using your student e-mail address), start exploring issues, and team up
  • Set up your programming environment (see instructions in the CoLRev documentation)

bg right:36% width:300px