kedro-org / kedro-viz

Visualise your Kedro data and machine-learning pipelines and track your experiments.
https://demo.kedro.org
Apache License 2.0
662 stars 110 forks source link

Implementation of Directory Selection for Server Startup #1741

Closed santana98 closed 5 months ago

santana98 commented 6 months ago

Description

Hello! This pull request aims to introduce a feature that allows users to select the directory from which the server will launch. With this enhancement, users will be able to switch between projects more seamlessly.

Development notes

The addition of the "project_path" argument now enables users to specify the path of the Kedro project.

QA notes

The concept behind this implementation is to keep it simple, providing users with the option to choose whether or not to specify a directory. If no value is provided, the current behavior will be preserved.

I'm seeking assistance from the community to improve test coverage. :pray:

Checklist

rashidakanchwala commented 6 months ago

Thank you for your contribution. We apologise for the delay in responding; we're currently in a release sprint preparing to launch significant features. Once the release is complete, we'll review your submission and provide support with tests.

astrojuanlu commented 6 months ago

With this enhancement, users will be able to switch between projects more seamlessly.

@santana98 Could you detail a bit more what workflow do you have in mind? I suppose you have a "global" or "unique" Kedro-Viz installation and then you'd like to use that installation for different Kedro projects?

santana98 commented 6 months ago

With this enhancement, users will be able to switch between projects more seamlessly.

@santana98 Could you detail a bit more what workflow do you have in mind? I suppose you have a "global" or "unique" Kedro-Viz installation and then you'd like to use that installation for different Kedro projects?

@astrojuanlu The idea arose from the following scenario.

A platform based on JupyterHub that provides users with a JupyterLab, like Kedro-Viz requires a port to start the server, this responsibility would be abstracted from the end-user, with the lab itself managing it, ensuring the correct proxy with the Hub and other dependencies.

In this scenario, it's beneficial to enable users to specify the location of the Kedro project they wish to interact with in Kedro-Viz. This is because the application starts internally from the Lab, which operates from a completely different path than the Kedro project.

astrojuanlu commented 6 months ago

@santana98 thanks for the context.

If I understand correctly, Kedro Viz and the target Kedro project would still live in the same Python environment and therefore share the same dependencies, correct?

santana98 commented 6 months ago

@astrojuanlu Exactly, they would have the same workspace. However, the end-user has some access limitations, port management being an example of this. To enable Kedro-Viz for our users, the Kedro-Viz server will be initiated by a button that the user simply clicks. All logic for port allocation and directing the Kedro project will be handled in the backend, and then a route to access the Kedro-Viz server will be generated.

rashidakanchwala commented 6 months ago

@santana98 - i wasn't able to work off this PR to fix the lint and tests so I created a new PR based on your work. Can you have a look at it, and let me know if it's ok? #1792

rashidakanchwala commented 5 months ago

@santana98 -Thank you for your ticket submission. After delving into the matter more thoroughly, we've encountered an issue with merging it presently. The core of the problem lies in the fact that kedro-viz is a kedro-plugin, and the kedro-viz CLI calls upon kedro CLI. This realisation surfaced during our deeper investigation of your ticket. Currently, we're in the process of addressing these CLI-related challenges through a refactor ticket #1796 . Once resolved, this refactor will rectify the issues we've encountered. Nonetheless, we like your idea for incorporating the--project-path functionality into kedro. We would like you to raise an issue on kedro framework repo. Once the kedro team implements the --project-path feature, extending the same functionality to kedro-viz should become feasible.

astrojuanlu commented 5 months ago

@rashidakanchwala did we open a follow-up issue to take this use case into account?

rashidakanchwala commented 5 months ago

nope I have asked Santana but he hasn't yet since it's a Kedro Framework thing, would you like to raise this on Kedro Framework if you think it makes sense.

santana98 commented 5 months ago

Hello, everyone!

I apologize for the delay in responding. I've been working on other topics in the past few weeks.

@rashidakanchwala, I've tested it here, and PR #1792 worked as expected!! Thank you for your support.

nope I have asked Santana but he hasn't yet since it's a Kedro Framework thing, would you like to raise this on Kedro Framework if you think it makes sense.

The next suggested step would be to propose the option to select the "project-path" within the Kedro project itself, correct? This way, they can enable this option within the framework, and then we can simply pass the parameter through the kedro-viz call.

astrojuanlu commented 3 months ago

The next suggested step would be to propose the option to select the "project-path" within the Kedro project itself, correct? This way, they can enable this option within the framework, and then we can simply pass the parameter through the kedro-viz call.

@santana98 Yes! Please open a new discussion https://github.com/kedro-org/kedro/discussions/