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(nodes): versioning #4449

Merged
merged 5 commits into from
Sep 4, 2023
Merged

feat(nodes): versioning #4449

merged 5 commits into from
Sep 4, 2023

Conversation

psychedelicious
Copy link
Collaborator

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update
  • Community Node Submission

Have you discussed this change with the InvokeAI team?

  • Yes
  • No, because:

Have you updated all relevant documentation?

  • Yes
  • No

Description

This PR is based on #4423 and should not be merged until it is merged.

feat(nodes): add version to node schemas

The @invocation decorator is extended with an optional version arg. On execution of the decorator, the version string is parsed using the semver package (this was an indirect dependency and has been added to pyproject.toml).

All built-in nodes are set with version="1.0.0".

The version is added to the OpenAPI Schema for consumption by the client.

feat(ui): handle node versions

  • Node versions are now added to node templates
  • Node data (including in workflows) include the version of the node
  • On loading a workflow, we check to see if the node and template versions match exactly. If not, a warning is logged to console.
  • The node info icon (top-right corner of node, which you may click to open the notes editor) now shows the version and mentions any issues.
  • Some workflow validation logic has been shifted around and is now executed in a redux listener.

Related Tickets & Documents

QA Instructions, Screenshots, Recordings

Loading old workflows should prompt a warning, and the node status icon should indicate some action is needed.

[optional] Are there any post deployment tasks we need to perform?

I've updated the default workflows:

  • Bump workflow versions from 1.0 to 1.0.1
  • Add versions for all nodes in the workflows
  • Test workflows

Default Workflows.zip

I'm not sure where these are being stored right now @Millu

The `@invocation` decorator is extended with an optional `version` arg. On execution of the decorator, the version string is parsed using the `semver` package (this was an indirect dependency and has been added to `pyproject.toml`).

All built-in nodes are set with `version="1.0.0"`.

The version is added to the OpenAPI Schema for consumption by the client.
- Node versions are now added to node templates
- Node data (including in workflows) include the version of the node
- On loading a workflow, we check to see if the node and template versions match exactly. If not, a warning is logged to console.
- The node info icon (top-right corner of node, which you may click to open the notes editor) now shows the version and mentions any issues.
- Some workflow validation logic has been shifted around and is now executed in a redux listener.
@blessedcoolant blessedcoolant merged commit 78cc5a7 into main Sep 4, 2023
@blessedcoolant blessedcoolant deleted the feat/nodes/versioning branch September 4, 2023 21:53
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.

feat(nodes): Node Versioning
2 participants