Working With Projects --------------------- There are a number of features related to projects that alter how builds are handled later on. For one, each project has an admin group and a dev group. Any user in the admin group have full access to control the project same as the owner/user of the project has. The dev group identifies users that are developers for the project, and grants added permission to work with the project (i.e. submit builds, etc). Projects also have a 'vcs_handler' and a 'bug_handler'. Handlers tell MonkeyFarm how to handle certain operations, and are configured system wide by the MonkeyFarm administrator. An example of a vcs_handler would be the monkeyfarm.git plugin which provides the ability to checkout sources from a Git repo. When a project specifies their vcs_handler it becomes a hard codes path for each package to have a repo at that location (determined by the vcs_provider). This will make more sense when we look at 'packages'. Creating a Project ^^^^^^^^^^^^^^^^^^ .. code-block:: text $ mf vcs-handler listall git bzr svn $ mf bug-handler listall launchpad bugzilla github $ mf project create -l my-project \ --display-name "My Project Title" \ --vcs-handler=git \ --bug-handler=bugzilla Updating a Project ^^^^^^^^^^^^^^^^^^ .. code-block:: text $ mf project update my-project --url=http://example.com $ mf project update my-project --admin-group my-group --dev-group mf-everyone Deleting a Project ^^^^^^^^^^^^^^^^^^ .. code-block:: text $ mf project delete my-project Listing Projects ^^^^^^^^^^^^^^^^ List all projects that I own, or whose admin/dev group I belong to: .. code-block:: text $ mf project listall test2 my-project $ mf project listall -f test test2 List only projects that I own: .. code-block:: text $ mf project listall --mine my-project List all available projects: .. code-block:: text $ mf project listall --all my-project test test2 $ mf project listall --all -f test test test2 Showing Data For a Project ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: text $ mf project show my-project Label | my-project Display Name | My Project Title Owner | john.doe Admin Group | my-group Dev Group | mf-everyone Created On | 2010-11-30 19:09:28 Last Update | 2010-11-30 19:09:28 URL | http://example.com VCS Handler | git Bug Handler | bugzilla Setting the Current Project ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Most users generally work on one project at a time... so to make working with multiple projects easier there is the 'workon' command to 'mf'. This caches the project you want to work on, so that you don't need to pass '--project' with every other command. .. code-block:: text $ mf build listall MFArgumentError > A project label is required $ mf workon my-project $ mf status User | john.doe Connection | default Project | my-project $ mf build listall php52-5.2.14-1.el5 mysql50-5.0.91-1.el5