componentjs / component

frontend package manager and build tool for modular web applications
https://github.com/componentjs/guide
MIT License
4.55k stars 306 forks source link

component-install randomly downloads corrupt files #617

Closed sankargorthi closed 9 years ago

sankargorthi commented 9 years ago

We're on component(1)@0.19.9

Our CI tool always deletes the components folder and does a component install each time. We've started observing today that the downloaded files seem to randomly contain truncated sections (in the middle of the file) and our builds fail.

Is it something others have observed?

sankargorthi commented 9 years ago

Also, all our errors currently seem to be in our lodash/lodash: "2.4.1" dependency. Not sure if this is useful or relevant.

dominicbarnes commented 9 years ago

component@0 gets less reliable as your dependency tree grows. Since it only includes 1 folder for each dependency, when it comes to conflicting versions it will behave inconsistently. Sometimes, 1 version clearly wins, sometimes you get a corrupted file.

The point is, you should really consider upgrading to component@1, it fixes this particular issue and lots lots more, while retaining backwards-compatibility. (for the most part, I'm sure there will be edge-cases)

sankargorthi commented 9 years ago

We're unfortunately limited to 0.19.9 as I was unable to figure out how to point component to a custom remote repo on our VPN (gitlab). Is there some documentation or examples on how to do this with component@1?

We're using component-bundle to drive our builds and we only do component-install once. We're manually managing our dependencies and they're all on the same version or on '*'. I'm pretty sure we don't have conflicts.

dominicbarnes commented 9 years ago

Oh bummer, that does complicate things. One option, albeit not a very pretty one, is to add a working components directory to your git repo, I had to resort to that when we were stuck with 0.19.x.

netpoetica commented 9 years ago

@sankargorthi I have intentions to make Gitlab a possibility for component, but unfortunately I am not super-familiar with Gitlab.

You may want to look at component remotes and see what I did to make BitBucket a possibility. It shouldn't be much more work than what was done for BitBucket to be able to make Gitlab a reality for component@1.

I would definitely be willing to work with you to bring this to component if you're interested

sankargorthi commented 9 years ago

@netpoetica absolutely! anything to get us up to the latest version of component(1). I'll move this over to remotes then.

netpoetica commented 9 years ago

@timaschew are we still fixing bugs in lower versions of component at this point? Aside from the idea of adding the remote which is awesome, this is still a strange bug. I would like to keep away from < 0, what do you think?

timaschew commented 9 years ago

Yep, I think supporting < 0 isn't worth it.