Hi all!

Has anyone implemented the latest ARTIQ 8 Beta build and figured out how to use the devarg_overrides properly? It seems this is meant to interface with the new Waveform applet, but we aren't sure how to declare and set the arguments in our experiment files. There isn't documentation yet for how to use them and the argparse error doesn't return a traceback.

For now, we have a hotfix that manually adds the override 'core:analyze_at_run_end=False' to every experiment inside of artiq/dashboard/experiments.py.

Thanks in advance!

    jfniedermeyer For now, we have a hotfix that manually adds the override 'core:analyze_at_run_end=False' to every experiment inside of artiq/dashboard/experiments.py.

    What happens otherwise?

    It is supposed to do nothing and behave as before when the devargs_override string is empty, so this sounds like a bug (though I cannot reproduce it).

      Hey!

      Have you tried deleting the dashboard state file? Might help us narrow down the issue.

      Simon

        sb10q What happens otherwise?

        If I don't manually set an override string in experiments.py, I get the following traceback when trying to open an experiment from the explorer:

        Traceback (most recent call last):
        File "C:\Users\rabi\Anaconda3\envs\artiq_beta\Lib\site-packages\artiq\dashboard\explorer.py", line 288, in expname_action
        action("repo:" + expname)
        File "C:\Users\rabi\Anaconda3\envs\artiq_beta\Lib\site-packages\artiq\dashboard\experiments.py", line 722, in open_experiment
        dock = _ExperimentDock(self, expurl)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\rabi\Anaconda3\envs\artiq_beta\Lib\site-packages\artiq\dashboard\experiments.py", line 324, in __init__
        devarg_override.setCurrentText(options["devarg_override"])
        ~~~~~~~^^^^^^^^^^^^^^^^^^^KeyError: 'devarg_override'

        NOTE: line numbers are off 1 line due me having the hotfix in the code, but commented out.

        If I manually set the string to something empty, either '' or None, there's an argparse error, that I think now actually comes from not having a colon to partition the string in line 44 of artiq/tools.py. That's the one that didn't appear to have a traceback.

        If I take out the hotfix, which is just putting options["devarg_override"] = "core:analyze_at_run_end=False" into the init of _ExperimentDock, experiments that I have already opened with the fix in place will build fine and run. Ones that have not been opened with the hotfix applied will not build and give the same error/traceback above.

        > srenblad Have you tried deleting the dashboard state file? Might help us narrow down the issue.

        Good suggestion. If this is done, then yes, things will build and run properly without changing anything in experiments.py. So, the problem seems to be if you upgrade without resetting your dashboard_db. That's mildly inconvenient because applet calls have to be redone in the dashboard, but manageable for now, especially since it's in beta.

        Yeah that just looks like dashboard state file incompatibility. Close the dashboard, delete the state file, and open the dashboard again.
        Note that this only happens if you had run an earlier version of ARTIQ-8 beta, this problem should not be present when moving from ARTIQ-7 to current ARTIQ-8.