-
Notifications
You must be signed in to change notification settings - Fork 15
chore: update ipfsd-ctl version and use daemon.js util file #86
Conversation
f5c267f
to
da93ced
Compare
I'm a little concerned by the skipped tests around different hashes. These tests are run on the current release & master of js-IPFS and all pass - why has converting them to async/await made them fail? Or is it something to do with a new dep? |
da93ced
to
c068606
Compare
I've debugged a little bit more and I found out that the problem on both However, I still have 3 skipped tests on Can I get some help on this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changes look good to me!
Now we need to decide on how to iterate with the skipped tests. Taking into attention @PedroMiguelSS analysis, it looks like a problem not related with this. Also, the same configurations are provided. It would be great to not skip the tests, but if anyone is now available to help debugging it, we should probably create issues to get to them as soon as possible, and not block the refactor, as we are upgrading a lot of dependencies here, some of them several breaking releases. @achingbrain what is your feeling here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets merge this, @PedroMiguelSS can you please create an issue referencing this ?
@PedroMiguelSS check whats happening with the CI |
@hugomrdias, issue: #88 |
62f867a
to
facc384
Compare
facc384
to
4f38311
Compare
@achingbrain we still have a couple of timeout error coming from the go daemon on windows by this should be good to go, can you review it again pls |
test/files.js
Outdated
// Somehow, the hashes for the same content are not equal | ||
// This problem was also detected on | ||
// both 'remove a child shared by multiple pins' test and 'print same pins' | ||
it.skip('trickle DAGs', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this (and the other two) still need to be skipped?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These 3 tests cannot be unskipped as they are still failing. Issue #88 has further details about this problem.
Should we block this PR until we get this solved?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm taking a look at those failing tests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the problem was that both invocations of testHashesAreEqual
in each test was consuming data from the same ReadableStream
- something in the timing of the execution of the tests may have changed which meant that one invocation was missing the first few data
events.
Refactoring the tests so each invocation of testHashesAreEqual
gets it's own data stream seems to have solved the problem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Though having said that I do seem to be getting different CIDs from js-IPFS master on the cli if the daemon is on or off when --trickle
is specified. 😬
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ipfs-http-client
wasn't inspecting the right field for the --trickle
arg - the fix is in ipfs-inactive/js-ipfs-http-client#1129 and I'll backport it to [email protected]
when it's merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Urgh, no, it's more complicated that that, sorry - tired. ipfs-http-client
is doing the right thing - it takes a trickle
key as part of it's options and sends that over http. The cli in ipfs
takes a trickle
argument but turns it into strategy: 'trickle'
(as that's what's required by the unixfs-importer
) and passes that to ipfs.add
* and the http api endpoint does the same thing.
The right thing to do is for ipfs-http-client
, the cli and the http api endpoint to all pass trickle: true
to ipfs.add
(as per the interface spec) and have that do the conversion to strategy: 'trickle'
.
- = actually
ipfs._addAsyncIterator
butipfs.add
just passes it's options straight through so same same.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tiny nits, just needs the added |
With all the added promises I think the order of execution had changed so one invocation would not recieve all the data events.
I think this is good to go, will merge when CI passes. Looks like some flaky tests in there. |
Famous last words, perhaps. |
I've replicated the failing tests locally, seems this is the fix: ipfs-inactive/js-ipfs-http-client#1130 |
Tests passing, hooray! |
CONGRATULATIONS ON THE AWESOME MERGE, @PedroMiguelSS and @achingbrain!! |
Completes phase 1 and 2 to tackle #84 as referenced here.
Some tests were skipped due to an inconsistency: the same content is getting different hashes when added to a
go daemon
and ajs daemon
. The skipped tests are:files.js
file