Giter Site home page Giter Site logo

Comments (4)

VickyTwig avatar VickyTwig commented on June 21, 2024 1

We've renamed the file each time we upload it and this seems to have solved the issue. Will close. Thanks for your detailed suggestions!

from opentrons.

SyntaxColoring avatar SyntaxColoring commented on June 21, 2024 1

We're tracking this as #14598, moving forward.

from opentrons.

SyntaxColoring avatar SyntaxColoring commented on June 21, 2024

👋 Hey, thanks for the detailed report.

The run steps, labware visualisation and position check refer to an old version of the protocol.

Does it seem like it could be referring to the latest .py file, but an old config file?

We have a couple things that might be interacting here in a confusing way.

First: The robot analyzes a protocol only when you first upload it via POST /protocols. If, after that, you scp over some stuff that affects the protocol's behavior, those changes in behavior won't be reflected in the protocol's analysis. The analysis will be stale.

Second: When you upload a protocol via POST /protocols, the robot no-ops if it's a protocol it's already storing, as an optimization. The comparison is made by comparing the files in the POST requests. This means if you repeatedly upload the exact same Python file, the robot will only analyze it the first time. It mistakenly skips re-analysis because it doesn't know about any externally-scp'd files that have changed its behavior since it was first uploaded.

So my theory at the moment is that you're running into some combination of those.

You want to guarantee that you're looking at a fresh analysis, representing, as closely as possible, what a new run would actually do. I think these are your options today:

  • The easiest is probably to make the file different every time you upload it, so it always looks like a new protocol that needs to be analyzed. Appending a timestamp to the filename should be sufficient for this, like my_protocol_1698624000.py.
  • Alternatively, you could fully delete and recreate the protocol every time you upload it. Delete the protocol with an HTTP DELETE /protocols/{id}. You may need to also delete the runs that were created from that protocol, with HTTP DELETE /runs/{id}.

Also, if your protocol has dependencies that it's expecting to be externally scp'd, make sure you scp them before doing POST /protocols. Otherwise, the protocol analysis will start without waiting for those dependencies to be present on the system.

Let me know if that helps!

from opentrons.

VickyTwig avatar VickyTwig commented on June 21, 2024

from opentrons.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.