==== Getting started with your account, Gerrit & Git ==== === Linux Foundation ID === For access to OPNFV's infrastructure, you will need a [[https://identity.linuxfoundation.org/user/|LinuxFoundation account]]. (Please use your company email address for the Linux Foundation account and don't have spaces or special characters in your username) [[https://www.youtube.com/watch?v=TsM4LV6cDr4|Tutorial video for Linux Foundation ID creation]] === Participating in a project === To participate, via contribution, in any [[/project_proposals|project]] in OPNFV, you will need to contact the project manager for the project, listed in the "Key Project Facts" section of the project page requesting to be added as a contributor of the project. Send a mail to the project manager copying the helpdesk opnfv-helpdesk@rt.linuxfoundation.org to have your role in the project set up. If you are not from an OPNFV member company, you will have to agree to be subject to and bound by the OPNFV IP Policy prior to your project contribution. Once the rights have been set-up you are ready to add your contributions to the project. === Common Tools === There are a number of tools used to communicate amongst OPNFV project teams. While many of these are listed on our [[https://www.opnfv.org/developers/tools|www site]] that list is not 100% complete so we will replicate and update the list here. ==== Mailing List ==== The main mailing list is called **Technical Discuss**. * Sign up here: [[https://lists.opnfv.org/mailman/listinfo/opnfv-tech-discuss|https://lists.opnfv.org/mailman/listinfo/opnfv-tech-discuss]] * This list is for general technical discussion about OPNFV. It’s open for anyone to join. * If you are already a member you can click this link to send an email to the list: [[mailto:opnfv-tech-discuss@lists.opnfv.org|opnfv-tech-discuss@lists.opnfv.org]] * Other mailing lists are available here: [[https://www.opnfv.org/developers/tools/mailing-lists|https://www.opnfv.org/developers/tools/mailing-lists]] * Topic filters allows you to choose to only receive messages from the mailing list for particular topics (more info. can be found at [[http://web.mit.edu/lists/mailman/topics.html]]). For the Technical Discuss mailing list, the following topic filters are available: * vsperf: Discussion channel for the vswitchperf project * sfqm: Discussion channel for the Software Fastpath Service Quality Metrics project * doctor: Discussion channel for the Fault Management (Doctor) project * copper: Discussion channel for the Virtualized Infrastructure Deployment Policies (Copper) project * promise: Discussion channel for the Resource Management (promise) project * bgs: Discussion channel for the Bootstrap/Get started (Genesis) project * opendaylight: Discussion channel for OpenDaylight-OPNFV interlock * availability: Discussion channel for the High Availability for OPNFV (availability) project * vnfgraph: Discussion channel for the OpenStack Based VNF Forwarding Graph (vnf_forwarding_graph) project * octopus: Discussion channel for the Continuous Integration (Octopus) project * joid: Discussion channel for the Juju OPNFV Infrastructure Deployer (JOID) project * ipv6: Discussion channel for the IPv6-enabled OPNFV (ipv6) project * pharos: Discussion channel for the Testbed infrastructure (Pharos) project * functest: Discussion channel for the Base system functionality testing (functest) project * parser: Discussion channel for the Deployment Template Translation (Parser) project * oscar: Discussion channel for the OSCAR (OPNFV System Config & Reporting) project * announce: Discussion channel for general announcements * opnfv-sec: Discussion channel for the OPNFV Security group * infra: Discussion channel for the OPNFV hardware infrastructure * release: Discussion channel for OPNFV release discussions * SFC: Discussion channel for OPNFV Service Function Chaining * yardstick: Discussion channel for OPNFV Yardstick * onosfw: Discussion channel for ONOS Framework project * ovsnfv: Discussion channel for the Open vSwitch for NFV project * (You can select topics you want to subscribe to in the configuration page at [[https://lists.opnfv.org/mailman/options/opnfv-tech-discuss]]) Please subscribe to at least [yourproject] and [announce] Your sysadmin will use [announce] for any downtimes that may be needed. (I'll post downtime requests to infra as well) ==== IRC ==== There are a number of IRC channels used for various OPNFV purposes. We will list some here. If this list gets too long we should make a new page: * #opnfv-meeting <-- used for most weekly team [[/meetings|meetings]]. It's recommended to not use a specific IRC meeting channel for your meetings. All project meetings should share the main IRC channel to avoid overlapping meetings. One should finish before the next scheduled one starts. * #opnfv-doctor <-- used by Doctor team project for day to day communication * #opnfv-ipv6 <-- used by IPv6 project for day to day communication * #opnfv-vswitchperf <-- used by vSwitch Performance Characterization project for day to day communication * #opnfv-bgs <-- Bootstrap/Get-started team * #opnfv-octopus <-- CI team * #opnfv-testperf <-- performance testing team * #opnfv-yardstick <-- used by Yardstick project for day-to-day communication * #opnfv-sfc <-- used by the Service Function Chaining project for day-to-day communication and weekly meetings * * please add the rest here... we need help to fill in this list. === ASK.OPFNV.ORG === Another place for help in getting setup, technical questions and other resources is to post a question in the [[http://ask.opnfv.org|Ask OPNFV Site]] forum. ==== Git ==== OPNFV uses Git repositories for our code, documentation, and test artifacts. Git is a common tool for open source collaborative projects and there are many resources to help you become a master at working with Git. A good place to start is the [[http://githowto.com/|Git how to]] guide. Our development processes will help guide you how to work with each project type. Once that material is ready we will provide links here for performing various tasks in OPNFV. For now you can get started by browsing the projects on Gerrit and setting up your security. Git-Review as listed below is a great tool for simplifying the basics when working with Git. ==== Gerrit ===== Gerrit is our code review and maintenance vehicle, this is where you will go to comment and review existing patches, this is where your patches will show up once you have pushed them to the Git repository. You can subscribe to be notified to any changes to projects you are interested in. Use your LinuxFoundation ID and log in to the opnfv Gerrit site. [[https://gerrit.opnfv.org/gerrit/#/]] ==== General Workflow ==== Once your local repository is set up, the following workflow is recommended: * Get the latest changes from the repository: $ git remote update $ git checkout master $ git pull --ff-only origin master * Create a [[http://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows#Topic-Branches|topic branch]] in which you will work, and switch to it: $ git branch NAME_OF_THE_TOPIC_BRANCH $ git checkout NAME_OF_THE_TOPIC_BRANCH You can also use the shorter version: $ git checkout -b NAME_OF_THE_TOPIC_BRANCH The name of the topic branch should be something related to what's being changed, since it will show up in Gerrit. When you submit your changes to gerrit with git-review (see: [[:developer|Welcome to the OPNFV developer resources page.]]), even though they will show the name of the topic branch, they will end up being merged to master. When crafting your commits, you might find [[https://wiki.openstack.org/wiki/GitCommitMessages|Git Commit Good Practice]] useful. For more information, you may find the [[http://docs.openstack.org/infra/manual/developers.html|OpenStack Developer's guide]] and [[http://www.mediawiki.org/wiki/Gerrit/Tutorial|MediaWiki Gerrit Tutorial]] useful. ==== How-to's on setting up git and getting started with Gerrit ==== Step-by-step instructions and screenshots for getting **Gerrit access** and working with **git** [[http://www.mediawiki.org/wiki/Gerrit/Tutorial| mediawiki's site for Git Gerritt]] Opendaylight's Cheat Sheet and CLI git reference https://wiki.opendaylight.org/view/GIT_Cheat_Sheet https://wiki.opendaylight.org/view/OpenDaylight_Controller:Pulling,_Hacking,_and_Pushing_the_Code_from_the_CLI Once you have setup git and created your ssh key you can register your SSH public key in Gerrit here: [[https://gerrit.opnfv.org/gerrit/#/settings/ssh-keys]] You can also get a password from Gerrit UI and use this instead of SSH key **Git-review** is a command-line tool for Git / Gerrit. It makes it easier to configure git, to submit a change or to fetch an existing one. [[https://wiki.opendaylight.org/view/Git-review_Workflow| Opendaylight's page on working with git-review]] Check out the [[:git|OPNFV Git/Gerrit]] page for a collection of setup suggestions for the OPNFV Source Code Repositories. A sample procedure for start hacking in Parser Project: [[https://wiki.opnfv.org/parser/howto|Parser HowTo Start]]