My experience so far contributing to CheckStyle OSS — (Part 1)

In this article, I will be sharing so far contributing to the Project.

I will be talking a little bit about what I have learned + what I am working on right now and . I will also be sharing how you can get involved and start contributing to the Project.

First of all, let me introduce you to the Project, what is it all about, how it works, and what technology stack is being used in the Project.

Intro to the CheckStyle Open Source tool

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task.

is also highly configurable and can be used to support any coding style(for Java).

I believe that style of code becomes significantly important when it comes to working on a team project.

helps and for projects build in Java by providing different for layout, code formatting, class design, method design, type checking. So, if the source code is not following a proper style or has incorrect syntax, then this tool shows on which you can then easily rectify.

You can explore the project repository on . You can check out the documentation of the Project to learn more about these checks.

Tech Stack

Checkstyle is mainly built in and it uses as a , for , for , and , and many other tools/utilities that make up this amazing tool.
You can know more about the Project dependencies .

My Open Source Journey

If I talk about , I started exploring Open Source a few months back and I made a few contributions by participating in a University level (was one of the top 50 contributors) and I really started enjoying it.

I realized that I can literally learn a lot of different technologies by contributing and get hands-on experience too!!

Currently, I am also participating in which is a 3-month Open Source Program held in India to promote Open Source culture amongst young programmers. I am contributing to different projects related to and some .

My Experience and Learnings

I came to know about the Checkstyle project just a few months back, while looking for organizations on the (Google Summer Of Code) website. I was mostly looking for projects/organizations using Java since I had been learning Java and was more comfortable with it.

I found the and I really loved the idea of this project and how it can a very useful tool while since it becomes really .

I soon started exploring this tool and started getting involved in the and(You can find these on the official GSoC website ). I also started contributing to beginner-friendly issues.

Talking about , it was to update the example of (Abstract Syntax Tree) in the Javadoc documentation.
Don’t worry, it might seem a little overwhelming at first, but you will get a little familiarized with the codebase!

I worked on a couple of these issues and it helped me on any project . It helped me and I also (Abstract Syntax Tree).

An is a tree representation of the syntax of the source code in a programming language. You can learn more about them here.

Next, I went a level-up and worked on some of the GSoC second issues.
Now, is a with , , written for each check and (used to analyze its source code by running Checkstyle itself!).

As I had mentioned previously, has different checks implemented (like indentation, header, import, block checks, type checks, etc) for checking the source code(written in Java) of any project.

So, for this issue, I had to update a specific Test for a check to have it (these files are used to test each of the check’s functionality) for every method in the Test.

By resolving this issue, I and .

I learned that in , we write tests to test the functionality of code(for eg:- an instance method) and compare the expected and actual cases of output to determine whether the code does what it should do in the first place.

I also learned about different and based on which the checks actually verify source code and .

What am I working on right now/current learnings?

Currently, I have started and , the , and also .

I am currently learning about the different tools used in the Project like (syntax used to navigate ), , with

So, are basically used to check how good the test coverage is, and it creates mutations in the code (deliberately break the code).

By doing this, we ensure that all tests cover our code completely and that certain redundant cases could be removed to keep the .

This might seem a little overwhelming but trust me it gets very interesting as you deeply explore the project. I am also learning about .

Currently, I am looking to get a deeper understanding of what , , and (like indentation, Javadoc, block checks, etc). I will also be looking to add tests while resolving these bugs.

How you can get involved and start contributing to Checkstyle?

  1. Before getting started, you should and . You can follow this . You can clone the project from the . Also, join the and , as you can while contributing.
  2. , I would suggest you from or you can (check out).
    then you can play around with this Project using the (which is easier)or if you then you can use it in your IDE.
  3. Read the (to know more about the tool and also you can get answers to your questions/doubts there most of the time) and go through some by filtering issues according to issue labels on Github.
  4. and by picking up different types of issues.
  5. hasa number of that on your . So, if some of these tests fail, you can have a that are generated or you can also on the .

Another thing that I would suggest is to look up similar issues to what you are working on and have a look at the PRs for those issues. This would help you a lot to understand what you have . The mentors/maintainers of the organization are super helpful and supportive and have been maintaining this Project actively.

You can also watch this , to understand more about and

This was all about my contributing to and I am going to share more about it as , in the .

So stay tuned for this!!

Thanks for reading and feel with others if they want to .

Feel free to reach out to me:
Or if you feel more comfy to mail, I am glad you can write here too

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Devansu Yadav

Looking for SWE internship opportunities | Gold MSFT Student Ambassador | Prev — SWE Intern @KonfHub Technologies | Exploring Technologies | ❤️ Open Source