Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LFX-23-Term-3]: Improve litmusctl UX and codebase and add new functionalities to litmusctl #4101

Closed
imrajdas opened this issue Jul 24, 2023 · 11 comments
Labels
LFX-MENTORSHIP Linux Foundation Mentor ship Issue

Comments

@imrajdas
Copy link
Member

imrajdas commented Jul 24, 2023

Tasks:

  1. Change the litmusctl interactive mode to a new UX using github.com/manifoldco/promptui
  2. Move all the functions to go interface so that writing unit test cases will be easier and improve the code quality
  3. Add unit test cases
  4. Currently, litmusctl depends on kubectl, so we can move to client-go for k8s operations.

Not Mandatory:

  1. Add litmusctl binary to brew (macOS) and chocolatey (windows)
  2. Write local development setup doc for litmusctl
    --x--
@imrajdas imrajdas added the LFX-MENTORSHIP Linux Foundation Mentor ship Issue label Jul 24, 2023
@omsurase
Copy link

omsurase commented Jul 26, 2023

Hey @imrajdas,
I went through the k8 operations defined at https://github.com/litmuschaos/litmusctl/blob/master/pkg/k8s/operations.go , and they are already using client go to perform K8 operations. am I missing something?
I might be wrong, so please correct me.

@imrajdas
Copy link
Member Author

Hey @imrajdas, I went through the k8 operations defined at https://github.com/litmuschaos/litmusctl/blob/master/pkg/k8s/operations.go , and they are already using client go to perform K8 operations. am I missing something? I might be wrong, so please correct me.

Yes, we already have it for some operations. But some operations like applying manifest is not using client-go

@punithnayak
Copy link
Contributor

Hey, @imrajdas can I create child issues and start working on it?

@AdiAkhileshSingh15
Copy link

Hey,
I'm really interested in this project and I plan to apply as a Mentee once LFX Fall applications are open, as the required skills for this project quite match with my skill set.
Also, I'm curious to know if there are any beginner-friendly issues available for me to start contributing and get to know more about litmus.

Any help would be highly appreciated.
Thanks!

@anj20
Copy link

anj20 commented Jul 31, 2023

Hey @imrajdas
Is this issue open ?
I want to work on this issue

@sambhavgupta0705
Copy link

Hi ,
I would like to participate with this issue under LFX mentorship fall term 2023. Currently I am learning about chaos engineering and trying to solve some good first issue

@vishalrajofficial
Copy link

I am Vishal Raj, a final year CSE student. The tasks for the LitmusChaos project are exciting. I'm eager to enhance the litmusctl UX using github.com/manifoldco/promptui and improve code quality by moving functions to Go interfaces for better unit testability. Additionally, adding unit test cases will make the codebase more robust. Exploring the possibility of migrating from kubectl to client-go for Kubernetes operations sounds like an interesting challenge. Let's work together to bring new functionalities and improvements to litmusctl!

@prajak002
Copy link

hey @imrajdas i have already tried to contribute in my last session. but somehow i couldnt manage 03ba5db here its my comment , i saw the whole codebase and i am ager to be part with your community i wanna make 4 sections for this challange.
promptui: This library can be used to create interactive prompts and menus. It is a good choice for creating a new UX for the litmusctl interactive mode.
Go interfaces: Go interfaces are a powerful way to abstract away implementation details. They can be used to improve the code quality and make it easier to write unit tests.
Unit testing: Unit testing is essential for ensuring the quality of the code. There are many unit testing frameworks available for Go, such as Ginkgo and GoConvey.
client-go: client-go is a more modern and feature-rich library for interacting with Kubernetes. It can be used to replace kubectl in the litmusctl codebase.

@imrajdas
Copy link
Member Author

imrajdas commented Aug 9, 2023

Hi All, Please apply here at- https://mentorship.lfx.linuxfoundation.org/project/fde90e7f-0410-4b84-ad9c-99f7139267ed before the deadline.

We will review all of your applications.

@YashPimple
Copy link

Hello @imrajdas @Saranya-jena I noticed the issue via the LFX portal and I'd like to contribute towards fixing it. I have experience working with Cobra and client-go, so it perfectly aligns with my area of interest. This is what I have in mind enhance the litmusctl tool’s usability by integrating promptui for that I decided to give promptui a try and was able to build a demo Litmusctl cli tool by modifying the config prompt.

I understand that it'll be assigned to a selected mentee, so I'd like to contribute to the projects via other issues as well. Please let me know if there are any other priority issues that I can take a look at

@imrajdas
Copy link
Member Author

Hi All, We have selected the candidate for this issue. Please visit the LFX mentorship website to learn about the mentee's details.

We regularly participate in LFX mentorship every quarter. Please feel free to apply next quarter.

Meanwhile, you can join our Litmus Community or Contributors calls to learn about projects for contributions.

Again, Thank you, everyone, for applying to this project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
LFX-MENTORSHIP Linux Foundation Mentor ship Issue
Projects
None yet
Development

No branches or pull requests

10 participants