Student | Rahul Khinchi |
---|---|
Organisation | Checkstyle |
Project Link | Automate Release Process of Checkstyle |
Topic | Automation and Release Process |
Tech Stack | Java, Maven, Shell Scripting, Bash Scripting, CI, Git, GitHub Action and API, JUnit, Docker |
GitHub | @Rahulkhinchi03 |
Rahul Khinchi | |
rahulkhinchirk7@gmail.com | |
rahhulk7 |
I’m a Rising Junior pursuing my bachelor's in Computer Science & Engineering. I will be graduating in 2024. My aim is to become a T-Shaped Developer (Design, Develop, Test, Deploy). I am leading technical communities like GitHub Campus Expert, Microsoft Learn Student Ambassadors, and Google Developers Student Club.
- Roman Ivanov @Github
- Maintaining the project without the last human factor point.
In our project CI process is already set in code and everyone can see it and propose changes for it. But we still have the release process 80% automated; unfortunately, it depends on 1 person to do this. The release process takes a bit of time to complete that is why we have the release process set in "ones a month" but in reality, we are ready to release at any point of time from any commit, as our development process already implies this. The release process focuses on delivery detail to users rather than just bumping a version and sharing jars. So we focus on release note generation to share all details with users and share it at web hostings and social media. The release process requires a lot of actions from a certain person who has admin access to websites/hosts and other accounts to make a release.
The goal of this project is to finish automation to let any person with Read-Write access in GitHub do release by activation of CI execution. The release process should be in scripts/code of our repo(s) to let all see what is going on and even is required to release manually in case CI is experiencing downtime or any other problems.
Completion of this project will help us to increase the frequency of releases if required to make sure that users can receive the released version to use almost right after code changes are merged into the main code base. It will make a contribution to the project more attractive as it will be apparent that as soon as a code change is accepted you can use it in a project where you are experiencing problems with defects. The frequency of releases will be defined later on and probably be based on the severity of fixed defects, contributors can share with us how much they ok to wait for the release.
- Understanding the current release process.
- Explored releasenotes-builder, a checkstyle tool for generating all the needful things for release.
- Interacted with Mentor to understand the scope of the project.
- Worked on the skills needed for the Project.
Sequence Diagram: Scope.
- Automation of the creation of settings.xml - (checkstyle/checkstyle#11743)
- Automation of the Twitter - (checkstyle/checkstyle#11745)
- Automation of update of the releasenotes.xml - (checkstyle/checkstyle#11750)
- Updateing GitHub Action for bump-license-year.sh - (checkstyle/checkstyle#11971)
- Updateing releasenotes to use GitHub Pages execution - (checkstyle/checkstyle#12009)
- Automating execution by Github action bump-license-year.sh - (checkstyle/contribution#620) & (sevntu-checkstyle/sevntu.checkstyle#892)
- releasenotes-builder: fail execution if multiple labels - (checkstyle/contribution#627)
- Add -generateGitHubPage and - githubpostTemplate arguments - (checkstyle/contribution#628)
- releasenotes script generated empty commit - (checkstyle/checkstyle#11845)
- prepare-settings.sh fails to create settings.xml - (checkstyle/checkstyle#11785)
- deleted bump-license-year-in-all-projects.sh - (checkstyle/checkstyle#11905)
- Remove -PublishXdocWithPush and -PublishXdoc command - (checkstyle/contribution#618)
- created Github action that does version bump and update milestone - (checkstyle/checkstyle#11993)
- Reuse Plain text release notes from releasenotes-builder - (checkstyle/checkstyle#12007)
- Adding CheckForVariable function to util.sh - (checkstyle/checkstyle#12022)
- Enhancements for bump version action - (checkstyle/checkstyle#12062)
- Github action: Release prepare - (checkstyle/checkstyle#12085)
- Github action: Update Github milestone and upload '-all' jar - (checkstyle/checkstyle#12094)
- Github action: Update sources with release notes - (checkstyle/checkstyle#12097)
- Github action: Publish release notes outside - (checkstyle/checkstyle#12107)
- Github action: Publish release notes Twitter - (checkstyle/checkstyle#12110)
- Github Action: Update github.io - (checkstyle/checkstyle#12118)
- Github action: GitHub Milestone and Upload Jar - (checkstyle/checkstyle#12119)
- tweet-releasenotes.sh should be able to work on start and finish release names - (checkstyle/checkstyle#12069)
- update all shell scripts for release automation - (checkstyle/checkstyle#12084)
- rename all release action to have 'R:' prefix in name - (checkstyle/checkstyle#12117)
- rename update-sources.sh - (checkstyle/checkstyle#12123)
- Minor changes in in shell scripts - (checkstyle/checkstyle#12125)
- Github action Release prepare should validate presence of releasenotes.xml - (checkstyle/checkstyle#12127)
- update publish Twit action to use secrets - (checkstyle/checkstyle#12138)
- execution of 'R: Update github.io' with '10.3.3' faililng - (checkstyle/checkstyle#12162)
- updates in Github actions - (checkstyle/checkstyle#12166) & (checkstyle/checkstyle#12167)
- failure to publish github release notes ' R: Publish GitHub IO - (checkstyle/checkstyle#12178)
- releasenotes-builder: update Github template to be more compact - (checkstyle/contribution#632)
- Disable execution of GitHub actions with cron in fork repositories -
- (checkstyle/checkstyle#12176)
- (checkstyle/contribution#650)
- (sevntu-checkstyle/checkstyle-samples#42)
- (sevntu-checkstyle/sevntu.checkstyle#898)
- satelite projects should use latest checkstyle as soon at is appears in maven repo -
- (checkstyle/contribution#635)
- (checkstyle/contribution#636)
- (checkstyle/contribution#637)
- (sevntu-checkstyle/checkstyle-samples#39)
- (sevntu-checkstyle/checkstyle-samples#38)
- (sevntu-checkstyle/checkstyle-samples#37)
- (sevntu-checkstyle/checkstyle-samples#36)
- (sevntu-checkstyle/sevntu.checkstyle#896)
- (sevntu-checkstyle/sevntu.checkstyle#895)
- (sevntu-checkstyle/sevntu.checkstyle#894)
- releasenotes-builder: update Github template - (checkstyle/contribution#655)
- releasenotes-builder: avoid extra line wrapping - (checkstyle/contribution#656)
- failure of update github.io to clone checkstyle.github.io - (checkstyle/checkstyle#12174)
- releasenote-builder: should have execution mode to fail - (checkstyle/contribution#651)
- releasenotes-builder: Release notes for GitHub shows escape at-symbol - (checkstyle/contribution#653)
- checkstyle/checkstyle
- checkstyle/contribution
- sevntu-checkstyle/checkstyle-samples
- sevntu-checkstyle/sevntu-checkstyle
- Issues
- My experience with GSoC was great, and I plan on staying here and enjoying the open-source culture. I met some really good mentors and organizers. That being said, I think I got the essence of what GSoC was intended for. Opensource is my favorite way to do work!