How to Contribute

About This Guide
The instructions in this guide are for registered Workshop users only. See the Registration page for more information on getting a registered account. A registered account is not necessary to browse the Workshop.

This guide assumes that the reader is already familiar with the basics of Perforce usage. If you are a new Perforce user, we recommend reading the following documentation to get started:


 * Introducing Perforce (PDF) - Introductory guide to Perforce concepts
 * Getting Started with P4V (PDF) - Introductory guide to P4V, our cross-platform GUI
 * P4 User's Guide - Detailed guide to the P4 command-line client.

Perforce client software is freely available on our downloads page.

Setting Up

 * Connect to workshop.perforce.com:1666 in your Perforce client, using the user name and password you received when you registered.
 * Create a workspace that maps your guest branch path, which will be //guest/user name/....
 * You have read access to the entire depot, but only your guest branch is writable (and only to you).

Working on Projects

 * If you're contributing a new project, add your project files to a subdirectory under your guest branch.
 * If you want to make modifications to an existing project, branch the files into a subdirectory under your guest branch.
 * Make any edits in your guest branch that you like.
 * If you're modifying someone else's project, remember to preserve any applicable license notices.

Sharing Development

 * If you want to share edits you've made to someone else's project, let them know by emailing or by posting on the project's Talk page.
 * If you want to incorporate someone else's edits into your project, just p4 integrate from their guest branch to yours, following any license restrictions.

Contributing to the Wiki

 * Every project, big or small, can and should have a project page. It is very easy to create a project page and they make it much easier for people to find the tools you have created.
 * If you aren't already familiar with MediaWiki, see the help pages at mediawiki.org for editing pointers. In particular, see the MediaWiki formatting reference.

Creating Project Pages
{{ Project | Your Project | curator = Your Name                           | path    = //guest/your_name/project/          | download = //guest/your_name/project/download/ | language = programming language               | license = BSD                                 }} === About This Project === The quick brown fox jumped over the lazy dogs. {{ License | BSD | {{CURRENTYEAR}} | Your Name }} {{ RecentChanges | //guest/your_name/project/ }}
 * Type the name of your project into the search box and press Go. Since your project page does not exist yet, you will be given a link that says create this page.  Click that link to create and begin editing your new page.
 * Your project page can contain any information you think will be useful to other users. Below is an example to help you get started. Items within the curly braces refer to custom MediaWiki templates. For information on these and other useful templates, see Template:Project, Template:License, Template:DepotBrief, Template:RecentChanges, and Template:Contributor. For example, the first template below beginning with " {{ Project" creates the project information box you see in the upper right corner of this page.


 * For a list of existing project categories that your project might fit into, see Category:Projects by Type. (The Project template will automatically try to add your project to the appropriate language category.)


 * For more information on creating projects read the Contributor FAQ.

Updating Project Pages

 * Remember to keep your project page updated. Over time, you may wish to add more detail, announce new features, et cetera.
 * You also have the ability to update other pages in the wiki. Take care when doing this!  Potentially controversial changes to pages that are being maintained by others should be discussed beforehand on the Talk page.
 * You are responsible for verifying the accuracy and appropriateness of any content you submit.
 * Do not submit copyrighted work without permission.