fix: #8461fix: #8473
For now, for those inactive but uncompleted tasks, they still shown as
Running in `exp show` and `task queue`, we cannot remove them because
they are regarded as running, we cann't kill them because their are no
real process behind them.
1. Now we can examine these false running tasks and mark them as failure
in `queue kill` command. #8461
2. Better msg handle for initliaizing tasks in `queue kill`#8473
3. Add new unit tests for both cases.
4. bump into new dvc-task 0.1.6
* hydra: Use `OmegaConf.to_yaml` for dumping `.yaml` output.
Combining `OmegaConf.to_object` with our yaml DUMPER (ruaml.yaml) was not correctly handling strings like 'no'.
`OmegaConf.to_yaml` uses a custom string representer that correctly handles those cases.
Fixes#8583
* Update dvc/utils/hydra.py
Co-authored-by: Dave Berenbaum <[email protected]>
Co-authored-by: Dave Berenbaum <[email protected]>
* plots: vega: converter: support multi series data split and props inference
Fixes: #7754, #8399
Related: iterative/studio#4369
* plots: converter: make converter infer x and y labels if not provided
* plots: vega: converter: roll back to datapoints format
* plots: vega: converter: refactor
* plots: infer labels on
* plots: get_plot_id: fix naming
* plots: vega: converter: notes regarding converting
There seems to be a regression in Python 3.11, where the sqlite
connections are not deallocated, due to some internal changes in
Python 3.11, where they are now using LRU cache. They are not deallocated
until `gc.collect()` is not called.
See https://github.com/python/cpython/issues/97641.
This affects only Windows, because when we try to remove the tempdir for
the exp run, the sqlite connection is open which prevents us from
deleting that folder.
Although this may happen in real scenario in `exp run`, I am only fixing
the tests by mocking `dvc.close()` and extending it by calling
`gc.collect()` after it. We could also mock `State.close()` but didnot
want to mock something that is not in dvc itself.
The `diskcache` uses threadlocal for connections, so they are expected
to be garbage collected, and therefore does not provide a good way to
close the connections. The only API it offers is `self.close()` and that
only closes main thread's connection. If we had access to connection,
an easier way would have been to explicitly call `conn.close()`.
But we don''t have such option at the moment.
Related: https://github.com/iterative/dvc/pull/8404#issuecomment-1310024661
GHA Failure: https://github.com/iterative/dvc/actions/runs/3437324559/jobs/5731929385#step:5:57
fix: #8526
1. The current `get_names` will crash if an experiment branch had
already been given a new branch name to it.
1. Solve the crash when we getting the name of a newly fixed experiment
branch.
2. Add a new unit test to it.
fix: #8350
We shouldn't add locks to exp show to prevent race conditions
as this command is calling continuously by the extension.
So we make a better way to handle all kinds of reference failures.
1. Drop all based experiments if got a SCMError in baseline.
2. Drop all checkpoint experiments if any commit got a SCMError in
one of checkpoint commit.
3. Drop the entire experiments if got a SCMError.
4. Add tests for each of the conditions above.
fix: #8349
`tasks status turned to queued for 1 second before turned into success.`
is because in previous the status is using the output of
`get_running_exps` in `repo.expereiments` and when entering the
collect result progress, the `get_running_exps` will mark the tasks to
be not running because the `info.result` is not None. Here we use the
output of the celery queue as the universal standard for the tasks
status.
1. Use celery status as the exp show status
fix: #8451
1. Change the call of scm.describe from individual revision to a
collection of them. Accelerate the run speed of `exp show`
2. Bump scmrepo to 0.1.2