{"action":"created","issue":{"url":"https://api.github.com/repos/msoos/cryptominisat/issues/397","repository_url":"https://api.github.com/repos/msoos/cryptominisat","labels_url":"https://api.github.com/repos/msoos/cryptominisat/issues/397/labels{/name}","comments_url":"https://api.github.com/repos/msoos/cryptominisat/issues/397/comments","events_url":"https://api.github.com/repos/msoos/cryptominisat/issues/397/events","html_url":"https://github.com/msoos/cryptominisat/pull/397","id":229327314,"number":397,"title":"5.0.1 cmake dev","user":{"login":"ysard","id":14988285,"avatar_url":"https://avatars1.githubusercontent.com/u/14988285?v=3","gravatar_id":"","url":"https://api.github.com/users/ysard","html_url":"https://github.com/ysard","followers_url":"https://api.github.com/users/ysard/followers","following_url":"https://api.github.com/users/ysard/following{/other_user}","gists_url":"https://api.github.com/users/ysard/gists{/gist_id}","starred_url":"https://api.github.com/users/ysard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ysard/subscriptions","organizations_url":"https://api.github.com/users/ysard/orgs","repos_url":"https://api.github.com/users/ysard/repos","events_url":"https://api.github.com/users/ysard/events{/privacy}","received_events_url":"https://api.github.com/users/ysard/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2017-05-17T11:56:12Z","updated_at":"2017-05-23T14:37:13Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/msoos/cryptominisat/pulls/397","html_url":"https://github.com/msoos/cryptominisat/pull/397","diff_url":"https://github.com/msoos/cryptominisat/pull/397.diff","patch_url":"https://github.com/msoos/cryptominisat/pull/397.patch"},"body":"Hi, i'm currently maintaining a project developped at the Inria/Irisa of Rennes - Bretagne Atlantique;\r\n[this project](https://gitlab.irisa.fr/0000B8EG/Cadbiom/tree/pypi_packaging)\r\nis developed in Python and is mainly based on pycryptosat.\r\n\r\nTo facilitate the maintenance work during the update of the dependencies I worked on the packaging of pycryptosat.\r\n\r\nThis code was made in February 2017 and is based on the numbered tag 5.0.1;\r\nchanges have been made on the master branch,\r\ntherefore I will work on the modifications to be made for a full merge.\r\n\r\n\r\nCurrently, In the modifications I am proposing, you will find these features:\r\n\r\n- Support of Python2 and Python3 (depending of the compilation environment), as requested in #369;\r\n- pycryptosat is still dependant of cmake to generate the setup.py, but it is now compiled in static mode\r\n(the Python binding is no longer linked to the library);\r\nthis update allows packagers to upload your solver on PyPi, as requested in #367\r\nSo you will find these directives in the Cmake environment:\r\n    - make python_interface: compilation of pycryptosat,\r\n    - make python_interface_install: compilation and installation of pycryptosat in the current environment,\r\n    - make python_interface_dist_package: make a distribution package for pypi\r\n    - make python_interface_test: run unit tests\r\n\r\nIn the Python binding:\r\n- Documentation of most of functions,\r\n- add_clauses(): add clauses from an iterable (avoid to call multiple add_clause()),\r\n- nb_vars(): a method to get the number of literals in the solver for debugging,\r\n- is_satisfiable(): a method to quickly get the satisfiability of the current problem without obtaining any solution,\r\n- msolve_selected(): a method used to find multiple solutions to a problem.\r\nThe solver is ran in a loop and each previous solution will be banned.\r\n- some improvements in the use of the Python API.\r\n\r\nThank you for your work on the solver,\r\nregards."},"comment":{"url":"https://api.github.com/repos/msoos/cryptominisat/issues/comments/303418535","html_url":"https://github.com/msoos/cryptominisat/pull/397#issuecomment-303418535","issue_url":"https://api.github.com/repos/msoos/cryptominisat/issues/397","id":303418535,"user":{"login":"ysard","id":14988285,"avatar_url":"https://avatars1.githubusercontent.com/u/14988285?v=3","gravatar_id":"","url":"https://api.github.com/users/ysard","html_url":"https://github.com/ysard","followers_url":"https://api.github.com/users/ysard/followers","following_url":"https://api.github.com/users/ysard/following{/other_user}","gists_url":"https://api.github.com/users/ysard/gists{/gist_id}","starred_url":"https://api.github.com/users/ysard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ysard/subscriptions","organizations_url":"https://api.github.com/users/ysard/orgs","repos_url":"https://api.github.com/users/ysard/repos","events_url":"https://api.github.com/users/ysard/events{/privacy}","received_events_url":"https://api.github.com/users/ysard/received_events","type":"User","site_admin":false},"created_at":"2017-05-23T14:37:13Z","updated_at":"2017-05-23T14:37:13Z","body":"Hi, In fact if the library is not compiled during the installation process of the Python package (ie if sources are not provided with it), you will find these cons:\r\n\r\n- users have to be redirected to Github and where they will have to manually install the library on the system or in a local folder,\r\n- this prevents the inclusion of the solver and its package in an automatic installation workflow,\r\n- this requires some additional waste of time or additional knowledge (like the use of git, cmake and make).\r\n\r\nFor large libraries requiring many system dependencies, such deployment process can be justified because it can be tricky to automate; but here, the compilation goes very well and is very easy with basic compilation flags.\r\n\r\nWith this setup.py users can install the solver and the Python binding with only one command:\r\n`pip install pycryptosat`\r\n\r\nAnd you can easily maintain your project with this couple of commands:\r\n`python setup.py sdist upload`\r\n\r\nThat's why i made the system library independent from the Python packaging and this facilitates the use case discussed in #397.\r\n\r\nregards."}}
{"actor":{"display_login":"ysard"}}