Skip to content

Fixing test failures with recent annex #6550

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

Merged
merged 3 commits into from
Apr 3, 2022

Conversation

bpoldrack
Copy link
Member

@bpoldrack bpoldrack commented Mar 15, 2022

As of annex 10.20220127 we observed several failures on macOS, which at this point is the only build with that recent an git-annex.
These failures boil down to two issues:

  • One issue became apparent (actually older), where the reporting of annex commands with respect to paths that are
    unknown to git or not existent at all happens in different ways. This depends on annex' internal git calls (git itself appears to be inconsistent WRT this message) as well as on the value of 'annex.skipunknown' the default of which changed in said version. This results in both styles of reporting being used and as long as we rely on parsing that output, we need to account for both.
    Moreover, annex commands don't always exit non-zero when that happens, which is why we need to check stderr output when the command doesn't fail, too. At least for git-annex-find but probably more commands the zero exit is fixed but unreleased in annex (10.20220222-30-gce91f1013, Feb 28, 2022 - "fix annex.skipunknown false error propagation").
    None of that actually depends on annex' version exactly. It's mostly just that the zero-exit bug in combination with the switch of default made those issues surface.

  • The other issue seems to be an annex bug: https://git-annex.branchable.com/bugs/Change_to_annex.largefiles_leaves_repo_modified/
    This patch simply skips the respective part of the test for this situation conditioned on the annex version.

Closes #6492
Closes #6570
Closes #6571

Please, review especially this change, @datalad/developers :

This will change behavior of some datalad commands. The change partially
only applies to annex version >= 10.20220322 and annex.skipunknown=false
(default since 10.20220127).

Assume following setup:

.
├── bar -> foo
├── bla
├── foo
│ └── f -> ../.git/annex/objects/ ...
└── untracked

Then, previously we had (all zero-exit):

$ datalad status --annex availability notexistent foo/f
1 annex'd file (0.0 B/0.0 B present/total size)
nothing to save, working tree clean
$ datalad status --annex availability bar/f foo/f
1 annex'd file (0.0 B/0.0 B present/total size)
nothing to save, working tree clean
$ datalad drop notexistent
$ datalad drop bar/f
$ datalad diff -f HEAD~2 --annex availability bar/f notexistent foo/f
    added: foo/f (file)

Now, with non-zero exit:

$ datalad status --annex availability notexistent foo/f
status(error): notexistent [File unknown to git]
1 annex'd file (0.0 B/0.0 B present/total size)
$ datalad status --annex availability bar/f foo/f
status(error): bar/f [File unknown to git]
1 annex'd file (0.0 B/0.0 B present/total size)
status(error): bar/f [File unknown to git]
$ datalad drop notexistent
drop(error): notexistent (file) [File unknown to git]
$ datalad drop bar/f
drop(error): bar/f (file) [File unknown to git]
$ datalad diff -f HEAD~2 --annex availability bar/f notexistent foo/f
    added: foo/f (file)
  unknown: bar/f ()
  unknown: notexistent ()

Note, that this only has an effect when the command goes through
AnnexRepo.get_content_annexinfo. Calls, that are only assessing things
based on plain git are not affected. This may be desirable to add,
though, since the reporting is somewhat similar.
Also note, that we can't distinguish the bar/f and notexistent case anymore, since this is reported on equally by git-annex, which in turn now relies on git ls-files --error-unmatch.

  • add changed results to changelog, if confirmed by review

Changelog

🐛 Bug Fixes

  • Fixes DataLad's parsing of git-annex' reporting on unknown paths

🛡 Tests

@yarikoptic yarikoptic added the semver-patch Increment the patch version when merged label Mar 15, 2022
@yarikoptic
Copy link
Member

I guess some if not all could/should go against maint?

@bpoldrack bpoldrack force-pushed the fix-for-new-annex branch 2 times, most recently from 7fe29ca to 0848f90 Compare March 15, 2022 15:17
@bpoldrack
Copy link
Member Author

I guess some if not all could/should go against maint?

Likely. Will see once I have it all. Just want to collect and debug here.

@bpoldrack bpoldrack force-pushed the fix-for-new-annex branch 2 times, most recently from 8aef920 to 140afc0 Compare March 19, 2022 09:06
@bpoldrack bpoldrack marked this pull request as ready for review March 19, 2022 09:15
@bpoldrack bpoldrack added the team-gitannex git-annex interface (AnnexRepo, protocols, ...) (https://github.com/datalad/datalad/issues/6365) label Mar 19, 2022
@bpoldrack bpoldrack marked this pull request as draft March 19, 2022 11:51
@bpoldrack
Copy link
Member Author

bpoldrack commented Mar 19, 2022

While the original failures are gone, I am now seeing two new failures. As of now I am failing to see how they could be related to this PR, but I checked master in #6568 and failed to trigger them.

One exclusively on github action macOS(brew) only:

2022-03-19T09:42:42.5345180Z ======================================================================
2022-03-19T09:42:42.5345480Z ERROR: datalad.support.tests.test_parallel.test_creatsubdatasets
2022-03-19T09:42:42.5345990Z ----------------------------------------------------------------------
2022-03-19T09:42:42.5346280Z Traceback (most recent call last):
2022-03-19T09:42:42.5348780Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/parallel.py", line 368, in _iter_threads
2022-03-19T09:42:42.5349170Z     raise _FinalShutdown()
2022-03-19T09:42:42.5349420Z datalad.support.parallel._FinalShutdown
2022-03-19T09:42:42.5349590Z 
2022-03-19T09:42:42.5349760Z During handling of the above exception, another exception occurred:
2022-03-19T09:42:42.5349950Z 
2022-03-19T09:42:42.5350040Z Traceback (most recent call last):
2022-03-19T09:42:42.5350630Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/nose/case.py", line 198, in runTest
2022-03-19T09:42:42.5350970Z     self.test(*self.arg)
2022-03-19T09:42:42.5351550Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/tests/utils.py", line 874, in _wrap_with_tempfile
2022-03-19T09:42:42.5351910Z     return t(*(arg + (filename,)), **kw)
2022-03-19T09:42:42.5352520Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/tests/test_parallel.py", line 127, in test_creatsubdatasets
2022-03-19T09:42:42.5353160Z     assert_raises(IncompleteResultsError, list, ProducerConsumer(paths[::-1], create_, jobs=5))
2022-03-19T09:42:42.5353690Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/unittest/case.py", line 756, in assertRaises
2022-03-19T09:42:42.5354270Z     return context.handle('assertRaises', args, kwargs)
2022-03-19T09:42:42.5354670Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/unittest/case.py", line 178, in handle
2022-03-19T09:42:42.5355500Z     callable_obj(*args, **kwargs)
2022-03-19T09:42:42.5356100Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/parallel.py", line 265, in __iter__
2022-03-19T09:42:42.5356470Z     yield from self._iter_threads(self._jobs)
2022-03-19T09:42:42.5357060Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/parallel.py", line 417, in _iter_threads
2022-03-19T09:42:42.5357490Z     self.shutdown(force=True, exception=self._producer_exception or interrupted_by_exception)
2022-03-19T09:42:42.5358560Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/parallel.py", line 233, in shutdown
2022-03-19T09:42:42.5358940Z     raise exception
2022-03-19T09:42:42.5359580Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/parallel.py", line 401, in _iter_threads
2022-03-19T09:42:42.5359950Z     done_useful |= self._pop_done_futures(lgr)
2022-03-19T09:42:42.5360560Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/parallel.py", line 463, in _pop_done_futures
2022-03-19T09:42:42.5360890Z     raise exception
2022-03-19T09:42:42.5361300Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/concurrent/futures/thread.py", line 57, in run
2022-03-19T09:42:42.5361650Z     result = self.fn(*self.args, **self.kwargs)
2022-03-19T09:42:42.5362270Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/parallel.py", line 329, in consumer_worker
2022-03-19T09:42:42.5362590Z     for r in res:
2022-03-19T09:42:42.5363170Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/interface/utils.py", line 369, in generator_func
2022-03-19T09:42:42.5363500Z     allkwargs):
2022-03-19T09:42:42.5364080Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/interface/utils.py", line 544, in _process_results
2022-03-19T09:42:42.5364420Z     for res in results:
2022-03-19T09:42:42.5364950Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/core/local/create.py", line 376, in __call__
2022-03-19T09:42:42.5365320Z     path, initopts, fake_dates, description)
2022-03-19T09:42:42.5365920Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/core/local/create.py", line 530, in _setup_annex_repo
2022-03-19T09:42:42.5366260Z     fake_dates=fake_dates
2022-03-19T09:42:42.5366800Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/dataset/repo.py", line 152, in __call__
2022-03-19T09:42:42.5367160Z     instance = type.__call__(cls, *new_args, **new_kwargs)
2022-03-19T09:42:42.5367740Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/annexrepo.py", line 205, in __init__
2022-03-19T09:42:42.5368110Z     repo=repo, git_opts=git_opts, fake_dates=fake_dates)
2022-03-19T09:42:42.5368690Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/support/gitrepo.py", line 904, in __init__
2022-03-19T09:42:42.5369160Z     init_options=from_cmdline + to_options(**git_opts),
2022-03-19T09:42:42.5369750Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/datalad/dataset/gitrepo.py", line 545, in init
2022-03-19T09:42:42.5370100Z     pathobj.mkdir(parents=True)
2022-03-19T09:42:42.5370440Z   File "/Users/runner/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/pathlib.py", line 1273, in mkdir
2022-03-19T09:42:42.5370800Z     self._accessor.mkdir(self, mode)
2022-03-19T09:42:42.5371380Z FileExistsError: [Errno 17] File exists: '/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/datalad_temp_test_creatsubdatasetsdb8n_dqd/subds1'

Which seems wild, since the mkdir call apparently causing the FileExistsError is is done right after testing for lexists to be False.

Resolved by using pathlib: 6f86a1b
Not sure, why it only happened here to begin with, though.

Edit:
"Resolution" remains implausible. Even os.path.lexists(pathlib.Path) (instead of passing a string) doesn't trigger it again.
At this point I'm very confident it has nothing to do with this PR, but with some parallel usecases involving ProducerConsumer (something's ack of thread-safety?).
Moved to #6598

@bpoldrack
Copy link
Member Author

bpoldrack commented Mar 19, 2022

The other one only happens on AppVeyor (macOS again):

======================================================================
ERROR: datalad.core.distributed.tests.test_clone.test_ria_postclonecfg('ssh://datalad-test:/Users/appveyor/DLTMP/datalad_temp_ix8umpb9', '07c27167-6fef-443c-bbb7-3eec35daddc3')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/appveyor/venv3.8.12/lib/python3.8/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/appveyor/projects/datalad/datalad/tests/utils.py", line 288, in _wrap_skip_ssh
    return func(*args, **kwargs)
  File "/Users/appveyor/projects/datalad/datalad/tests/utils.py", line 874, in _wrap_with_tempfile
    return t(*(arg + (filename,)), **kw)
  File "/Users/appveyor/projects/datalad/datalad/tests/utils.py", line 874, in _wrap_with_tempfile
    return t(*(arg + (filename,)), **kw)
  File "/Users/appveyor/projects/datalad/datalad/core/distributed/tests/test_clone.py", line 958, in _test_ria_postclonecfg
    riaclone = clone('ria+{}#{}'.format(url, dsid), clone_path)
  File "/Users/appveyor/projects/datalad/datalad/interface/utils.py", line 447, in eval_func
    return return_func(*args, **kwargs)
  File "/Users/appveyor/projects/datalad/datalad/interface/utils.py", line 439, in return_func
    results = list(results)
  File "/Users/appveyor/projects/datalad/datalad/interface/utils.py", line 424, in generator_func
    raise IncompleteResultsError(
datalad.support.exceptions.IncompleteResultsError: Command did not complete successfully. 1 failed:
[{'action': 'install',
  'message': ('Failed to clone from any candidate source URL. Encountered '
              'errors per each url were:\n'
              '- %s',
              'ssh://datalad-test/Users/appveyor/DLTMP/datalad_temp_ix8umpb9/07c/27167-6fef-443c-bbb7-3eec35daddc3\n'
              "  CommandError: 'git -c diff.ignoreSubmodules=none clone "
              '--progress '
              'ssh://datalad-test/Users/appveyor/DLTMP/datalad_temp_ix8umpb9/07c/27167-6fef-443c-bbb7-3eec35daddc3 '
              "/Users/appveyor/DLTMP/datalad_temp__test_ria_postclonecfgw5zk_49p' "
              "failed with exitcode 128 [err: 'Cloning into "
              "'/Users/appveyor/DLTMP/datalad_temp__test_ria_postclonecfgw5zk_49p'...\n"
              '\r'
              'remote: Total 37 (delta 7), reused 0 (delta 0)        \n'
              "fatal: remote transport reported error']"),
  'path': '/Users/appveyor/DLTMP/datalad_temp__test_ria_postclonecfgw5zk_49p',
  'source_url': 'ria+ssh://datalad-test:/Users/appveyor/DLTMP/datalad_temp_ix8umpb9#07c27167-6fef-443c-bbb7-3eec35daddc3',
  'status': 'error',
  'type': 'dataset'}]

This seems flaky. Logging into that AppVeyor build, showed, that this happens at different spots in this test.
Sometimes this clone seems to work out fine but then the subsequent get on a subdataset fails the same way.
So, currently the failure happens at line 958 in test_clone.py and on previous run (exact same commit) it only failed at line 1017.
Moreover, this should not be the only test where we clone from RIA via SSH. Not clear to me yet, how this is one is different.

Looking into this, I am seeing a Broken Pipe Error:

[DEBUG] ...>runner:192  Finished ['ssh', '-o', 'ControlPath=/Users/appveyor/Library/Caches/datalad/sockets/fb3f4327', '-o', 'SendEnv=GIT_PROTOCOL', 'datalad-test', "git-upload-pack '/private/var/folders/5s/g225f6nd6jl4g8tshbh1ltk40000gn/T/datalad_temp_vlst5whp/376/1c829-d43c-420a-95fb-4467944477c4'"] with status 0 
[ERROR] ...>main:136,185  [Errno 32] Broken pipe (BrokenPipeError) 
fatal: remote transport reported error']

And git-upload-pack seems a bit off indeed:

appveyor$ git-upload-pack '/private/var/folders/5s/g225f6nd6jl4g8tshbh1ltk40000gn/T/datalad_temp_vlst5whp/376/1c829-d43c-420a-95fb-4467944477c4'
010d74b31e4b1f6a81373783c6520507909436ca0f3b HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed symref=HEAD:refs/heads/dl-test-branch object-format=sha1 agent=git/2.35.1
004774b31e4b1f6a81373783c6520507909436ca0f3b refs/heads/dl-test-branch
0000

hanging at this point

And, of course, there's no problem running this right afterwards:

appveyor$ datalad clone "ria+ssh://datalad-test/private/var/folders/5s/g225f6nd6jl4g8tshbh1ltk40000gn/T/datalad_temp_vlst5whp#3761c829-d43c-420a-95fb-4467944477c4" test5                                                                 
Clone attempt:   0%|                                                                                                                                                                                                              | 0.00/1.00 [00:00<?, ? Candidate locations/s]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:b7Q9hN2pEJGEvu/BlO2GUD/EV+H/xlmDqx7oCUosGbg.
Please contact your system administrator.
Add correct host key in /Users/appveyor/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/appveyor/.ssh/known_hosts:154
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
install(ok): /Users/appveyor/projects/test5 (dataset) 

Edit:

Same here. Implausible to be related (it's git clone failing) and not only showed up at different clones, but also stopped showing. Moved to #6599

bpoldrack added a commit to bpoldrack/datalad that referenced this pull request Mar 19, 2022
Seeing a strange `FileExistsError` raised by `mkdir` on a macOS CI
build, when the call was conditioned on `os.path.lexists` being `False`.
See: datalad#6550 (comment)

Appears to be fixed by this patch.
@bpoldrack bpoldrack marked this pull request as ready for review March 19, 2022 20:57
bpoldrack added a commit to bpoldrack/datalad that referenced this pull request Mar 21, 2022
Seeing a strange `FileExistsError` raised by `mkdir` on a macOS CI
build, when the call was conditioned on `os.path.lexists` being `False`.
See: datalad#6550 (comment)

Appears to be fixed by this patch.
bpoldrack added a commit to bpoldrack/datalad that referenced this pull request Mar 22, 2022
Seeing a strange `FileExistsError` raised by `mkdir` on a macOS CI
build, when the call was conditioned on `os.path.lexists` being `False`.
See: datalad#6550 (comment)

Appears to be fixed by this patch.
@bpoldrack
Copy link
Member Author

Need to test latest adjustments, hence converting back to draft mode to prevent premature merging.

@bpoldrack bpoldrack marked this pull request as draft March 25, 2022 13:56
bpoldrack added a commit to bpoldrack/datalad that referenced this pull request Mar 29, 2022
Seeing a strange `FileExistsError` raised by `mkdir` on a macOS CI
build, when the call was conditioned on `os.path.lexists` being `False`.
See: datalad#6550 (comment)

Appears to be fixed by this patch.
@bpoldrack bpoldrack force-pushed the fix-for-new-annex branch 3 times, most recently from 9bb6919 to 99ae79a Compare March 30, 2022 07:32
@bpoldrack bpoldrack force-pushed the fix-for-new-annex branch 2 times, most recently from 7c433d4 to f29a2bf Compare March 30, 2022 11:09
Skip over a narrow range of annex versions, that have the bug as
reported at
https://git-annex.branchable.com/bugs/Change_to_annex.largefiles_leaves_repo_modified/.

(Closes datalad#6570)
As of annex' 10.20220127 an issue became apparent (actually older),
where the reporting of annex commands with respect to paths that are
unknown to git or not existent at all happens in different ways. This
depends on annex' internal git calls (git itself appears to be
inconsistent WRT this message) as well as on the value of
'annex.skipunknown' the default of which changed in said version. This
results in both styles of reporting being used and as long as we rely on
parsing that output, we need to account for both.
Moreover, annex commands don't always exit non-zero when that happens,
which is why we need to check stderr output when the command doesn't
fail, too.
Fixed annex (ce91f10132805d11448896304821b0aa9c6d9845,
Feb 28, 2022 - "fix annex.skipunknown false error propagation"), which
is part of version 10.20220322.

None of that actually depends on annex' version exactly. It's mostly
just that the zero-exit bug in combination with the switch of default
made those issues surface.

(Closes datalad#6492)
(Closes datalad#6571)
With changed reporting on unknown to git paths by annex (which is based
on `git ls-files --error-unmatch`) let datalad commands report those
errors, rather than crashing or completely ignoring them.

This will change behavior of some datalad commands. The change partially
only applies to annex version >= 10.20220322 and annex.skipunknown=false
(default since 10.20220127).

Assume following setup:

.
├── bar -> foo
├── bla
├── foo
│   └── f -> ../.git/annex/objects/ ...
└── untracked

Then, previously we had (all zero-exit):

$ datalad status --annex availability notexistent foo/f
1 annex'd file (0.0 B/0.0 B present/total size)
nothing to save, working tree clean
$ datalad status --annex availability bar/f foo/f
1 annex'd file (0.0 B/0.0 B present/total size)
nothing to save, working tree clean
$ datalad drop notexistent
$ datalad drop bar/f
$ datalad diff -f HEAD~2 --annex availability bar/f notexistent foo/f
    added: foo/f (file)

Now, with non-zero exit:

$ datalad status --annex availability notexistent foo/f
status(error): notexistent [File unknown to git]
1 annex'd file (0.0 B/0.0 B present/total size)
$ datalad status --annex availability bar/f foo/f
status(error): bar/f [File unknown to git]
1 annex'd file (0.0 B/0.0 B present/total size)
status(error): bar/f [File unknown to git]
$ datalad drop notexistent
drop(error): notexistent (file) [File unknown to git]
$ datalad drop bar/f
drop(error): bar/f (file) [File unknown to git]
$ datalad diff -f HEAD~2 --annex availability bar/f notexistent foo/f
    added: foo/f (file)
  unknown: bar/f ()
  unknown: notexistent ()

Note, that this only has an effect when the command goes through
`AnnexRepo.get_content_annexinfo`. Calls, that are only assessing things
based on plain git are not affected. This may be desirable to add,
though, since the reporting is somewhat similar.
@codeclimate
Copy link

codeclimate bot commented Mar 30, 2022

Code Climate has analyzed commit 15a30a4 and detected 0 issues on this pull request.

View more on Code Climate.

@bpoldrack bpoldrack marked this pull request as ready for review March 30, 2022 13:05
@codecov
Copy link

codecov bot commented Mar 30, 2022

Codecov Report

Merging #6550 (15a30a4) into master (8bf53dd) will increase coverage by 0.03%.
The diff coverage is 86.04%.

@@            Coverage Diff             @@
##           master    #6550      +/-   ##
==========================================
+ Coverage   91.13%   91.17%   +0.03%     
==========================================
  Files         350      351       +1     
  Lines       44232    44272      +40     
==========================================
+ Hits        40312    40364      +52     
+ Misses       3920     3908      -12     
Impacted Files Coverage Δ
datalad/distributed/tests/test_drop.py 100.00% <ø> (ø)
datalad/core/local/tests/test_save.py 97.95% <50.00%> (-0.17%) ⬇️
datalad/core/local/tests/test_status.py 97.79% <80.00%> (-0.68%) ⬇️
datalad/support/annexrepo.py 91.19% <80.00%> (-0.08%) ⬇️
datalad/support/tests/test_annexrepo.py 97.92% <87.50%> (+0.21%) ⬆️
datalad/distributed/drop.py 97.22% <100.00%> (ø)
datalad/support/annex_utils.py 100.00% <100.00%> (ø)
datalad/distributed/tests/test_ria_basics.py 98.15% <0.00%> (+0.26%) ⬆️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8bf53dd...15a30a4. Read the comment docs.

Copy link
Member

@yarikoptic yarikoptic left a comment

Choose a reason for hiding this comment

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

CI is happy (ish) -- I am happy, although would be nice to test it out on recent snapshot. I have asked @joeyh about oddity with OSX snapshot and its versioning. But whenever we merge this, we will see effects in testing of datalad/git-annex. I will also add a label for a potential CP into maint to get that one green too!

@@ -3297,12 +3311,23 @@ def get_content_annexinfo(
path = self.pathobj.joinpath(ut.PurePosixPath(j['file']))
rec = info.get(path, None)
if rec is None:
if init is not None:
# git didn't report on this path
if j.get('success', None) is False:
Copy link
Member

Choose a reason for hiding this comment

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

I guess should be of the same effect but the pattern we used already is

Suggested change
if j.get('success', None) is False:
if not j.get('success', True):

which avoids ising bools .

@yarikoptic
Copy link
Member

Let's proceed , thank you @bpoldrack for taking care about it!

@yarikoptic yarikoptic merged commit 7e904ac into datalad:master Apr 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cherry-pick-to-maint semver-patch Increment the patch version when merged team-gitannex git-annex interface (AnnexRepo, protocols, ...) (https://github.com/datalad/datalad/issues/6365)
Projects
None yet
3 participants