{ "info": { "author": "Kale Kundert", "author_email": "kale.kundert@ucsf.edu", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Programming Language :: Python :: 3" ], "description": "***********************\nRosetta Developer Tools\n***********************\nThere are a number of reasons why the edit-compile-test cycle is not as \nconvenient as it could be in Rosetta. One is that the source code, the unit \ntests, and the pilot app executables are all kept in very different places, \nwhich requires you to keep changing directories as changes are made. Another \nis that a large amount of boilerplate has to be written when adding new \nclasses, and yet another is that incremental compilation times can be quite \nslow.\n\nThis package attempts to address some of these issues, in particular the ease \nwith which code can be compiled and tested. Towards this end, a set of scripts \nare provided which simplify the process of compiling, testing, and running \nRosetta. These scripts are aware of Rosetta's directory structure, so paths do \nnot need to be specified.\n\nThese scripts also use the ninja build system, which is much faster than scons \nat executing incremental builds. This takes some external work to configure \nproperly, but information is available on the Kortemme lab wiki page.\n\nInstallation\n============\nThese tools are available from PyPI, so you can install them using ``pip``. Be \nsure to use the ``pip`` associated with ``python3`` though, because by default \n``pip`` is usually associated with ``python2`` and will not work with these \ntools::\n\n $ pip3 install rosetta_dev_tools\n\nThis will install a handful of executable scripts in whichever ``bin/`` \ndirectory ``pip`` is configured to use. These scripts have pretty long names, \nso I usually alias them to something shorter to make typing them more \nconvenient. For example, put these lines in ``~/.bashrc``::\n\n alias rk='rdt_stub'\n alias rb='rdt_build debug'\n alias rr='rdt_build release'\n alias ru='rdt_unit_test'\n alias rd='rdt_doxygen'\n\nIf you want to install these tools on the QB3 cluster, you have to take a \ncouple extra steps. First, the cluster doesn't have ``pip`` installed, so you \nhave to clone this repository and run ``setup.py`` manually. Second, you have \nto be on an interactive node (e.g. ``iqint``) or git clone won't work. Third, \nthe cluster doesn't make ``python3`` available by default, so you have to \nexplicitly enable it using the ``scl enable python33`` command::\n\n $ ssh iqint\n $ git clone git@github.com:Kortemme-Lab/rosetta_dev_tools.git\n $ cd rosetta_dev_tools\n $ scl enable python33 'python setup.py build'\n $ scl enable python33 'python setup.py install --user'\n\nYou'll also have to use the ``scl enable python33`` command every time you want \nto use any of these tools, so it's easiest to simply wrap them in functions. \nFor example, put these lines in ``~/.bashrc``::\n\n function rb {} (\n scl enable python33 'rdt_build debug $*'\n }\n function rr {} (\n scl enable python33 'rdt_build release $*'\n }\n\nFilling in boilerplate\n======================\nTo create all the boilerplate files for a new mover, run the following \ncommand::\n\n $ rk mover protocols::moves::MyMover\n\nThis command will create new ``*.fwd.hh``, ``*.hh``, ``*Creator.hh``, ``*.cc``, \nand ``*.cxxtest.hh`` files. It will also add the mover to the relevant \n``*.src.settings`` and ``*.test.settings`` files, and it will register the \nmover in ``init.MoverCreators.ihh`` and ``init.MoverRegistrators.ihh``. When \nthe command finishes, your new class will be completely ready to compile.\n\nThe first argument specifies what kind of file(s) to make and the second \nargument specifies the name of the new class. The second argument doesn't have \nto be a fully qualified name (i.e. it doesn't have to include a namespace). If \nyou don't specify a namespace, one will be automatically inferred from the \ncurrent working directory. So the above command could be abbreviated like so::\n\n $ cd $rosetta/source/src/protocols/moves\n $ rk mover MyMover\n\nThis command also has a convenient ``--dry-run`` option you can use to look at \nthe stub files being generated before they are actually written to disk.\n\nCompiling rosetta\n=================\nTo build rosetta in debug mode, just run the following alias from anywhere in \nyour checkout of rosetta::\n\n $ rb\n\nTo build in release mode, run the following alias instead::\n\n $ rr\n\nThese aliases require that either ``ninja`` or ``make`` be installed. Most \nsystems will have ``make`` installed by default, so you shouldn't have to worry \nabout this. However, ``ninja`` is preferred if both build tools are installed \nbecause it's faster and more succinct.\n\nRunning unit tests\n==================\nTo compile and run a unit test suite, use the following command as a template::\n\n $ ru protocols MyUnitTest\n\nThe first argument is the library that the unit test is part of, which usually \nis ``protocols``. The second argument is the name of the test suite to run \n(i.e. the name of the class in your ``*.cxxtest.hh`` file). You can also \nspecify a third argument to run just one specific test case (i.e. one \n``test_*()`` method from that class).\n\nOnce you've run a unit test using a command like the one above, you can use an \nabbreviated version of that command to run the same test again::\n\n $ ru\n\nThat command will rerun the last unit test that was run. It is also possible \nto assign names to commonly used tests, so that you can run them in as few \nkeystrokes as possible::\n\n $ ru protocols MyOtherUnitTest -s other\n $ ru other\n\nWriting documentation\n=====================\nTo generate doxygen documentation for whichever directory you're currently in, \nrun the following command::\n\n $ rd\n\nThis will generate documentation and automatically present it to you in a new \n``firefox`` window.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Kortemme-Lab/rosetta_dev_tools", "keywords": "rosetta,protein,design", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "rosetta_dev_tools", "package_url": "https://pypi.org/project/rosetta_dev_tools/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rosetta_dev_tools/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Kortemme-Lab/rosetta_dev_tools" }, "release_url": "https://pypi.org/project/rosetta_dev_tools/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "A set of tools to facilitate development of the Rosetta protein design suite.", "version": "1.1.0" }, "last_serial": 1866352, "releases": { "0.0": [], "1.0.0": [ { "comment_text": "", "digests": { "md5": "137e21dc08e8ef47bb06ba6950028d0d", "sha256": "19d70bba2870fd3ff54b4292620b4579338e879479efcff6cce85f0addc2edca" }, "downloads": -1, "filename": "rosetta_dev_tools-1.0.0.tar.gz", "has_sig": false, "md5_digest": "137e21dc08e8ef47bb06ba6950028d0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27558, "upload_time": "2015-12-17T06:59:31", "url": "https://files.pythonhosted.org/packages/f5/7a/a00f0fad395c79992212ef32322f74476ca25a3b521aea81238f5c21b3f8/rosetta_dev_tools-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a465fb93c9d167b1b5e5039c943872f7", "sha256": "34dd39dd2686cf85ff7dcce8143db251be2479fa921c969bb551024453608914" }, "downloads": -1, "filename": "rosetta_dev_tools-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a465fb93c9d167b1b5e5039c943872f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27597, "upload_time": "2015-12-17T07:28:11", "url": "https://files.pythonhosted.org/packages/43/67/a71e81af63d0632f487b3f29b854988b01bf41e0272ef6a4a4a0c6ca3715/rosetta_dev_tools-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a465fb93c9d167b1b5e5039c943872f7", "sha256": "34dd39dd2686cf85ff7dcce8143db251be2479fa921c969bb551024453608914" }, "downloads": -1, "filename": "rosetta_dev_tools-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a465fb93c9d167b1b5e5039c943872f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27597, "upload_time": "2015-12-17T07:28:11", "url": "https://files.pythonhosted.org/packages/43/67/a71e81af63d0632f487b3f29b854988b01bf41e0272ef6a4a4a0c6ca3715/rosetta_dev_tools-1.1.0.tar.gz" } ] }