Are you sure? Feature Enhancement.
Tags: programming, python, opensource, machinelearning
Published: 2023-11-19 18:42:08

For this first part of release I decided to work on with [DagsHub github](https://github.com/DagsHub/client) in accordance to [DagsHub](https://dagshub.com/)
> A platform where machine learning and data science teams can build, manage, and collaborate on their projects.

The reason why I choose this was I was truly decided to get my hands on anything that has machine learning and anything that includes working on datas. 
The reason why I wanted to include this for this release 0.3 was because it was by sheer luck and a little bit of preserverance finding the issue that I was able to figure this out.
## The Issue
[Data Engine: Allow downloading all binary fields when qr.get_blob_fields is called with no args](https://github.com/DagsHub/client/issues/366)

When I referenced this in [It was not "Good First Issue"](https://dev.to/rabroldan/it-was-not-good-first-issue-3bj9) I was not exagerating when I said it was not easy. This time let me break it down why that is. Aside from installing and re-installing over and over again and looking over thousands of files that has already a thousand commit was very daunting. The request was somewhat vague but understandable enough.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kscpruxb2sljoxb6qen0.png)

The way we were trained and thought these past few semester made me ready for this kind of task. where 1 liner was the way to go ever since I started my first semester, not much detail. it was similiar to "*Create a function which does this*" and that was pretty much it. 

To ensure I got the right Idea I had to verify the functionality of the code. Luckily they were very responsive that I was able to determine that what needed was basically keeping the same functionality of the code but also being able to download the files without specyfying any arguments.

For me to be able to find the correct code to work on this was the path.
> dagshub/data_engine/model/query_result.py

That is llike 3 folders to navigate just to get to the module. on top of that terms like **self.datasource.fields, MetadataFieldType , and get_blob_field()**  where if you breakdown states that "In a  binary large objects of data I need to get  its class module datasource and its fields". I know that sounded daunting to me as well. Which in turn was the case that I needed to do.

In order to achieve this and finish the task I had to 
```Import from dagshub.data_engine.dtypes import MetadataFieldType```

Remember this was my first ever contribution on github for opensource what a way to start.

After commiting the changes I was then asked to format using python Black which was a godsend when it was time to work on it since I was somewhat familliar with it the lab I had to work with python Black was something. After which [Added an enhancement - issue 366](https://github.com/DagsHub/client/pull/371) was finally merged. 

Let's do a quick run down shall we.
* Open source Project
* Over 100 branches
* Over 1000 Commits
* Large Scale Project
* Terminology I am unfamilliar
* First ever Github Contribution to Open Source

That was truly a very interesting issue to work on luckily I was able to submit a PR and was able to merge it successfully. I learned a lot from this project and truly spent quite a good amount of time working on it luckily I didnt have much to do those days where I was able to spend time working on it for the entire day or two. This is truly something an experience I will never forget.