IndianOpenSourceFoundation / dynamic-cli

A Modern, user-friendly command-line HTTP client for the API testing, and if you're stuck - Search and browse StackOverflow without leaving the CLI
https://pypi.org/project/dynamic-cli/
GNU General Public License v3.0
168 stars 120 forks source link

Add MakeFile to ease development process #162

Open PradyumnaKrishna opened 2 years ago

PradyumnaKrishna commented 2 years ago

๐Ÿš€ Feature

Create a MakeFile to simplify project setup and ease the development process. It requires #161 to complete, so pickup that or wait for it to complete before start working on this.

Resources

  1. https://makefiletutorial.com

Feel free to contact me for help.

shreelakshmijoshi commented 2 years ago

Hi @PradyumnaKrishna! Would you assign me this issue under GSSOC?

PradyumnaKrishna commented 2 years ago

Done @shreelakshmijoshi

dhruti29 commented 2 years ago

Hello, @PradyumnaKrishna I want work on this issue please assign me this issue under GSSOC...!!

GouravSardana commented 2 years ago

@dhruti29 , Please go ahead

shreelakshmijoshi commented 2 years ago

Hi @GouravSardana ! I want to understand a bit more about Make files. What exact dependencies/ file names should we include in the Make file to compile them? Also, in the make file resource provided, it is mentioned

Interpreted languages like Python, Ruby, and Javascript don't require an analogue to Makefiles.

And dynamic-cli has all Python files.

GouravSardana commented 2 years ago

@PradyumnaKrishna is leading the effort from this side. Can you please explain what we need from our side ?

shreelakshmijoshi commented 2 years ago

oh okay, I just wanted to know what exact files should I include in the Make file to compile them? Since, only C/C++, Java files need compiling and Python files don't need compiling is mentioned in https://makefiletutorial.com/

GouravSardana commented 2 years ago

I agree with the point which you mentioned but letโ€™s hear from @PradyumnaKrishna

PradyumnaKrishna commented 2 years ago

Makefile does lot more than just compiling, currently this repository has lot of commands that can be aggregated at one place.

Let me give you an example

all: setup lint test build

setup:
    @echo SETUP
    pip install -r requirements.txt

lint:
    @echo LINT
    # Linting it using linters like black, pylint etc

test:
    @echo TEST
    pytest

build:
    @echo BUILD
    ...

publish:
    @echo PUBLISH
    ...
...

These all tasks and other similar tasks will get collected to one place. Currently we have to follow up the procedure to setup the development environment. After implementing Makefile, environment setup and package build will get done in one go, just have to type make.

Note: #161 is work in progress which add poetry as dependency manager, the procedure to setup the development environment requires some changes after that.

shreelakshmijoshi commented 2 years ago

@PradyumnaKrishna, you're right.

harshsingh32 commented 1 year ago

I would like to work on this issue, please assign this issue to me under GSSoC'23.