-
Notifications
You must be signed in to change notification settings - Fork 87
GSoC 2024: Ideas
pep8speaks is hoping to participate in GSoC 2024 under the Python Software Foundation umbrella. We won't know if we've been accepted until February 2024. You can view the GSoC 2024 dates and deadlines on Google's page This issue will be updated with more info as we know it.
pep8speaks is an open-source project aimed at enhancing code quality and style adherence in Python projects. It focuses on automating the enforcement of PEP 8, the Python Enhancement Proposal that outlines the style guide for Python code.
- Code Style Feedback: pep8speaks provides automated feedback on code style issues, helping developers adhere to PEP 8 guidelines.
- GitHub Integration: The tool seamlessly integrates with GitHub, offering real-time analysis and feedback directly within pull requests and commits.
- Customizable Configuration: Users can configure the tool to suit their project's specific requirements and coding standards.
- Collaborative Development: Facilitates collaborative development by encouraging a consistent and clean code style across the entire codebase.
- Continuous Integration Support: Integration with continuous integration systems ensures that code style checks are performed as part of the development pipeline.
- Developers push their code changes to GitHub.
- pep8speaks automatically analyzes the code against PEP 8 standards.
- Detailed feedback is provided within the GitHub interface, highlighting areas that need attention.
- Developers can address the issues directly, promoting a streamlined code review process.
- Organizations apply usually circa February. We won't know for sure if we're in until after applications close. We'll be listed as part of the "Python Software Foundation"
It can be really overwhelming figuring out how to start a new project, so here are some steps we recommend:
- To set up the project locally and test it you can follow the setup guide.
Some potential first contributions:
- File issues. You might encounter a bug or something confusing in the project or documentation. Let us know if you do!
- Write a new test. This can be your first contribution!
- Try fixing a bug. We have a few flagged as "good first issue".
We expect prospective GSoC students to have made at least one code contribution if they want their application to be considered, so now's a good time to get that going! You can ask for as much help as you need.
After your first contribution:
If you want to keep practicing once you've got a first commit under your belt, here's some other stuff you could try:
- Try working on any other issue that we have filed.
- Help review pull requests: if you see someone new who's struggling with fixing linter errors or failed tests, you can help out!
- Help answer questions on issues. There's a lot of people asking "how do I get started on this?" right now -- if no one's answered, maybe see if you can?
- Ask about the GSoC tagged issues!
- We have a chat server on Matrix. That allows for "live" chat but no one's actually sitting there 24/7 so you should expect to post your question and get an answer hours later when someone sees it.
Here is a list of projects we think are interesting and can be managed within the timeframe of the Google Summer of Code
This project aims to bridge the gap between pep8speaks, a Python code style checker, and GitLab, one of the leading platforms for code hosting and collaboration. By integrating pep8speaks with GitLab, we intend to provide automated PEP 8 compliance feedback directly within GitLab merge requests and commits, facilitating a seamless code review process that ensures adherence to coding standards.
Currently, pep8speaks is limited to GitHub, leaving a significant portion of the developer community on GitLab without access to this valuable tool for maintaining code quality. This project seeks to extend pep8speaks' capabilities to GitLab, addressing the need for automated code style checks within the GitLab workflow and promoting coding best practices across platforms.
Proposed Changes:
-
Integration with GitLab Webhooks: Develop functionality within pep8speaks to listen and respond to webhooks from GitLab, enabling real-time code style feedback during the code review process.
-
Customizable pep8speaks Configuration: By using .pep8speaks.yml for both GitHub and GitLab, we streamline the user experience, making it easier for developers to adopt pep8speaks across different platforms.
-
Automated Feedback in Merge Requests: Design a system for automatically posting comments on merge requests in GitLab with details of any PEP 8 violations, mirroring the functionality currently available on GitHub.
Why it's Important:
-
Platform Diversity: Extend pep8speaks to GitLab, accommodating different version control platform preferences.
-
Unified Code Style: Promote a consistent code style experience across GitHub and GitLab, fostering collaboration and enhancing overall development workflows.
Related issues are: #221
- Skills: Shell, Python, familiarity with flask, pep8 style guide and GitLab API for integration are highly beneficial.
- Difficulty: Hard
- Project length: 350 hours
- Potential mentors: Kanishk Pachauri (@Mr-Sunglasses), Tushar Gupta (@tushar5526)
Expected Outcome: Successful implementation of GitLab integration in pep8speaks, demonstrated through the ability to configure the tool in GitLab projects and automated code style feedback in merge requests.
This project idea aims to broaden the capabilities of pep8speaks by integrating the Ruff Python linter and enabling configuration via the pyproject.toml file. These enhancements will provide users with more flexibility in code analysis and project configuration, aligning with modern Python development practices.
Proposed Changes
- Ruff Python Linter Integration: Implement functionality within pep8speaks to use Ruff for code analysis, alongside or as an alternative to existing linters. This involves developing an adapter to interface with Ruff's API and analyze Python code within pep8speaks' workflow.
-
pyproject.toml Configuration: Develop a feature to read and write pep8speaks configuration options within a project's
pyproject.toml
file ( which is currently done with.pep8speaks.yml
file), offering a standardized and centralized way to manage tool settings.
Why It's Important
-
Linter Diversity: Supporting Ruff as a linter option gives developers the freedom to choose the tool that best fits their project's needs, potentially benefiting from Ruff's performance and feature set.
-
Adherence to Modern Standards: Utilizing pyproject.toml for configuration streamlines project setup and aligns pep8speaks with contemporary Python project management practices.
- Skills: Shell, Python, familiarity with flask, pep8 style guide and Ruff API for integration and Config Management are highly beneficial.
- Difficulty: Medium
- Project length: 175 hours
- Potential mentors: Kanishk Pachauri (@Mr-Sunglasses), Tushar Gupta (@tushar5526), Akshat Sharma (@akshatcoder-hash)
Expected Outcome:
Integration of the Ruff linter into pep8speaks and support for pyproject.toml
configuration, evidenced by the ability for users to select Ruff for code analysis and manage pep8speaks settings in a unified project configuration file.
We propose enhancing the pep8speaks website to improve its overall design and functionality. Additionally, we aim to introduce a simple configuration editor on the website, allowing users to quickly add and customize all the sections of the configuration needed for their projects.
Proposed Changes
- Website Enhancement: Improve the user interface, navigation, and overall design of the pep8speaks website for a more modern and user-friendly experience.
- Simple Configuration Editor: Implement a straightforward configuration editor on the website. This editor should provide an easy-to-use interface for users to add and customize various sections of the configuration for their specific projects.
Why It's Important
- User-Friendly Configuration: The addition of a simple configuration editor streamlines the process, making it more accessible for users to customize configurations without the need for extensive technical knowledge.
- Enhanced Website Experience: Improving the website design and functionality contributes to a positive overall user experience and encourages greater engagement with the pep8speaks tool.
-
Skills: HTML, CSS, Javascript, React, Python, pep8 style guide, and Config Management are highly beneficial.
-
Difficulty: Easy
-
Project length: 90 hours - 175 hours (It would be possible to do part of this project in a 90 hour project, but we may prefer candidates who have the time to do more assuming similar levels of ability )
-
Potential mentors: Kanishk Pachauri (@Mr-Sunglasses), Tushar Gupta (@tushar5526)
Expected Outcome: The enhancement of the pep8speaks website, coupled with the addition of a simple configuration editor, aims to significantly elevate the user experience and tool engagement.
We welcome all additional proposals, or ideas. Contact the suborg-admin here.