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

feat(workflow): Added new development workflow for the submitter #32

Merged
merged 1 commit into from
Nov 29, 2023

Conversation

evanspearman-a
Copy link
Contributor

What was the problem/requirement? (What/Why)

The development workflow for the submitter installs the plugin differently than the submitter installer and also modifies the installation of Houdini itself.

What was the solution? (How)

Added a script and instructions for installing the plugin using Houdini packages. The package points to the cloned source code and your local hatch environment for dependencies, meaning you can edit in place.

What is the impact of this change?

The development workflow now more closely mirrors a production installation, does not modify the Houdini installation itself, and is still editable in place.

How was this change tested?

Ran through the workflow on my laptop

Was this change documented?

Yes

Is this a breaking change?

No

@evanspearman-a evanspearman-a requested a review from a team as a code owner November 2, 2023 19:49
DEVELOPMENT.md Outdated
3. Create a Houdini package using the provided script, specifying the full houdini version:

```sh
python scripts/install_dev_submitter.py --houdini-version X.Y.Z
Copy link
Contributor

@epmog epmog Nov 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this works for all platforms, why not replace the hatch run install command or add that functionality? wouldn't even need to do hatch env create then.

Copy link
Contributor Author

@evanspearman-a evanspearman-a Nov 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this would be ideal. While I wrote this with support for all platforms in mind, I haven't tested it on other platforms since I don't have access to a Mac yet though.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done (but only tested on Windows)

from typing import Optional


VERSION_REGEX = re.compile(r"^([0-9]+)\.([0-9]+)\.([0-9]+)")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we don't need the last number right? Everything here just uses the major minor

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup. Originally I was going to run hotl from this script to mirror what the existing shell script does, but I decided not to since it's not really necessary, and an in-place workflow is better for development. I can change this to make the patch component optional.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

DEVELOPMENT.md Outdated
5. Run `.\bin\hython -m pip install -e C:\Users\<username>\deadline-clients\deadline-cloud-for-houdini` to install the Houdini submitter in edit mode.
6. Run Houdini. Go to File > Import > Houdini Digital Asset Select the `src\deadline\houdini_submitter\otls\deadline_cloud.hda` directory. Press "Install and Create", which should create a "deadline_cloud1" node in the output context.
7. To edit the deadline_cloud hda, go to Assets > Asset Manager. Under Operator Type Libraries > Current HIP File, you will find "Driver/deadline_cloud". Right click, select Type Properties. From the Parameter tab you can modify the parameter interface, as you hit Apply you will see that the "DialogScript" file in the hda source files has been updated.
> Note: This workflow assumes you are using the same version of Python as the version of Houdini you are developing for uses.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this the case? The python script just copies files over. It shouldn't care about the python version Houdini uses?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh, you're using the hatch env for the deps? We can just install the deps like the installer and the hatch run install command to prevent this requirements.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems reasonable. Personally I use pyenv which makes it pretty easy to have multiple python versions on a system, but I think the other advantage to what you're suggesting is that the environment won't include all the stuff in requirements-test.txt, which will get it even close to a production install.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@epmog
Copy link
Contributor

epmog commented Nov 2, 2023

I'd recommend taking a look at the existing hatch run install command and what it does for the developer. Removes some of the manual steps this requires.

@evanspearman-a evanspearman-a force-pushed the evans-dev-workflow branch 2 times, most recently from 212344c to 4ac7acd Compare November 7, 2023 16:43
@epmog epmog requested a review from AWS-Samuel November 23, 2023 17:14
@evanspearman-a evanspearman-a merged commit 495503d into mainline Nov 29, 2023
8 checks passed
@epmog epmog deleted the evans-dev-workflow branch November 29, 2023 23:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants