-
Notifications
You must be signed in to change notification settings - Fork 40
PyCon India 2023 Devsprints
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
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.
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
Project Repository: https://github.com/lcompilers/lpython
Mentor: Ubaid Shaikh
Source: Link
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
Get up and running with contributing to a world-class web development Framework: Frappe Framework
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 is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
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 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.
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
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.
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
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
- 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
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
- 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