zenml-io / zenml

ZenML 🙏: The bridge between ML and Ops. https://zenml.io.
https://zenml.io
Apache License 2.0
3.93k stars 429 forks source link

Create Documentation on Unit Testing ZenML Steps #2219

Open strickvl opened 8 months ago

strickvl commented 8 months ago

Open Source Contributors Welcomed!

Please comment below if you would like to work on this issue!

Contact Details [Optional]

support@zenml.io

What happened?

Currently, there is no dedicated documentation on how to perform unit tests on ZenML steps. This is a crucial aspect of developing reliable and maintainable data pipelines. Providing clear guidelines and examples can significantly help users in implementing effective testing practices.

Task Description

Develop a comprehensive documentation page or guide on how to perform unit tests on ZenML steps. The documentation should include tips, best practices, and examples. The test steps directory of FuzzyLabs' MindGPT project can be used as a reference model to showcase practical implementations of unit tests in ZenML.

Expected Outcome

Steps to Implement

Additional Context

This documentation will be a valuable resource for ZenML users, helping to ensure the quality and reliability of their data pipelines. It will also foster best practices in testing within the ZenML community.

Code of Conduct

nabin2004 commented 8 months ago

Hi @strickvl, I have some knowledge of unit testing and I'm confident I can write comprehensive and accessible documentation for users of all levels. I've already taken a look at the task description and the FuzzyLabs' MindGPT project, and I'm excited to start contributing. Can you assign this issue to me?

PS: I agree to follow project's code of conduct :)

strickvl commented 8 months ago

Yes would be happy to see your contribution for this!

nabin2004 commented 8 months ago

Hi @strickvl, I'm seeking some clarification on testing ZenML steps . I'm wondering if testing ZenML steps referring to write unit testing for this documentation's codes; https://docs.zenml.io/v/0.10.0/developer-guide/steps-and-pipelines or it is referring to some other topic. Could you please shed some light on this for me?

strickvl commented 8 months ago

It's for users of ZenML. So if you're a user of ZenML (with your own pipelines and steps etc), then you might want to have some tests for your code as is common in Software Development. So this documentation is for a user of ZenML who has some steps and pipelines... it should guide them in some best practices for testing zenml steps / pipelines. (And the fuzzylabs example is just one example of how you might approach this).

Hope that helps!

nabin2004 commented 8 months ago

Thanks, I got it

nabin2004 commented 8 months ago

@strickvl, I've written unit testing documentation and would appreciate your review of my progress so far. I'd like your suggestions on what I should add or remove to make it effective link to unit testing doc.

Additionally, I've attached a picture of the updated table of content in toc.md. Could you please advise if it's appropriate to include the unit testing documentation there, or if I should create a separate section? 2024-01-09_16-30

strickvl commented 8 months ago

Hi,

That's a nice start! On the TOC location, I think to have it live in the best practices subfolder somewhere (https://docs.zenml.io/user-guide/advanced-guide/best-practices) would be best.

Otherwise I think maybe it might be time to open up a PR to get some more feedback and so I can tag one or two others from the team to take a look. But I really like how you structured it so far.

Maybe you could also somewhere link to or mention the FuzzyLabs repo somewhere as it was also a nice inspiration for us as well and it would be good to acknowledge them in the docs somewhere for this. (It's also a nice example for users to take a look at).

But in general, let's open a PR against the develop branch and I'll give you some more feedback there along with another colleague.

Thanks!

htahir1 commented 7 months ago

@nabin2004 Did this work out? :-)

nabin2004 commented 7 months ago

Hi @htahir1,

I've made some changes to toc.md, best practices, and unit testing, including attempts to mock out ZenML-specific code within steps like client calls and log_artifact_metadata functions. I've written some mock code, but I'm unsure if it's the best approach or aligns with best practices.

Aryan-Deshpande commented 4 months ago

Hey, is this still being worked upon ?

htahir1 commented 4 months ago

@Aryan-Deshpande @nabin2004 will confirm, but i am unsure. I think If you have capacity it might make sense to work on some other tasks.. What sort of things are you looking to contribute? :-)

Aryan-Deshpande commented 4 months ago

I was looking forward to contributing to some basic issues, before moving on to some harder ones. I want to get familiar with the repository first so yeah.

htahir1 commented 4 months ago

@strickvl Any new things that we can give to Aryan as a good starter point? I feel like this ticket might not be best suited

strickvl commented 4 months ago

Maybe https://github.com/zenml-io/zenml/issues/2255, @Aryan-Deshpande? Doesn't require any external infrastructure and gets you a bit into the orchestration code.

Aryan-Deshpande commented 4 months ago

That's sounds good!. I can get started with that

cmagapu commented 1 day ago

@strickvl Hi! Can I take this up? I'm new to open source, and would like to contribute.