{"action":"created","comment":{"url":"https://api.github.com/repos/numenta/nupic/pulls/comments/22550532","id":22550532,"diff_hunk":"@@ -32,7 +32,7 @@ python --version\n \n # Build NuPIC\n cd ${TRAVIS_BUILD_DIR}\n-python setup.py install --user\n+ARCHFLAGS=\"-arch x86_64\" python setup.py install --user","path":"ci/travis/install-osx.sh","position":5,"original_position":5,"commit_id":"8802a165ad034752a3a45a4e821119b20f1d3c82","original_commit_id":"8802a165ad034752a3a45a4e821119b20f1d3c82","user":{"login":"david-ragazzi","id":3386273,"avatar_url":"https://avatars.githubusercontent.com/u/3386273?v=3","gravatar_id":"","url":"https://api.github.com/users/david-ragazzi","html_url":"https://github.com/david-ragazzi","followers_url":"https://api.github.com/users/david-ragazzi/followers","following_url":"https://api.github.com/users/david-ragazzi/following{/other_user}","gists_url":"https://api.github.com/users/david-ragazzi/gists{/gist_id}","starred_url":"https://api.github.com/users/david-ragazzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-ragazzi/subscriptions","organizations_url":"https://api.github.com/users/david-ragazzi/orgs","repos_url":"https://api.github.com/users/david-ragazzi/repos","events_url":"https://api.github.com/users/david-ragazzi/events{/privacy}","received_events_url":"https://api.github.com/users/david-ragazzi/received_events","type":"User","site_admin":false},"body":"I had added the instruction but it seems that it got lost in some place.. :-/","created_at":"2015-01-06T20:43:16Z","updated_at":"2015-01-06T20:43:16Z","html_url":"https://github.com/numenta/nupic/pull/1579#discussion_r22550532","pull_request_url":"https://api.github.com/repos/numenta/nupic/pulls/1579","_links":{"self":{"href":"https://api.github.com/repos/numenta/nupic/pulls/comments/22550532"},"html":{"href":"https://github.com/numenta/nupic/pull/1579#discussion_r22550532"},"pull_request":{"href":"https://api.github.com/repos/numenta/nupic/pulls/1579"}}},"pull_request":{"url":"https://api.github.com/repos/numenta/nupic/pulls/1579","id":25334711,"html_url":"https://github.com/numenta/nupic/pull/1579","diff_url":"https://github.com/numenta/nupic/pull/1579.diff","patch_url":"https://github.com/numenta/nupic/pull/1579.patch","issue_url":"https://api.github.com/repos/numenta/nupic/issues/1579","number":1579,"state":"open","locked":false,"title":"Pythonic build: Switch from cmake to distutils extensions for nupic installation","user":{"login":"david-ragazzi","id":3386273,"avatar_url":"https://avatars.githubusercontent.com/u/3386273?v=3","gravatar_id":"","url":"https://api.github.com/users/david-ragazzi","html_url":"https://github.com/david-ragazzi","followers_url":"https://api.github.com/users/david-ragazzi/followers","following_url":"https://api.github.com/users/david-ragazzi/following{/other_user}","gists_url":"https://api.github.com/users/david-ragazzi/gists{/gist_id}","starred_url":"https://api.github.com/users/david-ragazzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-ragazzi/subscriptions","organizations_url":"https://api.github.com/users/david-ragazzi/orgs","repos_url":"https://api.github.com/users/david-ragazzi/repos","events_url":"https://api.github.com/users/david-ragazzi/events{/privacy}","received_events_url":"https://api.github.com/users/david-ragazzi/received_events","type":"User","site_admin":false},"body":"Fixes https://github.com/numenta/nupic/issues/1573.\r\nDepends https://github.com/numenta/nupic/issues/1676\r\n\r\nThis PR aims to help we have Nupic \"pip installable\". For this it tries to leave the build/install process the more \"pythonic\" as possible using:\r\na) native support from Distutils/SetupTools to build all C++ extensions (https://github.com/numenta/nupic/issues/1573) \r\nb) Python scripts to perform jobs that were being performed by C++ executables (https://github.com/numenta/nupic/issues/1576).\r\n\r\nThe motivation of B is because it's very tricky install all current cpp executables and libraries using A solution. Some of these libraries (like `bindings`) are inevitable to be build as extensions, however c++ extensions like `htmtest` and `compare_nupic_core_version` can be replaced to python scripts. Different than bindings, these 2 extensions are complicating the process as they should be installed into souce repository (`bin` folder, to be exact) and not into `nupic` package install folder like the other modules. \r\n\r\nOnce that all extensions now can be build in a natural way, we can remove CMakeLists.txt from NuPIC Pyhton. This makes that CMake becomes essential only to build the NuPIC Core library: as this is an optional job, we could bypass CMake/Git use during PIP process decreasing the number of build/install steps and dependencies.\r\n\r\nI still am working on the pythonic version of `HtmTest`. Thus it's normal that some tests fail, because Travis still is referencing its c++ version. \r\n\r\n* * *\r\n\r\n## TODO:\r\n- [X] Figure out the `ARCHFLAGS=\"-arch x86_64\"` requirement on darwin64. Update: There's not way, distutils take the flags which python was build. So we cannot set this variable inside `setup.py`. \r\n- [X] Update supporting documentation (README, wikis) with any build changes. Update: README updated with ARCHFLAGS instructions.\r\n- [X] Simplification of this PR by move bindings refactoring to a new PR. Solved by https://github.com/numenta/nupic/pull/1610\r\n- [X] Simplification of this PR by move Travis scripts, CMakeLists.txt, and README update (replacement of `make` commands to python instructions and `custom_targets` remotion) to a new PR. Solved by https://github.com/numenta/nupic/pull/1622\r\n- [X] Simplification of this PR by move HtmTest to nupic.core on a new PR. Solved by https://github.com/numenta/nupic/pull/1676 and numenta/nupic.core#282","created_at":"2014-12-02T11:26:06Z","updated_at":"2015-01-06T20:43:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7d23d4d3764fe4d8d19aadd05de3d077ba9b1dd9","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/numenta/nupic/pulls/1579/commits","review_comments_url":"https://api.github.com/repos/numenta/nupic/pulls/1579/comments","review_comment_url":"https://api.github.com/repos/numenta/nupic/pulls/comments/{number}","comments_url":"https://api.github.com/repos/numenta/nupic/issues/1579/comments","statuses_url":"https://api.github.com/repos/numenta/nupic/statuses/8802a165ad034752a3a45a4e821119b20f1d3c82","head":{"label":"david-ragazzi:build_extensions","ref":"build_extensions","sha":"8802a165ad034752a3a45a4e821119b20f1d3c82","user":{"login":"david-ragazzi","id":3386273,"avatar_url":"https://avatars.githubusercontent.com/u/3386273?v=3","gravatar_id":"","url":"https://api.github.com/users/david-ragazzi","html_url":"https://github.com/david-ragazzi","followers_url":"https://api.github.com/users/david-ragazzi/followers","following_url":"https://api.github.com/users/david-ragazzi/following{/other_user}","gists_url":"https://api.github.com/users/david-ragazzi/gists{/gist_id}","starred_url":"https://api.github.com/users/david-ragazzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-ragazzi/subscriptions","organizations_url":"https://api.github.com/users/david-ragazzi/orgs","repos_url":"https://api.github.com/users/david-ragazzi/repos","events_url":"https://api.github.com/users/david-ragazzi/events{/privacy}","received_events_url":"https://api.github.com/users/david-ragazzi/received_events","type":"User","site_admin":false},"repo":{"id":18156369,"name":"nupic","full_name":"david-ragazzi/nupic","owner":{"login":"david-ragazzi","id":3386273,"avatar_url":"https://avatars.githubusercontent.com/u/3386273?v=3","gravatar_id":"","url":"https://api.github.com/users/david-ragazzi","html_url":"https://github.com/david-ragazzi","followers_url":"https://api.github.com/users/david-ragazzi/followers","following_url":"https://api.github.com/users/david-ragazzi/following{/other_user}","gists_url":"https://api.github.com/users/david-ragazzi/gists{/gist_id}","starred_url":"https://api.github.com/users/david-ragazzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-ragazzi/subscriptions","organizations_url":"https://api.github.com/users/david-ragazzi/orgs","repos_url":"https://api.github.com/users/david-ragazzi/repos","events_url":"https://api.github.com/users/david-ragazzi/events{/privacy}","received_events_url":"https://api.github.com/users/david-ragazzi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/david-ragazzi/nupic","description":"Numenta Platform for Intelligent Computing: a brain-inspired machine intelligence platform, and biologically accurate neural network based on cortical learning algorithms.","fork":true,"url":"https://api.github.com/repos/david-ragazzi/nupic","forks_url":"https://api.github.com/repos/david-ragazzi/nupic/forks","keys_url":"https://api.github.com/repos/david-ragazzi/nupic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/david-ragazzi/nupic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/david-ragazzi/nupic/teams","hooks_url":"https://api.github.com/repos/david-ragazzi/nupic/hooks","issue_events_url":"https://api.github.com/repos/david-ragazzi/nupic/issues/events{/number}","events_url":"https://api.github.com/repos/david-ragazzi/nupic/events","assignees_url":"https://api.github.com/repos/david-ragazzi/nupic/assignees{/user}","branches_url":"https://api.github.com/repos/david-ragazzi/nupic/branches{/branch}","tags_url":"https://api.github.com/repos/david-ragazzi/nupic/tags","blobs_url":"https://api.github.com/repos/david-ragazzi/nupic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/david-ragazzi/nupic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/david-ragazzi/nupic/git/refs{/sha}","trees_url":"https://api.github.com/repos/david-ragazzi/nupic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/david-ragazzi/nupic/statuses/{sha}","languages_url":"https://api.github.com/repos/david-ragazzi/nupic/languages","stargazers_url":"https://api.github.com/repos/david-ragazzi/nupic/stargazers","contributors_url":"https://api.github.com/repos/david-ragazzi/nupic/contributors","subscribers_url":"https://api.github.com/repos/david-ragazzi/nupic/subscribers","subscription_url":"https://api.github.com/repos/david-ragazzi/nupic/subscription","commits_url":"https://api.github.com/repos/david-ragazzi/nupic/commits{/sha}","git_commits_url":"https://api.github.com/repos/david-ragazzi/nupic/git/commits{/sha}","comments_url":"https://api.github.com/repos/david-ragazzi/nupic/comments{/number}","issue_comment_url":"https://api.github.com/repos/david-ragazzi/nupic/issues/comments/{number}","contents_url":"https://api.github.com/repos/david-ragazzi/nupic/contents/{+path}","compare_url":"https://api.github.com/repos/david-ragazzi/nupic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/david-ragazzi/nupic/merges","archive_url":"https://api.github.com/repos/david-ragazzi/nupic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/david-ragazzi/nupic/downloads","issues_url":"https://api.github.com/repos/david-ragazzi/nupic/issues{/number}","pulls_url":"https://api.github.com/repos/david-ragazzi/nupic/pulls{/number}","milestones_url":"https://api.github.com/repos/david-ragazzi/nupic/milestones{/number}","notifications_url":"https://api.github.com/repos/david-ragazzi/nupic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/david-ragazzi/nupic/labels{/name}","releases_url":"https://api.github.com/repos/david-ragazzi/nupic/releases{/id}","created_at":"2014-03-26T22:33:05Z","updated_at":"2014-12-23T11:50:00Z","pushed_at":"2015-01-06T19:00:07Z","git_url":"git://github.com/david-ragazzi/nupic.git","ssh_url":"git@github.com:david-ragazzi/nupic.git","clone_url":"https://github.com/david-ragazzi/nupic.git","svn_url":"https://github.com/david-ragazzi/nupic","homepage":"http://numenta.org/","size":139647,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"numenta:master","ref":"master","sha":"eba1e699f804bfd46e765cf8ee5784d02df12bdb","user":{"login":"numenta","id":1039191,"avatar_url":"https://avatars.githubusercontent.com/u/1039191?v=3","gravatar_id":"","url":"https://api.github.com/users/numenta","html_url":"https://github.com/numenta","followers_url":"https://api.github.com/users/numenta/followers","following_url":"https://api.github.com/users/numenta/following{/other_user}","gists_url":"https://api.github.com/users/numenta/gists{/gist_id}","starred_url":"https://api.github.com/users/numenta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/numenta/subscriptions","organizations_url":"https://api.github.com/users/numenta/orgs","repos_url":"https://api.github.com/users/numenta/repos","events_url":"https://api.github.com/users/numenta/events{/privacy}","received_events_url":"https://api.github.com/users/numenta/received_events","type":"Organization","site_admin":false},"repo":{"id":9252533,"name":"nupic","full_name":"numenta/nupic","owner":{"login":"numenta","id":1039191,"avatar_url":"https://avatars.githubusercontent.com/u/1039191?v=3","gravatar_id":"","url":"https://api.github.com/users/numenta","html_url":"https://github.com/numenta","followers_url":"https://api.github.com/users/numenta/followers","following_url":"https://api.github.com/users/numenta/following{/other_user}","gists_url":"https://api.github.com/users/numenta/gists{/gist_id}","starred_url":"https://api.github.com/users/numenta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/numenta/subscriptions","organizations_url":"https://api.github.com/users/numenta/orgs","repos_url":"https://api.github.com/users/numenta/repos","events_url":"https://api.github.com/users/numenta/events{/privacy}","received_events_url":"https://api.github.com/users/numenta/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/numenta/nupic","description":"Numenta Platform for Intelligent Computing: a brain-inspired machine intelligence platform, and biologically accurate neural network based on cortical learning algorithms.","fork":false,"url":"https://api.github.com/repos/numenta/nupic","forks_url":"https://api.github.com/repos/numenta/nupic/forks","keys_url":"https://api.github.com/repos/numenta/nupic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/numenta/nupic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/numenta/nupic/teams","hooks_url":"https://api.github.com/repos/numenta/nupic/hooks","issue_events_url":"https://api.github.com/repos/numenta/nupic/issues/events{/number}","events_url":"https://api.github.com/repos/numenta/nupic/events","assignees_url":"https://api.github.com/repos/numenta/nupic/assignees{/user}","branches_url":"https://api.github.com/repos/numenta/nupic/branches{/branch}","tags_url":"https://api.github.com/repos/numenta/nupic/tags","blobs_url":"https://api.github.com/repos/numenta/nupic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/numenta/nupic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/numenta/nupic/git/refs{/sha}","trees_url":"https://api.github.com/repos/numenta/nupic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/numenta/nupic/statuses/{sha}","languages_url":"https://api.github.com/repos/numenta/nupic/languages","stargazers_url":"https://api.github.com/repos/numenta/nupic/stargazers","contributors_url":"https://api.github.com/repos/numenta/nupic/contributors","subscribers_url":"https://api.github.com/repos/numenta/nupic/subscribers","subscription_url":"https://api.github.com/repos/numenta/nupic/subscription","commits_url":"https://api.github.com/repos/numenta/nupic/commits{/sha}","git_commits_url":"https://api.github.com/repos/numenta/nupic/git/commits{/sha}","comments_url":"https://api.github.com/repos/numenta/nupic/comments{/number}","issue_comment_url":"https://api.github.com/repos/numenta/nupic/issues/comments/{number}","contents_url":"https://api.github.com/repos/numenta/nupic/contents/{+path}","compare_url":"https://api.github.com/repos/numenta/nupic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/numenta/nupic/merges","archive_url":"https://api.github.com/repos/numenta/nupic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/numenta/nupic/downloads","issues_url":"https://api.github.com/repos/numenta/nupic/issues{/number}","pulls_url":"https://api.github.com/repos/numenta/nupic/pulls{/number}","milestones_url":"https://api.github.com/repos/numenta/nupic/milestones{/number}","notifications_url":"https://api.github.com/repos/numenta/nupic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/numenta/nupic/labels{/name}","releases_url":"https://api.github.com/repos/numenta/nupic/releases{/id}","created_at":"2013-04-05T23:14:27Z","updated_at":"2015-01-06T20:01:47Z","pushed_at":"2015-01-06T19:34:21Z","git_url":"git://github.com/numenta/nupic.git","ssh_url":"git@github.com:numenta/nupic.git","clone_url":"https://github.com/numenta/nupic.git","svn_url":"https://github.com/numenta/nupic","homepage":"http://numenta.org/","size":295313,"stargazers_count":2665,"watchers_count":2665,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":667,"mirror_url":null,"open_issues_count":288,"forks":667,"open_issues":288,"watchers":2665,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/numenta/nupic/pulls/1579"},"html":{"href":"https://github.com/numenta/nupic/pull/1579"},"issue":{"href":"https://api.github.com/repos/numenta/nupic/issues/1579"},"comments":{"href":"https://api.github.com/repos/numenta/nupic/issues/1579/comments"},"review_comments":{"href":"https://api.github.com/repos/numenta/nupic/pulls/1579/comments"},"review_comment":{"href":"https://api.github.com/repos/numenta/nupic/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/numenta/nupic/pulls/1579/commits"},"statuses":{"href":"https://api.github.com/repos/numenta/nupic/statuses/8802a165ad034752a3a45a4e821119b20f1d3c82"}}}}