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

Create Documentation on Unit Testing ZenML Steps #2219

Open
1 task
strickvl opened this issue Jan 3, 2024 · 17 comments
Open
1 task

Create Documentation on Unit Testing ZenML Steps #2219

strickvl opened this issue Jan 3, 2024 · 17 comments
Assignees
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers

Comments

@strickvl
Copy link
Contributor

strickvl commented Jan 3, 2024

Open Source Contributors Welcomed!

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

Contact Details [Optional]

[email protected]

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

  • A detailed documentation page or section dedicated to unit testing ZenML steps. The 'pipelining features' section would probably be the most logical location for this page to live.
  • Update the table of contents to include the new documentation page
  • Inclusion of examples and best practices, with FuzzyLabs' approach serving as a key reference.
  • The documentation should be accessible and understandable for users at different levels of expertise with testing.

Steps to Implement

  • Research and compile best practices for unit testing in the context of ZenML steps.
  • Review the FuzzyLabs' MindGPT project's approach to testing ZenML steps for insights and practical examples.
  • Write a comprehensive guide that includes step-by-step instructions, code examples, and explanations.
  • Ensure that the documentation covers various scenarios and common challenges in unit testing ZenML steps.
  • Review and edit the documentation for clarity, accuracy, and ease of understanding.
  • Publish the guide in an appropriate section of the ZenML documentation.

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

  • I agree to follow this project's Code of Conduct
@strickvl strickvl added documentation Improvements or additions to documentation good first issue Good for newcomers labels Jan 3, 2024
@nabin2004
Copy link

nabin2004 commented Jan 6, 2024

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
Copy link
Contributor Author

strickvl commented Jan 7, 2024

Yes would be happy to see your contribution for this!

@nabin2004
Copy link

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
Copy link
Contributor Author

strickvl commented Jan 8, 2024

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
Copy link

Thanks, I got it

@nabin2004
Copy link

@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
Copy link
Contributor Author

strickvl commented Jan 9, 2024

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
Copy link
Contributor

htahir1 commented Feb 13, 2024

@nabin2004 Did this work out? :-)

@nabin2004
Copy link

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
Copy link

Hey, is this still being worked upon ?

@htahir1
Copy link
Contributor

htahir1 commented Apr 22, 2024

@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
Copy link

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
Copy link
Contributor

htahir1 commented Apr 22, 2024

@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
Copy link
Contributor Author

Maybe #2255, @Aryan-Deshpande? Doesn't require any external infrastructure and gets you a bit into the orchestration code.

@Aryan-Deshpande
Copy link

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

@cmagapu
Copy link

cmagapu commented Sep 14, 2024

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

@strickvl
Copy link
Contributor Author

@cmagapu Yes sure! Let us know if you have any questions about either the topic, or how and where to insert this into our documentation folder hierarchy + table of contents etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

5 participants