Skip to content

PyCon India 2023 Devsprints

Tanbir Sohail edited this page Oct 2, 2023 · 17 revisions

What is a Devsprint ?

During Devsprints, mentors/contributors of OSS projects guide participants through the end-to-end process of OSS contribution, right from setting up build environments, to developing and testing code, to submitting patches for bugs. If you are stuck, mentors are all available to help you figure out issues and get you back up and running! From past experiences, we’ve seen a lot of people start off contributing to OSS through Devsprints and later go on to become regular contributors to various projects across the web.

Zulipchat for PyCon India 2023 Devsprints - https://pyconindia.zulipchat.com/#narrow/stream/405903-2023.2Fdevsprints

PyCon India 2023 Devsprint Projects

LPython: Novel, Fast, Retargetable Python Compiler

LPython is a Python compiler that can compile type-annotated Python code to optimized machine code. LPython offers several backends such as LLVM, C, C++, WASM, Julia and x86. LPython features quick compilation and runtime performance. LPython also offers Just-In-Time (JIT) compilation and seamless interoperability with CPython.

Prerequisites

The following tools would be needed for local development of LPython:

  • conda
  • gcc/g++/clang
  • git
  • Ideally a Linux/Mac Machine

You will be expected to have some understanding of the following:

  • Python
  • Git & GitHub workflow

Setup Instructions

Project Repository: https://github.com/lcompilers/lpython

Mentor: Ubaid Shaikh

Source: Link

Building Computer Vision Packages

This sprint is designed to bring together passionate developers interested in contributing to our Python-based computer vision package.

The primary goal for this dev sprint is to enhance and expand the functionality of computer vision package that implements hand tracking module. Aim is to:

  • Improve existing algorithms and optimize performance.
  • Add new features and tools to make computer vision tasks more accessible.
  • Fix bugs and enhance the package's stability.
  • Enhance documentation to facilitate easier usage and contribution.

Project Repository: https://github.com/laksh-2193/lkcomputervision

Mentor: Lakshay Kumar

Source: Link

Frappe Framework: Low-code/No-code Full-stack Web Development Framework

Get up and running with contributing to a world-class web development Framework: Frappe Framework

Prerequisites

Basic knowledge of web development with an MVC framework. Frappe Framework is written in Python & JavaScript.

Project Introduction: Link

Frappe Framework Setup: https://github.com/frappe/frappe#installation

Good First Issues: https://github.com/orgs/frappe/projects/61/views/1

Telegram Group: https://t.me/+YMIqUhmh2bk2ZGNl

Mentor: Core Frappe Team

Source: Link

NetworkX: Complex Network Analysis in Python

NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

Prerequisites

You will be expected to have some understanding of the following:

  • Python
  • Git & GitHub workflow

Project Repository: https://github.com/networkx/networkx

Mentor: Navya Agarwal

Source: Link

SymPy: Python Library for Symbolic Mathematics

SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.

SymPy is a free and open-source Python library, distributed under the BSD license. What sets SymPy apart is its Python-centric design, ensuring compatibility and accessibility for Python developers. It boasts a lightweight footprint, relying exclusively on the pure Python mpmath library for arbitrary floating-point arithmetic. Beyond its standalone capabilities as an interactive tool, SymPy can be seamlessly integrated into various applications and extended with custom functions, enhancing its utility for developers across different domains.

Prerequisites

Before diving into contributing to SymPy, let's ensure you have the necessary prerequisites in place.

  • Proficiency in Python programming.
  • Basic understanding of mathematical concepts.
  • Familiarity with SymPy's codebase (Optional, but beneficial).
  • A development environment set up for SymPy (Refer to SymPy's official documentation for instructions)

Project Repository: https://github.com/sympy/sympy

Mentor: Nikhil Maan

Source: Link

Hands-on first time contribution into Apache Airflow

This will be a hands-on session with the first 30 minutes being walk walkdown about the data orchestrator Apache Airflow, its parts, the community and where to go and seek help, how help can be asked effectively in an Open source community, and place to look for the first time contributors. With that said, we will try hands-on in setting up the development environment in your instance. Picking up the first-time contributors tags from the issue list and making contributions. This will have also introduction about using the git version control tool for making contribution to huge projects in Open-source.

The goal of this devsprint is to give a glimpse of how contributing to an open-source project will look like and give directions on further contribution.

Prerequisites

Laptop - ( Linux / Mac(MacOS/ARM)) - 4GB RAM, 40GB disk space, and at least 2 cores ( Installing in Windows machine is not easy and we need to have WSL2 installed to do it)

For this session, we are going to use Docker containers and Docker compose way of installation which can be done during session

With the above said, we will follow the set of commands given in the guidelines and set our environment during the session.

Contributors Guide: https://github.com/apache/airflow/blob/main/CONTRIBUTORS_QUICK_START.rst#contributors-quick-start

Project Repository: https://github.com/apache/airflow

Mentor: Bowrna

Source: Link

Enhancing junction as a Speaker Management System

junction started as a CFP management system by the Python India Developers. It has been passed down by generations of PyCon India Team for serving as the single platform for submitting proposals for PyCon India every year. Over the years we have maintained junction to support all cases for the CFP team of PyCon India growing through their feedback.

The need of the hour is to

  • junction should get a UI update. The UI is pretty stale now
  • Performance improvements for junction in terms of Loading Reviewer Vote data, sending email notifications and other slow corners.
  • Update junction CI/CD
  • Have a full fledged Speaker Management system so that we do not send multiple forms to the Speaker
  • We should do Speaker Travel & Accommodation Confirmation via junction as well, so that it can serve as single source of truth for Conference organizers

Prerequisites

  • Docker
  • Git
  • Knowledge of Python
  • Basic Knowledge of CSS
  • Knowledge of Django Framework will be a plus

Project Repository: https://github.com/pythonindia/junction

Mentor: Ananyo Maiti

Source: Link

Getting started with Apache Beam

Beam is the open source project

  • Unified programming model
  • Portable
  • Multiple Runners
  • Multiple Languages (Java, Python, Go*) Extensible:
  • IO: GCP + major open source + APIs
  • DSLs: SQL, Scala

Prerequisites

  • Knowledge of Python
  • Basic knowledge of data processing
  • Knowledge of Apache Beam framework is a plus
  • Knowledge of stream processing frameworks is a plus

Project Repository: https://github.com/apache/beam

Beam Playground : https://play.beam.apache.org/

Learn concepts : https://tour.beam.apache.org/

How to Contribute to Apache Beam : https://beam.apache.org/contribute/

Apache Beam Issues to Work On : https://github.com/apache/beam/contribute

Quickstart Example : https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/wordcount.py

Starter tasks for beginners : https://issues.apache.org/jira/browse/BEAM-123?filter=12343676

Mentor: Tanbir Sohail Dolly Sharma