Closed jasonkuhrt closed 9 years ago
Generally what I am getting at is there is a surprising and subtle (aka terrible) interplay between ./components
and component.json
that influences how component(1)
behaves. I believe the current behaviour to be bad, but worse still is there are no warnings or explanations of what's going on even if current behaviour is exactly as desired implementation-wise.
Not ragging, lets just make it better.
Just to be clear, what version of component are you using? (component 0.19
and 1.0.0-rc5
are vastly different in how they handle versioning/installation)
@dominicbarnes 1.0.0-rc5
.
Odd, I haven't had versioning issues w/ 1.0.0-rc5
like you are describing. Have you tried adding DEBUG=*
to your component install
command to see if it reveals more information?
@dominicbarnes Here is a debug flow. This is yet another issue not listed above.
~/projects/cloud-client-api-http
⧑ cat component.json
{
"name": "littlebits-cloud-http",
"version": "0.0.3",
"description": "Lightweight wrapper for littleBits Cloud HTTP API",
"main": "index.js",
"scripts": [
"index.js",
"lib/customizations.js",
"lib/make-method.js",
"lib/method-process-signature.js",
"lib/route-utils.js",
"assets/routes.js"
],
"license": "MIT",
"dependencies": {
"lodash/lodash": "^2.4.1",
"visionmedia/superagent": "~0.18.0"
}
}
I change my ./component.json
via superagent
~0.18.0
to ~0.17.0
Fail:
~/projects/cloud-client-api-http
⧑ DEBUG=* c install
remotes:local checking local components at /Users/jasonkuhrt/projects/cloud-client-api-http/components +0ms
component-resolver remote not set - defaulting to remotes's defaults +0ms
component-resolver:locals resolving local at "/Users/jasonkuhrt/projects/cloud-client-api-http" +0ms
component-resolver resolving "littlebits-cloud-http" +6ms
component-resolver remaining dependencies: 2 +4ms
component-resolver remaining semver: 0 +0ms
component-resolver finished resolving locals +0ms
component-resolver finished resolving dependencies (1) +0ms
component-resolver:semver resolving semver lodash/lodash@^2.4.1 +0ms
remotes:local resolving local remote +14ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +1ms
remotes:local got folders: 2.4.1 +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +0ms
remotes:local got folders: 2.4.1 +1ms
component-resolver:dependencies resolving dependency lodash/lodash@2.4.1 +0ms
component-resolver:dependencies searching ["local","github","bitbucket"] for lodash/lodash@2.4.1 +1ms
remotes:local resolving local remote +2ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +0ms
remotes:local got folders: 2.4.1 +0ms
component-resolver:dependencies found lodash/lodash@2.4.1 from remote "local" +2ms
component-resolver resolving "lodash/lodash" +7ms
component-resolver remaining dependencies: 0 +0ms
component-resolver remaining semver: 2 +0ms
component-resolver:semver resolved semver lodash/lodash@^2.4.1 -> lodash/lodash@2.4.1 +7ms
component-resolver:semver resolving semver visionmedia/superagent@~0.17.0 +0ms
remotes:local resolving local remote +3ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent +0ms
component-downloader "/Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash/2.4.1" exists, skipping downloading. +0ms
remotes:local got folders: 0.18.0 +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent +0ms
remotes:local got folders: 0.18.0 +0ms
component-consoler Error: invalid semver range "~0.17.0" for "visionmedia/superagent"
at Resolver.<anonymous> (/usr/local/share/npm/lib/node_modules/component/node_modules/component-resolver/build/semver.js:624:13)
at Generator.invoke (/usr/local/share/npm/lib/node_modules/component/node_modules/component-resolver/build/index.js:141:31)
at Generator.invoke (/usr/local/share/npm/lib/node_modules/component/node_modules/component-resolver/build/index.js:79:50)
at next (/usr/local/share/npm/lib/node_modules/component/node_modules/co/index.js:77:21)
at /usr/local/share/npm/lib/node_modules/component/node_modules/co/index.js:96:18
at ReaddirReq.Req.done (/usr/local/share/npm/lib/node_modules/component/node_modules/component-resolver/node_modules/graceful-fs/graceful-fs.js:143:5)
at ReaddirReq.done (/usr/local/share/npm/lib/node_modules/component/node_modules/component-resolver/node_modules/graceful-fs/graceful-fs.js:90:22)
at ReaddirReq.Req.done (/usr/local/share/npm/lib/node_modules/component/node_modules/remotes/node_modules/graceful-fs/graceful-fs.js:143:5)
at ReaddirReq.done (/usr/local/share/npm/lib/node_modules/component/node_modules/remotes/node_modules/graceful-fs/graceful-fs.js:90:22)
at Object.oncomplete (fs.js:107:15) +0ms
error : invalid semver range "~0.17.0" for "visionmedia/superagent"
What?
Oh:
~/projects/cloud-client-api-http
⧑ rm -rf components/visionmedia/superagent
Ok lets try again...
~/projects/cloud-client-api-http
⧑ DEBUG=* c install
remotes:local checking local components at /Users/jasonkuhrt/projects/cloud-client-api-http/components +0ms
component-resolver remote not set - defaulting to remotes's defaults +0ms
component-resolver:locals resolving local at "/Users/jasonkuhrt/projects/cloud-client-api-http" +0ms
component-resolver resolving "littlebits-cloud-http" +6ms
component-resolver remaining dependencies: 2 +4ms
component-resolver remaining semver: 0 +0ms
component-resolver finished resolving locals +0ms
component-resolver finished resolving dependencies (1) +1ms
component-resolver:semver resolving semver lodash/lodash@^2.4.1 +0ms
remotes:local resolving local remote +16ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +0ms
remotes:local got folders: 2.4.1 +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +1ms
remotes:local got folders: 2.4.1 +0ms
component-resolver:dependencies resolving dependency lodash/lodash@2.4.1 +0ms
component-resolver:dependencies searching ["local","github","bitbucket"] for lodash/lodash@2.4.1 +0ms
remotes:local resolving local remote +1ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +0ms
remotes:local got folders: 2.4.1 +1ms
component-resolver:dependencies found lodash/lodash@2.4.1 from remote "local" +2ms
component-resolver resolving "lodash/lodash" +5ms
component-resolver remaining dependencies: 0 +0ms
component-resolver remaining semver: 2 +0ms
component-resolver:semver resolved semver lodash/lodash@^2.4.1 -> lodash/lodash@2.4.1 +6ms
component-resolver:semver resolving semver visionmedia/superagent@~0.17.0 +0ms
remotes:local resolving local remote +2ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent +0ms
component-downloader "/Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash/2.4.1" exists, skipping downloading. +0ms
remotes:github GET "https://raw.githubusercontent.com/visionmedia/superagent/master/component.json" +0ms
cogent options: { protocol: 'https:',
slashes: true,
auth: 'jasonkuhrt:314314Dd',
host: 'raw.githubusercontent.com',
port: null,
hostname: 'raw.githubusercontent.com',
hash: null,
search: null,
query: null,
pathname: '/visionmedia/superagent/master/component.json',
path: '/visionmedia/superagent/master/component.json',
href: 'https://raw.githubusercontent.com/visionmedia/superagent/master/component.json',
headers:
{ 'accept-encoding': 'gzip',
'user-agent': 'https://github.com/cojs/cogent',
accept: 'application/json' },
method: 'GET' } +0ms
remotes:github GET "https://api.github.com/repos/visionmedia/superagent/tags" +366ms
cogent options: { protocol: 'https:',
slashes: true,
auth: 'jasonkuhrt:314314Dd',
host: 'api.github.com',
port: null,
hostname: 'api.github.com',
hash: null,
search: null,
query: null,
pathname: '/repos/visionmedia/superagent/tags',
path: '/repos/visionmedia/superagent/tags',
href: 'https://api.github.com/repos/visionmedia/superagent/tags',
headers:
{ 'accept-encoding': 'gzip',
'user-agent': 'https://github.com/cojs/cogent',
accept: 'application/json' },
method: 'GET' } +363ms
component-resolver:dependencies resolving dependency visionmedia/superagent@0.17.0 +1s
component-resolver:dependencies searching ["local","github","bitbucket"] for visionmedia/superagent@0.17.0 +0ms
remotes:local resolving local remote +1s
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent +0ms
remotes:github GET "https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/component.json" +714ms
cogent options: { protocol: 'https:',
slashes: true,
auth: 'jasonkuhrt:314314Dd',
host: 'raw.githubusercontent.com',
port: null,
hostname: 'raw.githubusercontent.com',
hash: null,
search: null,
query: null,
pathname: '/visionmedia/superagent/0.17.0/component.json',
path: '/visionmedia/superagent/0.17.0/component.json',
href: 'https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/component.json',
headers:
{ 'accept-encoding': 'gzip',
'user-agent': 'https://github.com/cojs/cogent',
accept: 'application/json' },
method: 'GET' } +715ms
component-resolver:dependencies found visionmedia/superagent@0.17.0 from remote "github" +1s
component-resolver resolving "visionmedia/superagent" +2s
component-resolver:semver resolving semver component/emitter@* +2s
remotes:local resolving local remote +1s
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/emitter +0ms
component-resolver:semver resolving semver component/reduce@* +0ms
remotes:local resolving local remote +1ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/reduce +0ms
component-resolver remaining dependencies: 2 +1ms
component-resolver remaining semver: 1 +0ms
component-resolver:semver resolved semver visionmedia/superagent@~0.17.0 -> visionmedia/superagent@0.17.0 +1ms
component-resolver finished resolving semver +0ms
remotes:local got folders: 1.1.2 +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/emitter +0ms
remotes:local got folders: 1.0.1 +1ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/reduce +0ms
remotes:local resolving local remote +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent +0ms
remotes:local got folders: 1.1.2 +0ms
component-resolver:dependencies resolving dependency component/emitter@1.1.2 +2ms
component-resolver:dependencies searching ["local","github","bitbucket"] for component/emitter@1.1.2 +1ms
remotes:local resolving local remote +1ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/emitter +0ms
remotes:local got folders: 1.0.1 +0ms
component-resolver:dependencies resolving dependency component/reduce@1.0.1 +0ms
component-resolver:dependencies searching ["local","github","bitbucket"] for component/reduce@1.0.1 +0ms
remotes:local resolving local remote +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/reduce +0ms
component-downloader resolved visionmedia/superagent@0.17.0 to github +2s
remotes:local got folders: 1.1.2 +2ms
remotes:local got folders: 1.0.1 +0ms
component-downloader downloading "https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js" to "/Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent/0.17.0/lib/client.js" +2ms
cogent options: { protocol: 'https:',
slashes: true,
auth: 'jasonkuhrt:314314Dd',
host: 'raw.githubusercontent.com',
port: null,
hostname: 'raw.githubusercontent.com',
hash: null,
search: null,
query: null,
pathname: '/visionmedia/superagent/0.17.0/lib/client.js',
path: '/visionmedia/superagent/0.17.0/lib/client.js',
href: 'https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js',
headers:
{ 'accept-encoding': 'gzip',
'user-agent': 'https://github.com/cojs/cogent' },
method: 'GET' } +1s
component-resolver:dependencies found component/reduce@1.0.1 from remote "local" +5ms
component-resolver resolving "component/reduce" +7ms
component-resolver remaining dependencies: 2 +0ms
component-resolver remaining semver: 0 +0ms
component-resolver:semver resolved semver component/reduce@* -> component/reduce@1.0.1 +7ms
component-resolver:dependencies found component/emitter@1.1.2 from remote "local" +0ms
component-resolver resolving "component/emitter" +0ms
component-resolver remaining dependencies: 2 +0ms
component-resolver remaining semver: 0 +0ms
component-resolver:semver resolved semver component/emitter@* -> component/emitter@1.1.2 +1ms
component-downloader "/Users/jasonkuhrt/projects/cloud-client-api-http/components/component/reduce/1.0.1" exists, skipping downloading. +3ms
component-downloader "/Users/jasonkuhrt/projects/cloud-client-api-http/components/component/emitter/1.1.2" exists, skipping downloading. +0ms
component-resolver finished resolving dependencies(2) +1ms
cogent timeout exceeded for GET https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js +5s
cogent received error "timeout of 5000ms exceeded for "https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js"" with "https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js" +1ms
component-consoler Error: timeout of 5000ms exceeded for "https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js"
at null.<anonymous> (/usr/local/share/npm/lib/node_modules/component/node_modules/cogent/build/index.js:435:23)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) +0ms
error : timeout of 5000ms exceeded for "https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js"
Huh?
Try again?
~/projects/cloud-client-api-http
⧑ DEBUG=* c install
remotes:local checking local components at /Users/jasonkuhrt/projects/cloud-client-api-http/components +0ms
component-resolver remote not set - defaulting to remotes's defaults +0ms
component-resolver:locals resolving local at "/Users/jasonkuhrt/projects/cloud-client-api-http" +0ms
component-resolver resolving "littlebits-cloud-http" +5ms
component-resolver remaining dependencies: 2 +5ms
component-resolver remaining semver: 0 +0ms
component-resolver finished resolving locals +0ms
component-resolver finished resolving dependencies (1) +0ms
component-resolver:semver resolving semver lodash/lodash@^2.4.1 +0ms
remotes:local resolving local remote +14ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +1ms
remotes:local got folders: 2.4.1 +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +0ms
remotes:local got folders: 2.4.1 +1ms
component-resolver:dependencies resolving dependency lodash/lodash@2.4.1 +0ms
component-resolver:dependencies searching ["local","github","bitbucket"] for lodash/lodash@2.4.1 +0ms
remotes:local resolving local remote +2ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash +0ms
remotes:local got folders: 2.4.1 +0ms
component-resolver:dependencies found lodash/lodash@2.4.1 from remote "local" +2ms
component-resolver resolving "lodash/lodash" +6ms
component-resolver remaining dependencies: 0 +0ms
component-resolver remaining semver: 2 +0ms
component-resolver:semver resolved semver lodash/lodash@^2.4.1 -> lodash/lodash@2.4.1 +6ms
component-resolver:semver resolving semver visionmedia/superagent@~0.17.0 +0ms
remotes:local resolving local remote +2ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent +0ms
component-downloader "/Users/jasonkuhrt/projects/cloud-client-api-http/components/lodash/lodash/2.4.1" exists, skipping downloading. +0ms
remotes:local got folders: +0ms
remotes:github GET "https://raw.githubusercontent.com/visionmedia/superagent/master/component.json" +0ms
cogent options: { protocol: 'https:',
slashes: true,
auth: 'jasonkuhrt:314314Dd',
host: 'raw.githubusercontent.com',
port: null,
hostname: 'raw.githubusercontent.com',
hash: null,
search: null,
query: null,
pathname: '/visionmedia/superagent/master/component.json',
path: '/visionmedia/superagent/master/component.json',
href: 'https://raw.githubusercontent.com/visionmedia/superagent/master/component.json',
headers:
{ 'accept-encoding': 'gzip',
'user-agent': 'https://github.com/cojs/cogent',
accept: 'application/json' },
method: 'GET' } +0ms
remotes:github GET "https://api.github.com/repos/visionmedia/superagent/tags" +605ms
cogent options: { protocol: 'https:',
slashes: true,
auth: 'jasonkuhrt:314314Dd',
host: 'api.github.com',
port: null,
hostname: 'api.github.com',
hash: null,
search: null,
query: null,
pathname: '/repos/visionmedia/superagent/tags',
path: '/repos/visionmedia/superagent/tags',
href: 'https://api.github.com/repos/visionmedia/superagent/tags',
headers:
{ 'accept-encoding': 'gzip',
'user-agent': 'https://github.com/cojs/cogent',
accept: 'application/json' },
method: 'GET' } +603ms
component-resolver:dependencies resolving dependency visionmedia/superagent@0.17.0 +721ms
component-resolver:dependencies searching ["local","github","bitbucket"] for visionmedia/superagent@0.17.0 +1ms
remotes:local resolving local remote +721ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent +0ms
remotes:local got folders: +0ms
remotes:github GET "https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/component.json" +115ms
cogent options: { protocol: 'https:',
slashes: true,
auth: 'jasonkuhrt:314314Dd',
host: 'raw.githubusercontent.com',
port: null,
hostname: 'raw.githubusercontent.com',
hash: null,
search: null,
query: null,
pathname: '/visionmedia/superagent/0.17.0/component.json',
path: '/visionmedia/superagent/0.17.0/component.json',
href: 'https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/component.json',
headers:
{ 'accept-encoding': 'gzip',
'user-agent': 'https://github.com/cojs/cogent',
accept: 'application/json' },
method: 'GET' } +114ms
component-resolver:dependencies found visionmedia/superagent@0.17.0 from remote "github" +58ms
component-resolver resolving "visionmedia/superagent" +780ms
component-resolver:semver resolving semver component/emitter@* +779ms
remotes:local resolving local remote +59ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/emitter +0ms
component-resolver:semver resolving semver component/reduce@* +1ms
remotes:local resolving local remote +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/reduce +0ms
component-resolver remaining dependencies: 2 +1ms
component-resolver remaining semver: 1 +0ms
component-resolver:semver resolved semver visionmedia/superagent@~0.17.0 -> visionmedia/superagent@0.17.0 +1ms
component-resolver finished resolving semver +1ms
remotes:local got folders: 1.1.2 +1ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/emitter +1ms
remotes:local got folders: 1.0.1 +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/reduce +0ms
remotes:local resolving local remote +1ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent +0ms
remotes:local got folders: 1.1.2 +0ms
component-resolver:dependencies resolving dependency component/emitter@1.1.2 +4ms
component-resolver:dependencies searching ["local","github","bitbucket"] for component/emitter@1.1.2 +0ms
remotes:local resolving local remote +0ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/emitter +0ms
remotes:local got folders: 1.0.1 +0ms
component-resolver:dependencies resolving dependency component/reduce@1.0.1 +1ms
component-resolver:dependencies searching ["local","github","bitbucket"] for component/reduce@1.0.1 +0ms
remotes:local resolving local remote +1ms
remotes:local checking folder: /Users/jasonkuhrt/projects/cloud-client-api-http/components/component/reduce +0ms
remotes:local got folders: +0ms
component-downloader resolved visionmedia/superagent@0.17.0 to github +784ms
remotes:local got folders: 1.1.2 +2ms
remotes:local got folders: 1.0.1 +0ms
component-downloader downloading "https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js" to "/Users/jasonkuhrt/projects/cloud-client-api-http/components/visionmedia/superagent/0.17.0/lib/client.js" +3ms
cogent options: { protocol: 'https:',
slashes: true,
auth: 'jasonkuhrt:314314Dd',
host: 'raw.githubusercontent.com',
port: null,
hostname: 'raw.githubusercontent.com',
hash: null,
search: null,
query: null,
pathname: '/visionmedia/superagent/0.17.0/lib/client.js',
path: '/visionmedia/superagent/0.17.0/lib/client.js',
href: 'https://raw.githubusercontent.com/visionmedia/superagent/0.17.0/lib/client.js',
headers:
{ 'accept-encoding': 'gzip',
'user-agent': 'https://github.com/cojs/cogent' },
method: 'GET' } +66ms
component-resolver:dependencies found component/emitter@1.1.2 from remote "local" +5ms
component-resolver resolving "component/emitter" +8ms
component-resolver remaining dependencies: 2 +0ms
component-resolver remaining semver: 0 +0ms
component-resolver:semver resolved semver component/emitter@* -> component/emitter@1.1.2 +9ms
component-resolver:dependencies found component/reduce@1.0.1 from remote "local" +1ms
component-resolver resolving "component/reduce" +1ms
component-resolver remaining dependencies: 1 +0ms
component-resolver remaining semver: 0 +0ms
component-resolver:semver resolved semver component/reduce@* -> component/reduce@1.0.1 +0ms
component-downloader "/Users/jasonkuhrt/projects/cloud-client-api-http/components/component/emitter/1.1.2" exists, skipping downloading. +3ms
component-resolver finished resolving dependencies(2) +0ms
component-downloader "/Users/jasonkuhrt/projects/cloud-client-api-http/components/component/reduce/1.0.1" exists, skipping downloading. +0ms
component-downloader installed visionmedia/superagent@0.17.0 in 76ms +68ms
installed : visionmedia/superagent@0.17.0 in 76ms
component-resolver finished installing dependencies +70ms
install : complete
It worked? Oh.
So two other issues above there:
superagent
in ./components
breaks component install
And:
~/projects/cloud-client-api-http
⧑ c --version
1.0.0-rc5
the first one is a bug @dominicbarnes pointed out before. i don't have the link to the issue, but the only way i know how to fix that is with more API requests.
the second one is just github being silly.
not too sure what's going with the failed semver resolution. if you can make a tiny repo that demonstrates this case that owuld be helpful.
Hi, I'm experiencing this timeout issue with 1.0.0-rc5. Any way to increase that 5000ms timeout?
TIA.
If you create a custom builder instance, you can pass timeout
as one of the options. (I'm working on a PR for component itself that will allow this override via the CLI)
There's also a retries
option you can pass to help mitigate the effect those timeouts can have. (I've bumped retries
up to 5 and have not even had to mess w/ timeout
)
imo it should be a .componentrc
file or something, not options. there are already too many options everywhere, and something like increased timeout is something you want with all the commands.
Thanks! Just modifying the default under $HOME/.nvm/v0.11.12/lib/node_modules/component/node_modules/cogent/lib/index.js did the trick for the time being. Look forward for any PR that improves the situation.
I hit this timeout routinely, why was 5000 deemed sufficient?
Sent from my iPhone
On May 15, 2014, at 17:03, Jonathan Ong notifications@github.com wrote:
imo it should be a .componentrc file or something, not options. there are already too many options everywhere
— Reply to this email directly or view it on GitHub.
better to fail fast vs. wait 30 seconds. if you're hitting the timeout, something is wrong, and unfortunately it's probably github and we can't do much about it. increasing the timeout is more of a "i know something is wrong and i'll tolerate it"
Or that you're far from github. Not everybody lives in CA ;-)
To be clear, the timeout is for how long it takes to get a response, not how long the entire request-response cycle takes. Taking 5+ seconds to get a response from the server is a sign you should probably bail and try again in the interest of time. That being said, I think the default retries
should be boosted from just 1
to something a little more resilient (like 3
or even 5
)
Have any tests been being written lately? It seems that the large number of problems with component lately is because there are basically no tests being written. We should be definitely write tests for each of the cases that breaks, so it stops happening over and over again.
From what it looks like, all of the code for builder.js/component/installer.js hasn't had any tests written for months, and there's only a handful anyways.
@lancejpollard not sure but I would be more than happy to contribute tests for the numerous broken flows I've found. Time is always an issue though so if the maintainers @jonathanong et al can whip up a point-form contributing.md
template that outlines how to get tests added quickly that would be awesome.
sure! make some PRs and ill add you guys as collabs
Repeated 5000ms timeouts from githubusercontent.com when using codeship.io have brought our workflow to an almost halt. Does GitHub "punish" hosts with rate limiting for making too many requests?
To get back to the original issue:
The behaviour of component-install
seems to be interpreted differently.
But the help output and the implementation is clear for me and just doesn't fit with your expected behaviour: https://github.com/componentjs/component/blob/master/bin/component-install#L21-L37
So if you provide a name (as an extra CLI argument), the component.json
is not used to install the dependency. You just need to call component-install
if you want to install dependencies from your component.json
.
There's a boat load of issues surrounding module installation/updating.
component.json
as e.g."visionmedia/superagent": "~0.17.0"
and./components
and> component install visionmedia/superagent
visionmedia/superagent@0.18.0
is isntalled; wtf?component.json
as e.g."visionmedia/superagent": "~0.18.0"
and./components
asvisionmedia/superagent@0.17.0
and> component install visionmedia/superagent
component.json
to be installed); wtf?This stuff has to Just Work(tm). I'm outlining the issues before diving deeper to make sure there's no gaps in the problem definition. Thoughts?