google-summer-of-code

Project Abstract    Weekly Summary    Pull Requests & Issues    Would like to sync?    Links


❔ Project Abstract

Charmil is a framework for building command line plugins on top of Golang Cobra Library. Charmil will grant your cobra-based CLI superpowers that cobra does not support and that show to be crucial tools for efficiency and effectiveness. These CLI’s can also be added to any Host CLI as plugins.

Cobra is standard and very famous in the CLI industry and is being used in many industry projects such as Kubernetes, rhoas, gh-cli, etc. To make the development process easier we introduced Charmil.

Charmil solves many problems/issues faced by developers during development of CLI’s. The major feature that Charmil brings on the table is the ability to develop multiple fragmented CLI’s, maintained/working in separate repositories, and later embed/combine them in a single Host CLI.

Charmil Components in brief

For detailed description visit Charmil


📅 Weekly Reports


✨ Pull Requests & Issues

This summarizes my work during this summer with Aerogear

Pull Request Related Issue
#45 charmil as wrapper for cobra Charmil Core
#48 Factory(RHOAS) for driving charmil Charmil Core
#52 Add i18n support & improve logging issue#50 #51
#82 Validator for cobra commands issue#58
#83 CI/CD & issue pr templates issue#53
#97 fix: traverse all the child cmds + duplicates issue#95
#101 test for validator & add it to CI/CD issue#94 issue#92
#767 add cobra commands validator in Rhoas issue#777
#103 validate rules in loop issue#98 issue#93 issue#53
#105 refactor RuleConfig + overriding default values issue#110 issue#104 issue#133
#139 Regex validation in command name(UseMatches rule) issue#84
#142 Set up gh-pages and settings for docusaurus issue#140
#144 Config with array of commands during validation issue#86
#154 Pull pkg from starter to charmil core issue#149
#814 Update charmil & validatorOptions in rhoas Breaking changes in new release
#155 Charmil CLI for starter project issue#143
#159 feat: example validation issue#116
#160 chore: refactor docs & contributing.md issue#148 issue#126 issue#111 issue#54
#161 fix: skip validation for children issue#151
#170 feat: charmil init command issue#165 issue#164
#173 chore: remove starter from main Charmil Core
#182 feat: Punctuation rule in validator issue#168
#188 chore: refactor repo structure issue#180
#860 docs: remove full stops from flags issue#830
#193 fix: goreleaser build path Build issue
#195 chore: move factory to starter issue#162
#201 fix: update starter url and imports Charmil Init Command
#900 fix: locale key err in cluster_kubernetes issue#899
#202 feat: disable validation rule option issue#197
#203 feat: check for updates in starter issue#138
#207 feat: add command in charmil cli issue#166
#209 docs: update i18n docs issue#163
#219 chore: refactor core package issue#213 issue#183 issue#185
#223 feat: example builder utility issue#218


🔮 Future Goals

The Summer was productive for us, but there are some things we can do better. Mostly the future goals depends upon - charmil issues, on which we will be continuing working on after GSoC ends. Here are some of the issues to catch up.


🤝 Acknowledgment

A big thanks to my mentors Wojciech Trocki, Jack Delahunt, Dimitri Saridakis, JJ Kiely, Ramakrishna Pattnaik, Maksym Vavilov for being active and guiding us during the whole period.

Thank you for including me in the project’s development; it was a fantastic learning experience for me this summer.


🔄 Would like to sync?