Skip to content

Commit

Permalink
doc: improve README.md add CONTRIBUTING.md add GSOC.md
Browse files Browse the repository at this point in the history
  • Loading branch information
nrmancuso authored and romani committed Nov 2, 2024
1 parent 72c3267 commit abe2233
Show file tree
Hide file tree
Showing 5 changed files with 359 additions and 104 deletions.
134 changes: 117 additions & 17 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,132 @@
# Contributing
# Contribution Guidelines

![](https://raw.githubusercontent.com/checkstyle/resources/master/img/checkstyle-logos/checkstyle-logo-260x99.png)

* [Reporting issues](https://checkstyle.org/report_issue.html)
* [How to report a bug?](https://checkstyle.org/report_issue.html#How_to_report_a_bug.3F)
* [Issue Template](https://github.com/checkstyle/checkstyle/blob/master/.github/ISSUE_TEMPLATE/bug_report.md)
---------------------------------

Please provide issue report in the format that we request, EACH DETAIL IS A HUGE HELP.
**This guide serves to set clear expectations for everyone involved with the project so that
we can improve it together while also creating a welcoming space for everyone to participate.
Following these guidelines will help ensure a positive experience for contributors and
maintainers alike.**

Issues that are not following the guidelines,
will be processed as last priority or never or simply closed as invalid.
:octocat: *Thanks for your interest in contributing to CheckStyle!* :octocat:

## Contributing Guide
## Contents

Please note that PRs are looked only for approved issues. Follow the PR guide for opening a PR
- [Code of Conduct](#code-of-conduct)
- [Getting Started](#getting-started)
- [Opening an Issue](#opening-an-issue)
- [Reporting Security Issues](#reporting-security-issues)
- [Submitting Pull Requests](#submitting-pull-requests)
- [Code Review](#code-review)
- [Google Summer of Code](#google-summer-of-code)
- [Asking Questions](#asking-questions)
- [Credits](#credits)

* [Pull Request Template](https://github.com/checkstyle/checkstyle/blob/master/.github/PULL_REQUEST_TEMPLATE.md)
## Code of Conduct

Please follow the below links in order to start contributing to the checkstyle project
This project and everyone participating in it is governed by the
[CheckStyle Code of Conduct](/.github/CODE_OF_CONDUCT.md).

* [Beginning Development](https://checkstyle.org/beginning_development.html)
## Getting Started

* [Contribution Guidelines](https://checkstyle.org/contributing.html)
- Please see the [CheckStyle Documentation](https://checkstyle.org/beginning_development.html)
for information on how to get started with the project. This includes setting up your
development environment, building the project, and running tests.
- Take a look at the [Contribution Guidelines](https://checkstyle.org/contributing.html) for
on how to contribute to the project.
- Select an issue to work on from the
[Issues Page](https://github.com/checkstyle/checkstyle/issues). We
have a few issues labeled as
https://github.com/checkstyle/checkstyle/labels/good%20first%20issue to
help you get started. Once you get your first PR merged, you can move on to
https://github.com/checkstyle/checkstyle/labels/good%20second%20issue,
https://github.com/checkstyle/checkstyle/labels/good%20third%20issue,
and finally https://github.com/checkstyle/checkstyle/labels/good%20fourth%20issue
before taking up some bug fixes or features. Always make sure that the issue you select
has the https://github.com/checkstyle/checkstyle/labels/approved label.

Find the links below to import the checkstyle project to an IDE
## Opening an Issue

* [Importing checkstyle project to IntelliJ](https://checkstyle.org/idea.html)
A great way to contribute to the project is to create a detailed issue when you encounter
a problem or would like to suggest a feature. We always appreciate a well-written,
thorough issue description. :brain:

* [Importing checkstyle project to Eclipse](https://checkstyle.org/eclipse.html)
Some points to consider when opening an issue:

* [Importing checkstyle project to Netbeans](https://checkstyle.org/netbeans.html)
- **Make sure you are using the latest Checkstyle version.**
Before [Opening an Issue](https://github.com/checkstyle/checkstyle/issues),
check if you are using the latest version of the project,
[found here](https://github.com/checkstyle/checkstyle/releases). If you are not up-to-date,
check to see if updating to the latest release fixes your issue.
- **Do not open a duplicate feature request.** Search for existing feature requests first. If you
find your feature (or one very similar) previously requested, comment on that issue.
- **Fully complete the provided issue template.** The bug report and feature request templates
specify all the information we need to quickly and efficiently address your issue. Be clear,
concise, and descriptive.
Provide as much information as you can, including steps to reproduce, stack traces, etc.
- **Use [GitHub-flavored Markdown](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax).**
Especially put code blocks and console outputs in backticks (```). This improves readability.

## Reporting Security Issues

**Do not file a public issue for security vulnerabilities.** Please contact the
maintainers directly.
see the [Security Policy](https://github.com/checkstyle/checkstyle/blob/master/SECURITY.md)
for more information.

## Submitting Pull Requests

- **Read our pull request rules.** See [PR Rules](https://github.com/checkstyle/checkstyle/wiki/PR-rules).
- **Comment on the issue.** When you decide which issue you would like to take up,
please comment on the issue to let others know that you are working on it ("I am on it.").
Existing "I am on it" comments are a good indication that someone is already working on the
issue, but these comments can be old or outdated; if a comment is a few weeks old with no
activity, feel free to ask if the issue is still being worked on.
- **Read the Github docs.** Visit GitHub's [Pull Request Guide](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)
for information on how to submit a pull request.
- **Follow the template.** Please follow the [CheckStyle Pull Request Template](https://github.com/checkstyle/checkstyle/blob/master/.github/PULL_REQUEST_TEMPLATE.md)
that is provided in the pull request description when submitting a pull request.
- **Run maven build locally.** `mvn clean verify` should pass on your local before
submitting a pull request.
- **Keep the PR small.** If you are working on a large feature, consider breaking it up into
smaller PRs that can be reviewed and merged independently. This makes it easier for
reviewers to understand the changes and for maintainers to merge the PR.

## Code Review

All submissions, including submissions by project members, require review. We use GitHub pull
requests for this purpose. Consult the [GitHub Help](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-reviews)
for more information on pull request reviews.

Here are some general guidelines to follow when submitting a pull request:

- **Reply to comments.** If a reviewer asks for changes, reply to each
(and every) comment with discussion or follow up questions, or let the reviewer know
that you have addressed their concerns ("done").
- **Be patient.** Reviewing PRs takes time. If a reviewer hasn't responded in a week or so,
feel free to ping them. If you are a reviewer and you need more time to review a PR, please
let the submitter know.
- **Be kind.** Remember that everyone involved in the project is a human being. Be kind and
respectful in your comments and reviews.
- **Be open to feedback.** If a reviewer asks for changes, be open to their feedback. Remember that
the goal is to improve the project, and feedback is an important part of that process.

## Google Summer of Code

Please see the [GSoC Participant Guide](https://github.com/checkstyle/checkstyle/blob/master/.github/GSOC.md).

## Asking Questions

See our [Discussions Page](https://github.com/checkstyle/checkstyle/discussions). In short, GitHub
issues are not the appropriate place to debug your specific project, but should be reserved
for filing bugs and feature requests. You can also visit our
[Google Groups Forum](https://groups.google.com/g/checkstyle-devel)

## Credits

*This document was inspired by work from the following communities:*

- [CocoaPods](https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md)
- [Docker](https://github.com/moby/moby/blob/master/CONTRIBUTING.md)
- [.github](https://github.com/jessesquires/.github)
125 changes: 125 additions & 0 deletions .github/GSOC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# GSOC Participant Guide

![](https://raw.githubusercontent.com/checkstyle/resources/master/img/checkstyle-logos/checkstyle-logo-260x99.png)

---------------------------------

**This guide serves to set clear expectations and provide guidance for Google Summer of Code (GSoC)
participants.**

:sun_with_face: Thanks for your interest in participating in GSoC with Checkstyle! :sun_with_face:

## Contents

- [Getting Started](#getting-started)
- [Additional Tips](#additional-tips)
- [Your Proposal](#your-proposal)

## Getting Started

Thanks for your interest in participating in GSoC with Checkstyle! Joining Checkstyle for the summer
is a great way to learn about open source software development and contribute to a widely-used
project. We are excited to work with you and help you grow as a software developer. You don't
need to be an expert in Java or Checkstyle to participate. We are looking for participants who are
eager to learn, work hard, and are excited to contribute to open source software. Additionally, we
want you to stick around after GSoC and become a long-term member of our community :smile:.

Please take the time to read through this guide and familiarize yourself with the project. If you
have any questions, please don't hesitate to ask. We are here to help you succeed. If you have
not already done so, please read through the following documentation provided by Google:

- [GSoC Participant Guide](https://summerofcode.withgoogle.com/rules/).
- [GSoC FAQ](https://developers.google.com/open-source/gsoc/faq).

### Recommended Steps

- **Get to know the project.** Spend some time reading through the Checkstyle documentation and
familiarizing yourself with the project. You can find the documentation at
[https://checkstyle.org/](https://checkstyle.org/).
- **Join the Checkstyle community.**
Join the Checkstyle group on [Gitter](https://gitter.im/checkstyle/checkstyle).
This is a great place to ask questions and get to know the community.
Join the Checkstyle group on [Google Groups](https://groups.google.com/forum/#!forum/checkstyle).
This is another place to ask questions and get to know the community.
- **Start contributing.** We have a list of issues labeled as
https://github.com/checkstyle/checkstyle/labels/good%20first%20issue. These are a great place to
start. Once you complete a few of these, you will have a better understanding of the project and
be ready to move on to https://github.com/checkstyle/checkstyle/labels/good%20second%20issue,
and so on. Once you have completed a few of these, you will be ready to start working on some
more challenging issues, like bug fixes and new features.
- **Take a Look at Our Project Ideas.** We have a list of project ideas that we think would be
great for GSoC. You can find them in our wiki [Checkstyle Wiki](https://github.com/checkstyle/checkstyle/wiki).
You can also propose your own project idea. We are open to new ideas and would love to hear
what you are interested in working on.
- **Create a Draft Proposal.** Once you have a good understanding of the project and have an idea
of what you would like to work on, create a draft proposal. We are happy to help you refine your
proposal and provide feedback. The best way to share your draft proposal is through Google docs.
- **Submit Your Proposal.** Now that you have refined your proposal, submit it through the
GSoC website **before the final submission deadline**.

## Additional Tips

- **Start Early.** The earlier you start, the more time you will have to get to know the project,
accumulate contributions, and refine your proposal.
- **Communicate Effectively.** We are looking for participants who can communicate effectively. This
includes using clear and concise language, being responsive to feedback, and being proactive.
- **Contribute, Contribute, Contribute.** This is the single best way to show us that you are
serious becoming a valuable member of our community.

## Your Proposal

Your proposal is your opportunity to show us that you are the right person for the job. To this end,
we have provided a list of things that we would like to see in your proposal. We are not looking for
a long proposal, but we are looking for a well-thought-out proposal that shows us that you have
taken the time to understand the project and have a clear plan for how you will contribute.

### Proposal Outline

#### Introduction

All projects aim to solve a problem or improve something. Start your proposal by introducing the
problem you are trying to solve or the improvement you are trying to make. This is your opportunity
to show us that you understand the problem, why it is important, and why it is worth solving.
Include any relevant background information that will help us understand the problem, like
statistics, examples, references to existing issues, etc.

#### Project Goals

This should be concise and to the point. What are you trying to accomplish? What are the
deliverables? What are the success criteria? What are the key milestones? Effective goals are
specific, measurable, and achievable. This section may be a bulleted list or outline.

#### Implementation Plan

Describe your solution to the problem. This should include a high-level overview of the
architecture, a list of tasks, and a list of potential challenges, as well as some technical
details. We want to see that you have thought through the problem and can visualize how you will
solve it.

#### Timeline

Show us that you can break down your project into manageable tasks and that you have a clear plan
for how you will accomplish your goals. This should be a timeline that shows what you will be
working on each week. It should include milestones and deliverables. An effective way to present
this is in a table.

#### About You

Tell us about yourself. what time zone are you located in?
What is your background? What are your interests?
What are your career goals?
This is your opportunity to show us that you are a good fit for the project and that
you are excited to work with us. **You must include a list of links to your Checkstyle contributions
to be considered for GSoC; this is one of the most important selection criteria.**

### Proposal Tips

- Be Specific. We want to see that you have thought through the problem and
how you will solve it.
- Be Realistic. We are looking for a proposal that is achievable in the time frame of GSoC.
We want to see that you have a clear plan.
- Be Professional. We are looking for a proposal that is well-written and professional.
- One Proposal <-> One Project. Do not create a proposal that spans multiple projects.
- Proposal Title. If creating a proposal based on our project ideas, please use the title of the
project idea as the title of your proposal. If you are proposing your own project idea, please
create a title that is descriptive and concise.
Loading

0 comments on commit abe2233

Please sign in to comment.