{"action":"created","comment":{"url":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/comments/47141776","id":47141776,"diff_hunk":"@@ -37,6 +40,143 @@ packages =\n     zmq\n resources =\n     artwork\n+\n+[py2exe]\n+dll_excludes =\n+    crypt32.dll,\n+    iphlpapi.dll,\n+    jvm.dll,\n+    kernelbase.dll,\n+    mpr.dll,\n+    msasn1.dll,\n+    msvcm90.dll,\n+    msvcp90.dll,\n+    msvcr90.dll,\n+    nsi.dll,\n+    uxtheme.dll,\n+    winnsi.dll\n+excludes =\n+    Cython,\n+    ilastik,\n+    IPython,\n+    matplotlib.backends.backend_cairo,\n+    matplotlib.backends.backend_qt*,\n+    matplotlib.backends.backend_tk*,\n+    pylab,\n+    Tkinter,\n+    vigra\n+includes =\n+    h5py,\n+    h5py.*,\n+    lxml,\n+    lxml.*,\n+    scipy.io.matlab.streams,\n+    scipy.linalg.*,\n+    scipy.special,\n+    scipy.special.*,\n+    scipy.sparse.csgraph._validation,\n+    skimage.draw,\n+    skimage._shared.geometry,\n+    skimage.filters.rank.*,\n+    sklearn.*,\n+    sklearn.neighbors,\n+    sklearn.neighbors.*,\n+    sklearn.utils.*,\n+    sklearn.utils.sparsetools.*\n+packages =\n+    cellprofiler,\n+    cellprofiler.cpmath,\n+    cellprofiler.gui,\n+    cellprofiler.icons,\n+    cellprofiler.matlab,\n+    cellprofiler.modules,\n+    cellprofiler.utilities,\n+    centrosome,\n+    contrib,\n+    h5py,\n+    imagej,\n+    libtiff,\n+    lxml\n+skip_archive = 1\n+\n+[py2exe_ilastik]","path":"setup.cfg","position":70,"original_position":70,"commit_id":"c6b826bbb1b7f475c959a0996649259f658e2c66","original_commit_id":"fedec2abcdb0d0661b790f0696e477569dabd60f","user":{"login":"LeeKamentsky","id":660469,"avatar_url":"https://avatars.githubusercontent.com/u/660469?v=3","gravatar_id":"","url":"https://api.github.com/users/LeeKamentsky","html_url":"https://github.com/LeeKamentsky","followers_url":"https://api.github.com/users/LeeKamentsky/followers","following_url":"https://api.github.com/users/LeeKamentsky/following{/other_user}","gists_url":"https://api.github.com/users/LeeKamentsky/gists{/gist_id}","starred_url":"https://api.github.com/users/LeeKamentsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LeeKamentsky/subscriptions","organizations_url":"https://api.github.com/users/LeeKamentsky/orgs","repos_url":"https://api.github.com/users/LeeKamentsky/repos","events_url":"https://api.github.com/users/LeeKamentsky/events{/privacy}","received_events_url":"https://api.github.com/users/LeeKamentsky/received_events","type":"User","site_admin":false},"body":"I think moving `[py2exe_ilastik]` out of master is ok for now - I can work on it on a branch.\r\n\r\nThere's Ilastik the application and there's Ilastik the library that's needed for classify_pixels to run. In an ideal world, you'd have \"ilastik==0.5\" in the \"install_requires\" list and then we'd modify the `[py2exe]` section to look like `[py2exe_ilastik]`. Packaging the Ilastik dependency, Vigra so it can be pip installed would be very difficult - building Vigra requires CMake and installation of system packages like libhdf5. Until we get to that, I am hoping we can have a non-standard (but reproducible) build process for Ilastik and its dependencies, a command that packages a binary executable that can run classify_pixels and a setup script that allows CellProfiler to be pip installed on a bare Python without Ilastik support.\r\n\r\nBut yes - fine to have a CellProfiler distribution without the Ilastik application as long as we can provide a version of Ilastik that can produce classifiers compatible with classify_pixels.","created_at":"2015-12-09T19:47:59Z","updated_at":"2015-12-09T19:47:59Z","html_url":"https://github.com/CellProfiler/CellProfiler/pull/1721#discussion_r47141776","pull_request_url":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/1721","_links":{"self":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/comments/47141776"},"html":{"href":"https://github.com/CellProfiler/CellProfiler/pull/1721#discussion_r47141776"},"pull_request":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/1721"}}},"pull_request":{"url":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/1721","id":52417447,"html_url":"https://github.com/CellProfiler/CellProfiler/pull/1721","diff_url":"https://github.com/CellProfiler/CellProfiler/pull/1721.diff","patch_url":"https://github.com/CellProfiler/CellProfiler/pull/1721.patch","issue_url":"https://api.github.com/repos/CellProfiler/CellProfiler/issues/1721","number":1721,"state":"open","locked":false,"title":"WIP: Py2exe command for windows binary","user":{"login":"LeeKamentsky","id":660469,"avatar_url":"https://avatars.githubusercontent.com/u/660469?v=3","gravatar_id":"","url":"https://api.github.com/users/LeeKamentsky","html_url":"https://github.com/LeeKamentsky","followers_url":"https://api.github.com/users/LeeKamentsky/followers","following_url":"https://api.github.com/users/LeeKamentsky/following{/other_user}","gists_url":"https://api.github.com/users/LeeKamentsky/gists{/gist_id}","starred_url":"https://api.github.com/users/LeeKamentsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LeeKamentsky/subscriptions","organizations_url":"https://api.github.com/users/LeeKamentsky/orgs","repos_url":"https://api.github.com/users/LeeKamentsky/repos","events_url":"https://api.github.com/users/LeeKamentsky/events{/privacy}","received_events_url":"https://api.github.com/users/LeeKamentsky/received_events","type":"User","site_admin":false},"body":"Questions / To Dos:\r\n* Is it OK to have lots of files? It simplifies logic to operate differently if frozen.\r\n* The distribution requires the MSVCRT redistributable. py2exe recommends this: http://www.py2exe.org/index.cgi/Tutorial#Step5 but I bundled the redistrutable in the MSI and did a separate install step previously. Advantages of their approach - the DLLs are local and you don't get DLL hell from whatever is installed (and don't create DLL hell either).\r\n* MSI bundling. We used InnoSetup previously. It works, it does a nice job with file associations, uninstall, icons and other niceties. It's freeware. But that was 5 years ago and there may be an open-source solution.\r\n* It's fat - weighs in at 540 mb. Meh, the old one, once installed was 530 mb.\r\n* Java - the old install came with a local version of Java. Do we revisit that decision? (see http://stackoverflow.com/questions/6003816/how-should-i-bundle-java-with-my-windows-application)","created_at":"2015-12-02T16:19:05Z","updated_at":"2015-12-09T19:47:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"57210089cae9f6463dbbd4ce266e522954c1c524","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/1721/commits","review_comments_url":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/1721/comments","review_comment_url":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CellProfiler/CellProfiler/issues/1721/comments","statuses_url":"https://api.github.com/repos/CellProfiler/CellProfiler/statuses/c6b826bbb1b7f475c959a0996649259f658e2c66","head":{"label":"CellProfiler:features/py2exe","ref":"features/py2exe","sha":"c6b826bbb1b7f475c959a0996649259f658e2c66","user":{"login":"CellProfiler","id":710590,"avatar_url":"https://avatars.githubusercontent.com/u/710590?v=3","gravatar_id":"","url":"https://api.github.com/users/CellProfiler","html_url":"https://github.com/CellProfiler","followers_url":"https://api.github.com/users/CellProfiler/followers","following_url":"https://api.github.com/users/CellProfiler/following{/other_user}","gists_url":"https://api.github.com/users/CellProfiler/gists{/gist_id}","starred_url":"https://api.github.com/users/CellProfiler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CellProfiler/subscriptions","organizations_url":"https://api.github.com/users/CellProfiler/orgs","repos_url":"https://api.github.com/users/CellProfiler/repos","events_url":"https://api.github.com/users/CellProfiler/events{/privacy}","received_events_url":"https://api.github.com/users/CellProfiler/received_events","type":"Organization","site_admin":false},"repo":{"id":1571820,"name":"CellProfiler","full_name":"CellProfiler/CellProfiler","owner":{"login":"CellProfiler","id":710590,"avatar_url":"https://avatars.githubusercontent.com/u/710590?v=3","gravatar_id":"","url":"https://api.github.com/users/CellProfiler","html_url":"https://github.com/CellProfiler","followers_url":"https://api.github.com/users/CellProfiler/followers","following_url":"https://api.github.com/users/CellProfiler/following{/other_user}","gists_url":"https://api.github.com/users/CellProfiler/gists{/gist_id}","starred_url":"https://api.github.com/users/CellProfiler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CellProfiler/subscriptions","organizations_url":"https://api.github.com/users/CellProfiler/orgs","repos_url":"https://api.github.com/users/CellProfiler/repos","events_url":"https://api.github.com/users/CellProfiler/events{/privacy}","received_events_url":"https://api.github.com/users/CellProfiler/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CellProfiler/CellProfiler","description":"CellProfiler is open-source cellular image analysis software.","fork":false,"url":"https://api.github.com/repos/CellProfiler/CellProfiler","forks_url":"https://api.github.com/repos/CellProfiler/CellProfiler/forks","keys_url":"https://api.github.com/repos/CellProfiler/CellProfiler/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CellProfiler/CellProfiler/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CellProfiler/CellProfiler/teams","hooks_url":"https://api.github.com/repos/CellProfiler/CellProfiler/hooks","issue_events_url":"https://api.github.com/repos/CellProfiler/CellProfiler/issues/events{/number}","events_url":"https://api.github.com/repos/CellProfiler/CellProfiler/events","assignees_url":"https://api.github.com/repos/CellProfiler/CellProfiler/assignees{/user}","branches_url":"https://api.github.com/repos/CellProfiler/CellProfiler/branches{/branch}","tags_url":"https://api.github.com/repos/CellProfiler/CellProfiler/tags","blobs_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/refs{/sha}","trees_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CellProfiler/CellProfiler/statuses/{sha}","languages_url":"https://api.github.com/repos/CellProfiler/CellProfiler/languages","stargazers_url":"https://api.github.com/repos/CellProfiler/CellProfiler/stargazers","contributors_url":"https://api.github.com/repos/CellProfiler/CellProfiler/contributors","subscribers_url":"https://api.github.com/repos/CellProfiler/CellProfiler/subscribers","subscription_url":"https://api.github.com/repos/CellProfiler/CellProfiler/subscription","commits_url":"https://api.github.com/repos/CellProfiler/CellProfiler/commits{/sha}","git_commits_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/commits{/sha}","comments_url":"https://api.github.com/repos/CellProfiler/CellProfiler/comments{/number}","issue_comment_url":"https://api.github.com/repos/CellProfiler/CellProfiler/issues/comments{/number}","contents_url":"https://api.github.com/repos/CellProfiler/CellProfiler/contents/{+path}","compare_url":"https://api.github.com/repos/CellProfiler/CellProfiler/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CellProfiler/CellProfiler/merges","archive_url":"https://api.github.com/repos/CellProfiler/CellProfiler/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CellProfiler/CellProfiler/downloads","issues_url":"https://api.github.com/repos/CellProfiler/CellProfiler/issues{/number}","pulls_url":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls{/number}","milestones_url":"https://api.github.com/repos/CellProfiler/CellProfiler/milestones{/number}","notifications_url":"https://api.github.com/repos/CellProfiler/CellProfiler/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CellProfiler/CellProfiler/labels{/name}","releases_url":"https://api.github.com/repos/CellProfiler/CellProfiler/releases{/id}","created_at":"2011-04-05T12:10:12Z","updated_at":"2015-12-09T09:09:19Z","pushed_at":"2015-12-09T19:21:09Z","git_url":"git://github.com/CellProfiler/CellProfiler.git","ssh_url":"git@github.com:CellProfiler/CellProfiler.git","clone_url":"https://github.com/CellProfiler/CellProfiler.git","svn_url":"https://github.com/CellProfiler/CellProfiler","homepage":"http://cellprofiler.org","size":141609,"stargazers_count":113,"watchers_count":113,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":87,"mirror_url":null,"open_issues_count":439,"forks":87,"open_issues":439,"watchers":113,"default_branch":"master"}},"base":{"label":"CellProfiler:master","ref":"master","sha":"00a736ee7247a271ef39699ca2a933823eba4fac","user":{"login":"CellProfiler","id":710590,"avatar_url":"https://avatars.githubusercontent.com/u/710590?v=3","gravatar_id":"","url":"https://api.github.com/users/CellProfiler","html_url":"https://github.com/CellProfiler","followers_url":"https://api.github.com/users/CellProfiler/followers","following_url":"https://api.github.com/users/CellProfiler/following{/other_user}","gists_url":"https://api.github.com/users/CellProfiler/gists{/gist_id}","starred_url":"https://api.github.com/users/CellProfiler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CellProfiler/subscriptions","organizations_url":"https://api.github.com/users/CellProfiler/orgs","repos_url":"https://api.github.com/users/CellProfiler/repos","events_url":"https://api.github.com/users/CellProfiler/events{/privacy}","received_events_url":"https://api.github.com/users/CellProfiler/received_events","type":"Organization","site_admin":false},"repo":{"id":1571820,"name":"CellProfiler","full_name":"CellProfiler/CellProfiler","owner":{"login":"CellProfiler","id":710590,"avatar_url":"https://avatars.githubusercontent.com/u/710590?v=3","gravatar_id":"","url":"https://api.github.com/users/CellProfiler","html_url":"https://github.com/CellProfiler","followers_url":"https://api.github.com/users/CellProfiler/followers","following_url":"https://api.github.com/users/CellProfiler/following{/other_user}","gists_url":"https://api.github.com/users/CellProfiler/gists{/gist_id}","starred_url":"https://api.github.com/users/CellProfiler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CellProfiler/subscriptions","organizations_url":"https://api.github.com/users/CellProfiler/orgs","repos_url":"https://api.github.com/users/CellProfiler/repos","events_url":"https://api.github.com/users/CellProfiler/events{/privacy}","received_events_url":"https://api.github.com/users/CellProfiler/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CellProfiler/CellProfiler","description":"CellProfiler is open-source cellular image analysis software.","fork":false,"url":"https://api.github.com/repos/CellProfiler/CellProfiler","forks_url":"https://api.github.com/repos/CellProfiler/CellProfiler/forks","keys_url":"https://api.github.com/repos/CellProfiler/CellProfiler/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CellProfiler/CellProfiler/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CellProfiler/CellProfiler/teams","hooks_url":"https://api.github.com/repos/CellProfiler/CellProfiler/hooks","issue_events_url":"https://api.github.com/repos/CellProfiler/CellProfiler/issues/events{/number}","events_url":"https://api.github.com/repos/CellProfiler/CellProfiler/events","assignees_url":"https://api.github.com/repos/CellProfiler/CellProfiler/assignees{/user}","branches_url":"https://api.github.com/repos/CellProfiler/CellProfiler/branches{/branch}","tags_url":"https://api.github.com/repos/CellProfiler/CellProfiler/tags","blobs_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/refs{/sha}","trees_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CellProfiler/CellProfiler/statuses/{sha}","languages_url":"https://api.github.com/repos/CellProfiler/CellProfiler/languages","stargazers_url":"https://api.github.com/repos/CellProfiler/CellProfiler/stargazers","contributors_url":"https://api.github.com/repos/CellProfiler/CellProfiler/contributors","subscribers_url":"https://api.github.com/repos/CellProfiler/CellProfiler/subscribers","subscription_url":"https://api.github.com/repos/CellProfiler/CellProfiler/subscription","commits_url":"https://api.github.com/repos/CellProfiler/CellProfiler/commits{/sha}","git_commits_url":"https://api.github.com/repos/CellProfiler/CellProfiler/git/commits{/sha}","comments_url":"https://api.github.com/repos/CellProfiler/CellProfiler/comments{/number}","issue_comment_url":"https://api.github.com/repos/CellProfiler/CellProfiler/issues/comments{/number}","contents_url":"https://api.github.com/repos/CellProfiler/CellProfiler/contents/{+path}","compare_url":"https://api.github.com/repos/CellProfiler/CellProfiler/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CellProfiler/CellProfiler/merges","archive_url":"https://api.github.com/repos/CellProfiler/CellProfiler/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CellProfiler/CellProfiler/downloads","issues_url":"https://api.github.com/repos/CellProfiler/CellProfiler/issues{/number}","pulls_url":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls{/number}","milestones_url":"https://api.github.com/repos/CellProfiler/CellProfiler/milestones{/number}","notifications_url":"https://api.github.com/repos/CellProfiler/CellProfiler/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CellProfiler/CellProfiler/labels{/name}","releases_url":"https://api.github.com/repos/CellProfiler/CellProfiler/releases{/id}","created_at":"2011-04-05T12:10:12Z","updated_at":"2015-12-09T09:09:19Z","pushed_at":"2015-12-09T19:21:09Z","git_url":"git://github.com/CellProfiler/CellProfiler.git","ssh_url":"git@github.com:CellProfiler/CellProfiler.git","clone_url":"https://github.com/CellProfiler/CellProfiler.git","svn_url":"https://github.com/CellProfiler/CellProfiler","homepage":"http://cellprofiler.org","size":141609,"stargazers_count":113,"watchers_count":113,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":87,"mirror_url":null,"open_issues_count":439,"forks":87,"open_issues":439,"watchers":113,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/1721"},"html":{"href":"https://github.com/CellProfiler/CellProfiler/pull/1721"},"issue":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/issues/1721"},"comments":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/issues/1721/comments"},"review_comments":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/1721/comments"},"review_comment":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/pulls/1721/commits"},"statuses":{"href":"https://api.github.com/repos/CellProfiler/CellProfiler/statuses/c6b826bbb1b7f475c959a0996649259f658e2c66"}}}}