Closed JamieMason closed 8 years ago
Trying to fix this but getting nowhere, my knowledge of both Docker and Sinopia aren't great (on the positive side it's a good chance to learn).
Is there a reason why rnbwd/sinopia (10k installs) was used over keyvanfatehi/sinopia (100k installs)? Are there some modifications in that fork we need?
The commit history of RnbWd/sinopia-docker really puts me off and also it looks like they might be taking it off in some other direction, although it's not really clear.
I think it might be worth us creating a container of our own on docker hub so we have it under our own control. If you have a few minutes @5id to point me in the right direction I'd be happy to try and do this myself, but I have to admit as-is I'm really struggling with it.
I need to get this fixed before I can cut another release, as these are the only functional tests we have.
Thanks.
@JamieMason I'm probably missing a ton of context here, so apologies for my ignorance in advance :).
What's the reason for using a Docker container for the tests? Looking through the commit history, I'm inferring that it may be specifically for enabling testing against multiple versions of node/npm - is that right?
I ask because TravisCI (which it looks like you're trying to use) comes with nvm
installed on it to ease testing against different versions of node. It may reduce some complexity in the testing setup if it's possible to remove docker from the picture.
I'm inferring that it may be specifically for enabling testing against multiple versions of node/npm - is that right?
That's basically it yeah, the goal was to be able to try and reproduce any issues that get reported, by taking the package.json and node/npm pairing. Sinopia was then added to the mix so that we could test scoped packages that require authentication.
I ask because TravisCI (which it looks like you're trying to use) comes with nvm installed on it to ease testing against different versions of node. It may reduce some complexity in the testing setup if it's possible to remove docker from the picture.
You might have an idea there, I'll give it some thought, thanks.
I'll give it some thought, thanks.
Cool. Happy to contribute if it's something you want to explore further.
You can also tell Travis to spin up a separate container for each node
version you're testing against. Here is an example config from another project
Thanks @DrewML, let's take a look. As you say, I think the docker component may not really be needed. All that's required is that we can set the job to run on a given node/npm pairing. I can be DM'd on Gitter if needed, cheers – much appreciated.
By the way, if you clone, develop is the newest branch.
tech-task/travis is up to date with develop now too.
Awesome! I've got lots of packing/moving this weekend, but I'm going to try and squeeze this in during some of my rest breaks :)
@JamieMason I started working on this a bit yesterday/today. Here is my progress so far - feedback welcome.
todo
at the bottom of the fileA few comments:
node_js
key in travis.yml
, like the example I linked to in my prior comment. Then, for the test
command, we would do multiple entries for NPM_VERSION=3.10.6 npm run test-experimental
, replacing the version for each one we want to test. That way, every node version we add gets tested across every node specified.sinopia
is adding any value. As far as I can tell from reading the existing test file, it doesn't look like any private packages are being tested - just scoped packages (which can be public). I did work on a setup for Sinopia, but it may be worthwhile to scrap it if it's not strictly necessary.resolve
entries point to a local tarball`. This would be a bit difficult without access to a JSON parser.My TODO for now is:
@DrewML's improvements released in 0.16.1 🎆
Created a new issue to track the following.