I've got a number of cases when chunkhash suddenly gets changed even though output file stays the same and, what is worse, when chunkhash doesn't change when file contents changes dramatically.
Inconsistent "consistent hashing" is a nightmare when you're dealing with CDN, because once you got a problem, you got it on the huge number of servers and cannot fix it easily.
I'm sure we can hunt hashing bugs one by one and somewhen get them all fixed, but at any moment we cannot be sure there aren't some of them still waiting for a tricky combination of options to break everything down again. And of course we will get new bugs introduced by new options, loaders and so on.
So, in the meantime I'm forced to instrument deployment with tricky double-checking code (that can be buggy itself) just to prevent breaking things on CDN. This is very unpleasant and it looks like we need more reliable hashes.
Why cannot it be just hash of the final output content?
This approach prevents cyclic dependencies (but they are a bad practice anyway) and this will also force possible build order to be bottom-up through dependency tree.
But at least it will be much more robust and reliable, and this is what I (and I guess all the CDN users) really need badly.
What do you think?
I've got a number of cases when chunkhash suddenly gets changed even though output file stays the same and, what is worse, when chunkhash doesn't change when file contents changes dramatically.
Inconsistent "consistent hashing" is a nightmare when you're dealing with CDN, because once you got a problem, you got it on the huge number of servers and cannot fix it easily.
I'm sure we can hunt hashing bugs one by one and somewhen get them all fixed, but at any moment we cannot be sure there aren't some of them still waiting for a tricky combination of options to break everything down again. And of course we will get new bugs introduced by new options, loaders and so on.
So, in the meantime I'm forced to instrument deployment with tricky double-checking code (that can be buggy itself) just to prevent breaking things on CDN. This is very unpleasant and it looks like we need more reliable hashes.
Why cannot it be just hash of the final output content?
This approach prevents cyclic dependencies (but they are a bad practice anyway) and this will also force possible build order to be bottom-up through dependency tree.
But at least it will be much more robust and reliable, and this is what I (and I guess all the CDN users) really need badly.
What do you think?