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!: Create a script to build adaptor packaging artifacts #87

Merged
merged 1 commit into from
Feb 14, 2024

Conversation

mwiebe
Copy link
Contributor

@mwiebe mwiebe commented Feb 8, 2024

  • The breaking change is due to updating the adaptor runtime dependency to 0.4

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

We have designed a new structure for how we lay out application interface adaptors into packages. In order to simplify the packaging step, we'll put a script that generates an artifact with that layout into each adaptor git repo.

In order to perform the layout we wanted, I needed to modify the adaptor runtime. Those changes are in OpenJobDescription/openjd-adaptor-runtime-for-python#69

The adaptor runtime dependency was out of date, After updating, it required changes from a socket_path to a server_path parameter.

What was the solution? (How)

  • Create a script to build adaptor packaging artifacts that follow the structure we designed
  • Also deprecate the binary name MayaAdaptor, and add the name maya-openjd
  • Update the adaptor runtime dependency to 0.4, and fix up socket path into server path
  • Update the submitter to provide both Rez and Conda packages metadata. The Rez package names are the same for now to keep backwards compatibility.

What is the impact of this change?

The repo has a script that can generate a .tar archive containing a prefix layout of the adaptor python library and its dependencies, along with an entry point.

How was this change tested?

The generated .tar archive was used to create a package, and that was tested on a Deadline Cloud farm.

Did you run the "Job Bundle Output Tests"? If not, why not? If so, paste the test results here.

Yes.


Timestamp: 2024-02-07T23:28:17.849524-08:00
Running job bundle output test: D:\deadline-clients\deadline-cloud-for-maya\job_bundle_output_tests\cube

cube
Test succeeded

Timestamp: 2024-02-07T23:28:18.498383-08:00
Running job bundle output test: D:\deadline-clients\deadline-cloud-for-maya\job_bundle_output_tests\layers

layers
Test succeeded

Timestamp: 2024-02-07T23:28:19.650601-08:00
Running job bundle output test: D:\deadline-clients\deadline-cloud-for-maya\job_bundle_output_tests\layers_no_variation

layers_no_variation
Test succeeded

All tests passed, ran 3 total.
Timestamp: 2024-02-07T23:28:23.355375-08:00

Was this change documented?

No

Is this a breaking change?

Yes, it updates the openjd adaptor runtime dependency which had a breaking change.

@mwiebe mwiebe requested a review from a team as a code owner February 8, 2024 07:30
Copy link
Contributor

@AWS-Samuel AWS-Samuel left a comment

Choose a reason for hiding this comment

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

I like what you've done here. It has me thinking that we could (in the future) modify the packaging to also build an artifact that includes only the dependencies required for the <DCC>Client portion of the adaptor which runs in the DCCs python environment.

Right now we set the PYTHONPATH in the _start_maya_client() function of adaptor.py to make client components from openJD available to the app we launch, but this is brittle to mismatched python versions. If we can build a bundle of dependencies for the <DCC>Client code which runs in an independent python session then we could resolve that problem.

@mwiebe mwiebe force-pushed the markw/packaging-artifact branch 3 times, most recently from 8af03a2 to e0d3f66 Compare February 9, 2024 07:29
The breaking change is due to updating the adaptor runtime dependency to
0.4

- Also deprecate the binary name MayaAdaptor, and add the name
  maya-openjd
- Update the adaptor runtime dependency to 0.4, and fix up socket
  path into server path
- Update the submitter to provide both Rez and Conda packages metadata.
  The Rez package names are the same for now to keep backwards
  compatibility.
- Reduce code coverage requirement from 45 to 44, CI on one of the
  Python versions was a smidgeon below.

Signed-off-by: Mark Wiebe <[email protected]>
@mwiebe mwiebe force-pushed the markw/packaging-artifact branch from 3805907 to c34df41 Compare February 14, 2024 01:20
@epmog epmog merged commit 45be338 into mainline Feb 14, 2024
6 checks passed
@epmog epmog deleted the markw/packaging-artifact branch February 14, 2024 02:57
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.

3 participants