github / hubot-scripts

DEPRECATED, see https://github.com/github/hubot-scripts/issues/1113 for details - optional scripts for hubot, opt in via hubot-scripts.json
MIT License
3.53k stars 1.86k forks source link

list-jira-bug TextListener.call failure #670

Closed rafaelsantander closed 11 years ago

rafaelsantander commented 11 years ago

Description : I'm getting the following failure in the logs when calling the list-jira plugin. The logs, config output, package.json config and script source are include below.

Should the jira url be "https://demandforce.jira.com/login?"? Am I missing some node page in my json config?


Heroku Logs

2012-12-26T14:51:44+00:00 heroku[router]: at=info method=POST path=/hubot/ping host=intuit-hubot.herokuapp.com fwd=23.22.6.43 dyno=web.1 queue=0 wait=0ms connect=1ms service=4ms status=200 bytes=14 2012-12-26T15:11:44+00:00 app[web.1]: [Wed Dec 26 2012 15:11:44 GMT+0000 (UTC)] INFO keep alive ping! 2012-12-26T15:11:44+00:00 heroku[router]: at=info method=POST path=/hubot/ping host=intuit-hubot.herokuapp.com fwd=23.22.6.43 dyno=web.1 queue=0 wait=3ms connect=7ms service=12ms status=200 bytes=14 2012-12-26T15:31:44+00:00 app[web.1]: [Wed Dec 26 2012 15:31:44 GMT+0000 (UTC)] INFO keep alive ping! 2012-12-26T15:51:44+00:00 app[web.1]: [Wed Dec 26 2012 15:51:44 GMT+0000 (UTC)] INFO keep alive ping! 2012-12-26T16:03:40+00:00 app[web.1]: at TextListener.call (/app/node_modules/hubot/src/listener.coffee:19:14) 2012-12-26T16:03:40+00:00 app[web.1]: at Client.onRawStanza (/app/node_modules/hubot-hipchat/node_modules/wobot/node_modules/node-xmpp/lib/xmpp/client.js:159:14) 2012-12-26T16:03:40+00:00 app[web.1]: at HipChat.receive (/app/node_modules/hubot/src/adapter.coffee:37:25) 2012-12-26T16:03:40+00:00 app[web.1]: TypeError: Cannot call method 'split' of undefined 2012-12-26T16:03:40+00:00 app[web.1]: at Bot. (/app/node_modules/hubot-hipchat/src/hipchat.coffee:135:21) 2012-12-26T16:03:40+00:00 app[web.1]: at Bot.emit (events.js:70:17) 2012-12-26T16:03:40+00:00 app[web.1]: at Client.emit (events.js:67:17) 2012-12-26T16:03:40+00:00 app[web.1]: at Bot. (/app/node_modules/hubot-hipchat/node_modules/wobot/lib/bot.js:122:12) 2012-12-26T16:03:40+00:00 app[web.1]: at Robot.receive (/app/node_modules/hubot/src/robot.coffee:112:33) 2012-12-26T16:03:40+00:00 app[web.1]: at TextListener.callback (/app/scripts/list-jira-bugs.coffee:19:56) 2012-12-26T16:03:40+00:00 app[web.1]: [Wed Dec 26 2012 16:03:40 GMT+0000 (UTC)] ERROR Unable to call the listener: TypeError: Cannot call method 'split' of undefined 2012-12-26T16:03:40+00:00 app[web.1]: at Client. (native)


package.json

{ "name": "hosted-hubot", "version": "2.3.2", "author": "GitHub Inc.", "keywords": "github hubot campfire bot", "description": "A simple helpful Robot for your Company", "licenses": [{ "type": "MIT", "url": "http://github.com/github/hubot/raw/master/LICENSE" }],

"repository" : { "type": "git", "url": "https://github.com/github/hubot.git" },

"dependencies": { "hubot-hipchat": ">= 1.1.3", "hubot": ">= 2.3.4", "hubot-scripts": ">= 2.1.0", "optparse": "1.0.3", "htmlparser": "1.7.6", "githubot": ">=0.1.5", "jsdom": ">=0.2.14", "underscore": "~> 1.4.2", "underscore.string": "~> 2.3.0", "soupselect": "0.2.0", "redis": "0.7.2"

},

"engines": { "node": "0.6.x", "npm": "1.0.x" } }


list-jira-bugs.coffee

Description:

Get all bugs from JIRA assigned to user

Dependencies:

None

Configuration:

HUBOT_JIRA_DOMAIN

HUBOT_JIRA_USER

HUBOT_JIRA_PASSWORD

HUBOT_JIRA_ISSUE_TYPES

HUBOT_JIRA_ISSUE_PRIORITIES

Commands:

hubot list my bugs - Retrieve the list of all a user's bugs from JIRA ('my' is optional)

hubot list my bugs about - Retrieve list of all a user's bugs from JIRA where the summary or description field contains ('my' is optional)

hubot list my priority bugs - Retrieve the list of a user's priority bugs from JIRA ('my' is optional)

hubot list my priority bugs about - Retrieve list of all a user's priority bugs from JIRA where the summary or description field contains ('my' is optional)

Author:

crcastle

e.g. "bug|task|sub task|support ticket|new feature|epic"

issueTypes = process.env.HUBOT_JIRA_ISSUE_TYPES issueTypes or= "bug|task|sub task|support ticket|new feature|epic" #some defaults

e.g. "blocker|high|medium|minor|trivial"

issuePriorities = process.env.HUBOT_JIRA_ISSUE_PRIORITIES issuePriorities or= "blocker|high|medium|minor|trivial" #some defaults

/list( my)?( (blocker|high|medium|minor|trivial)( priority)?)? (bug|task|sub task|support ticket|new feature|epic|issue)s( about (.*))?/i

regexpString = "list( my)?( (" + issuePriorities + ")( priority)?)? (" + issueTypes + "|issue)s( about (.*))?" regexp = new RegExp(regexpString, "i")

module.exports = (robot) ->

robot.respond regexp, (msg) ->
    username = if msg.match[1] then msg.message.user.email.split('@')[0] else null
    issueType = if msg.match[5] and msg.match[5] != "issue" then msg.match[5] else null
    msg.send "Searching for issues..."
    getIssues msg, issueType, username, msg.match[3], msg.match[6], (response) ->
        msg.send response

getIssues = (msg, issueType, assignee, priority, phrase, callback) -> username = process.env.HUBOT_JIRA_USER password = process.env.HUBOT_JIRA_PASSWORD domain = process.env.HUBOT_JIRA_DOMAIN

# do some error handling
unless username
    msg.send "HUBOT_JIRA_USER environment variable must be set to a valid JIRA user's username."
    return
unless password
    msg.send "HUBOT_JIRA_PASSWORD environment variable must be set to a valid JIRA user's password."
    return
unless domain
    msg.send "HUBOT_JIRA_DOMAIN environment variables must be set to a valid <ORG>.jira.com domain."
    return

jiraTypeList = toJiraTypeList(process.env.HUBOT_JIRA_ISSUE_TYPES.split('|'))
type = if issueType? then 'issueType="' + issueType + '"' else 'issueType in (' + jiraTypeList + ')'
user = if assignee? then ' and assignee="' + assignee + '"' else ''
prio = if priority? then ' and priority=' + priority else ''
search = if phrase? then ' and (summary~"' + phrase + '" or description~"' + phrase + '")' else ''

path = '/rest/api/latest/search'
url = "https://" + domain + path
queryString = type + ' and status!=closed' + user + prio + search
auth = "Basic " + new Buffer(username + ':' + password).toString('base64')

getJSON msg, url, queryString, auth, (err, json) ->
    if err
        msg.send "error getting issue list from JIRA"
        return
    if json.total? and (json.total==0 or json.total=="0")
        msg.send "No issues like that, or you don't have access to see the issues."
    issueList = []
    for issue in json.issues
        getJSON msg, issue.self, null, auth, (err, details) ->
            if err
                msg.send "error getting issue details from JIRA"
                return
            issueList.push( {key: details.key, summary: details.fields.summary.value} )
            callback(formatIssueList(issueList, domain)) if issueList.length == json.issues.length

formatIssueList = (issueArray, domain) -> formattedIssueList = "" for issue in issueArray formattedIssueList += issue.summary + " -> https://" + domain + "/browse/" + issue.key + "\n" return formattedIssueList

getJSON = (msg, url, query, auth, callback) -> msg.http(url) .header('Authorization', auth) .query(jql: query) .get() (err, res, body) -> callback( err, JSON.parse(body) )

toJiraTypeList = (arr) -> newArr = [] for issueType in arr newArr.push '"' + issueType + '"' return newArr.join(',')


Heroku Vars

hubot Config Vars HEROKU_URL: xxx HUBOT_GOOGLE_SEARCH_KEY: xxx HUBOT_HIPCHAT_JID: xxx HUBOT_HIPCHAT_PASSWORD: xxx HUBOT_JIRA_MAXLIST: xxx HUBOT_JIRA_PASSWORD: xxx HUBOT_JIRA_URL: https://demandforce.jira.com HUBOT_JIRA_USER: xxx PATH: bin:node_modules/.bin:/usr/local/bin:/usr/bin:/bin REDISTOGO_URL: xxx

rafaelsantander commented 11 years ago

Added node-stringprep to the package.json file. I'm getting new error when pushing to heroku. any idea on how to resolve this?


package.json update

The logs showed an error that node-stingprep should be installed with npm. .... "dependencies": { "hubot-hipchat": ">= 1.1.3", "hubot": ">= 2.3.4", "hubot-scripts": ">= 2.1.0", "optparse": "1.0.3", "htmlparser": "1.7.6", "githubot": ">=0.1.5", "jsdom": ">=0.2.14", "underscore": "~> 1.4.2", "underscore.string": "~> 2.3.0", "soupselect": "0.2.0", "node-stringprep": ">=0.1.0", "redis": "0.7.2"

},

....


Heroku push log

-----> Installing dependencies with npm npm WARN htmlparser@1.6.2 package.json: bugs['web'] should probably be bugs['url'] npm WARN nodeunit@0.4.0 package.json: bugs['web'] should probably be bugs['url']

   > node-stringprep@0.1.5 preinstall /tmp/build_174kdmdmb3wir/node_modules/node-stringprep
   > node-waf clean || true; node-waf configure build

   Nothing to clean (project not configured)
   Checking for program g++ or c++          : /usr/bin/g++ 
   Checking for program cpp                 : /usr/bin/cpp 
   Checking for program ar                  : /usr/bin/ar 
   Checking for program ranlib              : /usr/bin/ranlib 
   Checking for g++                         : ok  
   Checking for node path                   : not found 
   Checking for node prefix                 : ok /tmp/node-node-tDFl 
   sh: icu-config: not found
   Traceback (most recent call last):
     File "/tmp/node-node-tDFl/bin/node-waf", line 16, in <module>
       Scripting.prepare(t, os.getcwd(), VERSION, wafdir)
     File "/tmp/node-node-tDFl/bin/../lib/node/wafadmin/Scripting.py", line 145, in prepare
       prepare_impl(t, cwd, ver, wafdir)
     File "/tmp/node-node-tDFl/bin/../lib/node/wafadmin/Scripting.py", line 135, in prepare_impl
       main()
     File "/tmp/node-node-tDFl/bin/../lib/node/wafadmin/Scripting.py", line 188, in main
       fun(ctx)
     File "/tmp/node-node-tDFl/bin/../lib/node/wafadmin/Scripting.py", line 241, in configure
       conf.sub_config([''])
     File "/tmp/node-node-tDFl/bin/../lib/node/wafadmin/Configure.py", line 221, in sub_config
       self.recurse(k, name='configure')
     File "/tmp/node-node-tDFl/bin/../lib/node/wafadmin/Utils.py", line 634, in recurse
       f(self)
     File "/tmp/build_174kdmdmb3wir/node_modules/node-stringprep/wscript", line 16, in configure
       if backtick('icu-config --version')[0] != '4':
   IndexError: string index out of range
   npm ERR! error installing node-stringprep@0.1.5 Error: node-stringprep@0.1.5 preinstall: `node-waf clean || true; node-waf configure build`
   npm ERR! error installing node-stringprep@0.1.5 `sh "-c" "node-waf clean || true; node-waf configure build"` failed with 1
   npm ERR! error installing node-stringprep@0.1.5     at ChildProcess.<anonymous> (/tmp/node-npm-XMPD/lib/utils/exec.js:49:20)
   npm ERR! error installing node-stringprep@0.1.5     at ChildProcess.emit (events.js:70:17)
   npm ERR! error installing node-stringprep@0.1.5     at maybeExit (child_process.js:358:16)
   npm ERR! error installing node-stringprep@0.1.5     at Process.onexit (child_process.js:394:5)
   npm ERR! node-stringprep@0.1.5 preinstall: `node-waf clean || true; node-waf configure build`
   npm ERR! `sh "-c" "node-waf clean || true; node-waf configure build"` failed with 1
   npm ERR! 
   npm ERR! Failed at the node-stringprep@0.1.5 preinstall script.
   npm ERR! This is most likely a problem with the node-stringprep package,
   npm ERR! not with npm itself.
   npm ERR! Tell the author that this fails on your system:
   npm ERR!     node-waf clean || true; node-waf configure build
   npm ERR! You can get their info via:
   npm ERR!     npm owner ls node-stringprep
   npm ERR! There is likely additional logging output above.
   npm ERR! 
   npm ERR! System Linux 2.6.32-348-ec2
   npm ERR! command "/tmp/node-node-tDFl/bin/node" "/tmp/node-npm-XMPD/cli.js" "install" "--production"
   npm ERR! cwd /tmp/build_174kdmdmb3wir
   npm ERR! node -v v0.6.20
   npm ERR! npm -v 1.0.106
   npm ERR! code ELIFECYCLE

   > node-expat@1.6.1 preinstall /tmp/build_174kdmdmb3wir/node_modules/hubot-hipchat/node_modules/node-expat
   > node-waf clean || true; node-waf configure build

   Nothing to clean (project not configured)
   Checking for program g++ or c++          : /usr/bin/g++ 
   Checking for program cpp                 : /usr/bin/cpp 
   Checking for program ar                  : /usr/bin/ar 
   Checking for program ranlib              : /usr/bin/ranlib 
   Checking for g++                         : ok  
   Checking for node path                   : not found 
   Checking for node prefix                 : ok /tmp/node-node-tDFl 
   Checking for header expat.h              : yes 
   'configure' finished successfully (0.346s)
   Waf: Entering directory `/tmp/build_174kdmdmb3wir/node_modules/hubot-hipchat/node_modules/node-expat/build'
   [1/2] cxx: node-expat.cc -> build/Release/node-expat_1.o
   [2/2] cxx_link: build/Release/node-expat_1.o -> build/Release/node_expat.node
   Waf: Leaving directory `/tmp/build_174kdmdmb3wir/node_modules/hubot-hipchat/node_modules/node-expat/build'
   'build' finished successfully (0.735s)

   > contextify@0.1.3 preinstall /tmp/build_174kdmdmb3wir/node_modules/jsdom/node_modules/contextify
   > node-waf clean || true; node-waf configure build

   Nothing to clean (project not configured)
   npm ERR! 
   npm ERR! Additional logging details can be found in:
   npm ERR!     /tmp/build_174kdmdmb3wir/npm-debug.log
   npm not ok
   Setting srcdir to                        : /tmp/build_174kdmdmb3wir/node_modules/jsdom/node_modules/contextify 
   Setting blddir to                        : /tmp/build_174kdmdmb3wir/node_modules/jsdom/node_modules/contextify/build 
   Checking for program g++ or c++          : /usr/bin/g++ 
   Checking for program cpp                 : /usr/bin/cpp 
   Checking for program ar                  : /usr/bin/ar 
   Checking for program ranlib              : /usr/bin/ranlib 
   Checking for g++                         : ok  
   Checking for node path                   : not found 
   Checking for node prefix                 : ok /tmp/node-node-tDFl 
   'configure' finished successfully (0.046s)
   Waf: Entering directory `/tmp/build_174kdmdmb3wir/node_modules/jsdom/node_modules/contextify/build'
   [1/2] cxx: src/contextify.cc -> build/Release/src/contextify_1.o
   [2/2] cxx_link: build/Release/src/contextify_1.o -> build/Release/contextify.node
   Waf: Leaving directory `/tmp/build_174kdmdmb3wir/node_modules/jsdom/node_modules/contextify/build'
   'build' finished successfully (0.433s)

! Failed to install --production dependencies with npm ! Heroku push rejected, failed to compile Node.js app

To git@heroku.com:intuit-hubot.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'git@heroku.com:intuit-hubot.git'

andrusha commented 11 years ago

Why is it closed? I have exact same problem on heroku:

2013-02-01T06:29:46+00:00 app[web.1]: bin/hubot: 3: npm: not found
2013-02-01T06:29:48+00:00 app[web.1]: Cannot load StringPrep-0.1.0 bindings. You may need to `npm install node-stringprep'

But if I try to add it as dependency I get

       make: Entering directory `/tmp/build_3eg8mt6lsakag/node_modules/node-stringprep/build'
         CXX(target) Release/obj.target/node-stringprep/node-stringprep.o
       ../node-stringprep.cc:3:28: warning: unicode/unistr.h: No such file or directory
       ../node-stringprep.cc:4:28: warning: unicode/usprep.h: No such file or directory
       ../node-stringprep.cc:5:27: warning: unicode/uidna.h: No such file or directory
       ../node-stringprep.cc:89: error: ISO C++ forbids declaration of 'UStringPrepProfileType' with no type
       ../node-stringprep.cc:89: error: expected ',' or '...' before 'profileType'
       ../node-stringprep.cc:154: error: ISO C++ forbids declaration of 'UStringPrepProfile' with no type
       ../node-stringprep.cc:154: error: expected ';' before '*' token
       ../node-stringprep.cc:155: error: 'UErrorCode' does not name a type
       ../node-stringprep.cc:157: error: use of enum 'UStringPrepProfileType' without previous declaration
       ../node-stringprep.cc: In member function 'bool StringPrep::good() const':
       ../node-stringprep.cc:39: error: 'error' was not declared in this scope
       ../node-stringprep.cc:39: error: 'U_SUCCESS' was not declared in this scope
       ../node-stringprep.cc: In member function 'const char* StringPrep::errorName() const':
       ../node-stringprep.cc:44: error: 'error' was not declared in this scope
       ../node-stringprep.cc:44: error: 'u_errorName' was not declared in this scope
       ../node-stringprep.cc: In static member function 'static v8::Handle<v8::Value> StringPrep::New(const v8::Arguments&)':
       ../node-stringprep.cc:62: error: 'UStringPrepProfileType' was not declared in this scope
       ../node-stringprep.cc:62: error: expected ';' before 'profileType'
       ../node-stringprep.cc:65: error: 'profileType' was not declared in this scope
       ../node-stringprep.cc:72: error: 'profileType' was not declared in this scope
       ../node-stringprep.cc: In constructor 'StringPrep::StringPrep(int)':
       ../node-stringprep.cc:90: error: class 'StringPrep' does not have any field named 'error'
       ../node-stringprep.cc:90: error: 'U_ZERO_ERROR' was not declared in this scope
       ../node-stringprep.cc:92: error: 'profile' was not declared in this scope
       ../node-stringprep.cc:92: error: 'profileType' was not declared in this scope
       ../node-stringprep.cc:92: error: 'error' was not declared in this scope
       ../node-stringprep.cc:92: error: 'usprep_openByType' was not declared in this scope
       ../node-stringprep.cc: In destructor 'virtual StringPrep::~StringPrep()':
       ../node-stringprep.cc:99: error: 'profile' was not declared in this scope
       ../node-stringprep.cc:100: error: 'usprep_close' was not declared in this scope
       ../node-stringprep.cc: In member function 'v8::Handle<v8::Value> StringPrep::prepare(v8::String::Value&)':
       ../node-stringprep.cc:122: error: 'UChar' was not declared in this scope
       ../node-stringprep.cc:122: error: 'dest' was not declared in this scope
       ../node-stringprep.cc:125: error: expected type-specifier before 'UChar'
       ../node-stringprep.cc:125: error: expected ';' before 'UChar'
       ../node-stringprep.cc:126: error: 'profile' was not declared in this scope
       ../node-stringprep.cc:129: error: 'USPREP_DEFAULT' was not declared in this scope
       ../node-stringprep.cc:129: error: 'error' was not declared in this scope
       ../node-stringprep.cc:129: error: 'usprep_prepare' was not declared in this scope
       ../node-stringprep.cc:131: error: 'U_BUFFER_OVERFLOW_ERROR' was not declared in this scope
       ../node-stringprep.cc:135: error: type '<type error>' argument given to 'delete', expected pointer
       ../node-stringprep.cc:141: error: type '<type error>' argument given to 'delete', expected pointer
       ../node-stringprep.cc:149: error: type '<type error>' argument given to 'delete', expected pointer
       ../node-stringprep.cc: In static member function 'static int StringPrep::parseProfileType(v8::String::Utf8Value&)':
       ../node-stringprep.cc:161: error: 'USPREP_RFC3491_NAMEPREP' was not declared in this scope
       ../node-stringprep.cc:163: error: 'USPREP_RFC3530_NFS4_CS_PREP' was not declared in this scope
       ../node-stringprep.cc:165: error: 'USPREP_RFC3530_NFS4_CS_PREP_CI' was not declared in this scope
       ../node-stringprep.cc:167: error: 'USPREP_RFC3530_NFS4_CIS_PREP' was not declared in this scope
       ../node-stringprep.cc:169: error: 'USPREP_RFC3530_NFS4_MIXED_PREP_PREFIX' was not declared in this scope
       ../node-stringprep.cc:171: error: 'USPREP_RFC3530_NFS4_MIXED_PREP_SUFFIX' was not declared in this scope
       ../node-stringprep.cc:173: error: 'USPREP_RFC3722_ISCSI' was not declared in this scope
       ../node-stringprep.cc:175: error: 'USPREP_RFC3920_NODEPREP' was not declared in this scope
       ../node-stringprep.cc:177: error: 'USPREP_RFC3920_RESOURCEPREP' was not declared in this scope
       ../node-stringprep.cc:179: error: 'USPREP_RFC4011_MIB' was not declared in this scope
       ../node-stringprep.cc:181: error: 'USPREP_RFC4013_SASLPREP' was not declared in this scope
       ../node-stringprep.cc:183: error: 'USPREP_RFC4505_TRACE' was not declared in this scope
       ../node-stringprep.cc:185: error: 'USPREP_RFC4518_LDAP' was not declared in this scope
       ../node-stringprep.cc:187: error: 'USPREP_RFC4518_LDAP_CI' was not declared in this scope
       ../node-stringprep.cc: In function 'v8::Handle<v8::Value> ToUnicode(const v8::Arguments&)':
       ../node-stringprep.cc:205: error: 'UChar' was not declared in this scope
       ../node-stringprep.cc:205: error: 'dest' was not declared in this scope
       ../node-stringprep.cc:208: error: expected type-specifier before 'UChar'
       ../node-stringprep.cc:208: error: expected ';' before 'UChar'
       ../node-stringprep.cc:209: error: 'UErrorCode' was not declared in this scope
       ../node-stringprep.cc:209: error: expected ';' before 'error'
       ../node-stringprep.cc:212: error: 'UIDNA_DEFAULT' was not declared in this scope
       ../node-stringprep.cc:213: error: 'error' was not declared in this scope
       ../node-stringprep.cc:213: error: 'uidna_toUnicode' was not declared in this scope
       ../node-stringprep.cc:215: error: 'U_BUFFER_OVERFLOW_ERROR' was not declared in this scope
       ../node-stringprep.cc:219: error: type '<type error>' argument given to 'delete', expected pointer
       ../node-stringprep.cc:222: error: 'U_FAILURE' was not declared in this scope
       ../node-stringprep.cc:225: error: type '<type error>' argument given to 'delete', expected pointer
       ../node-stringprep.cc:226: error: 'u_errorName' was not declared in this scope
       ../node-stringprep.cc:234: error: type '<type error>' argument given to 'delete', expected pointer
       cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c
       make: *** [Release/obj.target/node-stringprep/node-stringprep.o] Error 1
       make: Leaving directory `/tmp/build_3eg8mt6lsakag/node_modules/node-stringprep/build'
       gyp ERR! build error 
       gyp ERR! stack Error: `make` failed with exit code: 2
       gyp ERR! stack     at ChildProcess.onExit (/tmp/node-npm-19CT/node_modules/node-gyp/lib/build.js:236:23)
       gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:99:17)
       gyp ERR! stack     at Process._handle.onexit (child_process.js:678:10)
       gyp ERR! System Linux 2.6.32-348-ec2
       gyp ERR! command "node" "/tmp/node-npm-19CT/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
       gyp ERR! cwd /tmp/build_3eg8mt6lsakag/node_modules/node-stringprep
       gyp ERR! node -v v0.8.14
       gyp ERR! node-gyp -v v0.7.1
       gyp ERR! not ok 
       npm ERR! node-stringprep@0.1.5 install: `node-gyp rebuild`
       npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1
       npm ERR! 
       npm ERR! Failed at the node-stringprep@0.1.5 install script.
       npm ERR! This is most likely a problem with the node-stringprep package,
       npm ERR! not with npm itself.
       npm ERR! Tell the author that this fails on your system:
       npm ERR!     node-gyp rebuild
       npm ERR! You can get their info via:
       npm ERR!     npm owner ls node-stringprep
       npm ERR! There is likely additional logging output above.
tombell commented 11 years ago

What version of node is in your "engines" part of package.json?

andrusha commented 11 years ago
{
  "name":        "hosted-hubot",
  "version":     "2.4.6",
  "author":      "GitHub Inc.",
  "keywords":    "github hubot campfire bot",
  "description": "A simple helpful Robot for your Company",
  "licenses":     [{
    "type":       "MIT",
    "url":        "http://github.com/github/hubot/raw/master/LICENSE"
  }],

  "repository" : {
    "type": "git",
    "url":  "https://github.com/github/hubot.git"
  },

  "dependencies": {
    "hubot-hipchat": ">= 2.4.5",
    "githubot": ">= 0.3.0",
    "hubot": ">=2.4.6",
    "hubot-scripts": ">= 2.4.1",
    "optparse": "1.0.3",
    "node-github":""
  },

  "engines": {
    "node": ">= 0.8.x",
    "npm": "1.1.x"
  }
}
tombell commented 11 years ago

Seems like an issue with compiling StringPrep on Heroku.

andrusha commented 11 years ago

This happens on Mac OS X 10.8.2 too. And as you can see in https://github.com/astro/node-stringprep/issues pretty much everyone has problems installing it. Maybe you could remove this dependency from hubot-scripts?

tombell commented 11 years ago

This isn't a hubot-scripts dependency. One of the scripts in hubot-scripts requires the module, you could remove the script from yoru hubot-scripts.json