Contribution Guidelines

We want to see people contributing to the Xen Project effort, and there are many ways to do so.

As with any open source project, providing concrete contributions will demonstrate to the project leaders that you are serious about being involved, which helps us separate the people who talk about contributing from the people who actually contribute to the project in a meaningful way. This builds trust in your work, and the people who consistently contribute good work will be given more and more responsibility.

Our goal is to maintain an environment of professionalism, respect, and innovation within Xen Project development.  Please adhere to the following guidelines as you participate in the Xen Project community:

  • Be professional in all communications. Please avoid flaming, profanity, vulgarity, SHOUTING IN ALL CAPS. Keep personal discussion for the IRC channel. There is never any reason to publicly discuss gender, ethnicity, orientation, lifestyle, or religion in our project.
  • Stay on topic. If you have a comment that is not relevant to the current discussion, please start a new thread.
  • Keep it legal. Please use project resources for their intended purpose.
  • Don't feed trolls. Every open project attracts unwelcome commentary from individuals trying to get a rise out of someone. When this happens, just ignore them.

Contributing Code

Because every open source project has slightly different policies for accepting code contributions, here are some specific guidelines for contributing to The Xen Project codebase.

Contributions to the Xen Project codebase follow the conventions as they are known in the Linux Kernel community. In summary, contributions are made through patches that are reviewed by the community.  The project does not require community members to sign contribution or committer agreements. We do require contributors to sign contributions using the sign-off feature of the code repository, following the same approach as the Linux Kernel does (see Developer Certificate Of Origin).

In addition, each Xen Project subroject (also called team) may have its own mailing list, submission guidelines, IRC channel, and culture. Please check the team portal to learn more.

The majority of our projects have some shared conventions:

You can also ask questions on the xen-devel@lists.xenproject.org mailing list or any of the subproject lists and irc channels.

Submitting Patches to the Xen Project Codebase

Please first check the submission process for the Xen Sub-Project, and send an email to the proper mailing list with [PATCH] as the first word in the subject line.   Each patch should perform a single function.  Patches sent to the mailing lists should be broken up into several email messages of less than 100KB each, with only one patch per email.

Please include a description of why you want the change made (not just the "what") and why it is important for the team to make this change. Your patch will need to include a signed-off-by tag, author's name, and other information.

For details about what to include in your patch, you should start with the patch submission documentation.

Escalation

In a project of this size, patches sometimes slip through the cracks. If you submitted a patch to the xen-devel mailing list or bugzilla and did not receive a response within 5 business days, please send an email to xen-devel and in the first line of that email, include this phrase "Patch escalation: no response for x days".

This is one case where you should "top post" to make sure that the escalation text is read.

Code Security Scanning

The Xen Project is registered with the "Coverity Scan" service which applies Coverity's static analyser to the Open Source projects. The tool can and does find flaws in the source code which can include security issues. Currently only the Xen Project Hypervisor (i.e. xen.git) is covered by these scans. Triaging and proposing solutions for the flaws found by Coverity is a useful way in which Community members can contribute to the Xen Project. 

Members of the community may request access to the Coverity database. However, Coverity requires that you create an account and apply for Xen Project membership by searching for the Xen Project and then requesting to be added to the project. We typically will approve requests within a few days, but reserve rejecting requests from accounts who never engaged with the project (aka never posted to a mailing list) or which look like spam accounts.  

Documentation

News Sources

Documentation

Raising Bugs

Search Xen Project Mailing Lists:

All Xen Project mailing lists are archived using the MarkMail system at xen.markmail.org.

Search MarkMail from XenProject.org Site: (not secure)

Often you will find an answer for a question by searching here!

Xen Project Wiki

When searching the wiki you need to be aware of     

  • Searching foo followed by Search will search document bodies.
  • Searching foo followed by a return or Go will usually only search document titles.

IRC Channels

Information about our IRC channels can be found on: Get started with IRC

Where is the XenServer Information?

Many people are confused about the relationship between Xen Project and XenServer. XenServer is a distribution of Xen Project the same way that Ubuntu or SUSE are distributions of Linux. If you need XenServer information, you will do best by starting with one of the XenServer support channels described at XenServer.org.

IRC

ABOUT IRC

The Xen Project community maintains a number of IRC channels on irc.freenode.net. We tend to coordinate tasks, ask quick questions, discuss issues/proposals informally on IRC. 

#xen
is for general queries about the software, both developer and user questions
#xen-api
is the official IRC channel for the XAPI team
#xendevel
is the channel the hypervisor developers use. It is a channel for developers: if you have submitted patches to the developer mailing lists or are otherwise active on it, this channel is for you.
#mirage
is used for Mirage OS
#unikraft
is used for Unikraft
#xentest
is used for output from our travis build test instance
#xendocs
is used for documentation related questions

If you don't have an IRC client you can access the IRC via the web using the FreeNode web interface.

IRC Netiquette

On IRC, a certain protocol has to be followed. More commonly referred to as 'Netiquette'. It is mainly about using good manners, common courtesies known world-wide, and at the root of it all, treating others as we want to be treated.

  • Unless you have an IRC client running all the time, use an IRC bouncer service, or use your own IRC network bouncer such as ZNC, you will often arrive in in the middle of a conversation (or multiple ones). Unless you are familiar with the channel you may want to sit and watch it for a minute or two.
  • If you plan to use our channels regularly, register your username with NickServ.
  • If you are new to the channel and also post on mailing lists, you may want to introduce yourself.
  • Note that you may not know everyone on the channel: you can find out whom you are talking to via "/whois nickname" or you can ask. 
  • Note that when you leave the channel or close your IRC client, existing conversations will be interrupted. You may miss an answer to a question or a piece of the conversation. 
  • You can adress people in the following way "nickname: question" or "nick1, nick2: question". Your conversation partner will be notified, but be aware that they may be using an IRC network bouncer and may not see your question until they check again.
  • You can find an easy to understand IRC beginners guide with further Netiquette suggestions here and a cheatsheet of IRC commands is here.

What is IRC ?

IRC, abbreviated for Internet Relay Chat, provides a platform for open chatting and is chiefly designed for group communication. It consists of networks which themselves contains channels which refers to the place for group discussion relevant to the topics for the discussion.

Why should I join IRC?

IRC allows you to have real time chat with individuals proficient in various fields around the globe & helps you in discussion of your problem.

What are the ways to join IRC?

There are various ways to join IRC:

  • Installing an IRC application
  • Using your web browser

You can access IRC in a number of ways, including:

What About XenServer Questions?

Many people are confused about the relationship between Xen Project and XenServer. XenServer is a distribution of Xen Project the same way that Ubuntu or SUSE are distributions of Linux. You might go to a Linux kernel mailing list to talk about kernel bugs in your distribution, but the bulk of your issues are probably best handled by asking questions of the distribution itself. This is true with XenServer as well, so for most XenServer-related issues, you will do best by starting with one of the XenServer support channels described at XenServer.org. The people in that community understand the context of their distribution very well and can most likely guide you to a resolution.

Wiki

The Main Source for Documentation

The Xen Project Wiki is the primary source for documentation of the Xen Project software. Note that there is also related documentation in many Linux/Unix distributions and there are a host of tutorials published on 3rd party websites and blogs. The community strives to link to external information when we come across it to make it easier for YOU to find information about the Xen Project software.

Information in our wiki is organized through differtent indexes (also called categories). The following guide will help you navigate the wiki

Get Involved!

The Xen Project Wiki is a support and documentation resource for our subprojects. The wiki is editable by everyone and we need your contributions to make it better.

The Xen Project Wiki can be found here.

Get Started with the Wiki!

As stated above, the Xen Project Wiki is open to everyone. However we have been subject to severe spam attacks recently. Please follow the following instructions to create a wiki account with write access:

Note that documentation for XenServer (as well as its deprecated sibling XCP) is not stored on the Xen Project Wiki. As XenServer is a separate distribution of the Xen Project software which is supported by its own community, the XenServer documentation is stored on the XenServer Wiki.

Mailing Lists

"If it hasn't happened in an email list, it hasn't happened,"  -- Open Source axiom

Mailing Lists are the lifeblood of the Xen Project.  If you intend to actively participate in the development of the Xen Project, you will need to become familiar with the mailing lists and the mailing list etiquette:

  • Please post in plain text (i.e. not HTML), word-wrapped to somewhere around 72 characters.
  • Please don't top-post.
  • Please start a new thread for a new bug (don't just reply to a random email from the list).
  • Please don't email bugs directly to Xen Project developers. Keep the conversation on the list where other people (and search engines) can see it.
  • When you reply to a mail, ensure that you reply to the list and all author(s). Not all posters to the list may be subscribed to the list.

What About XenServer Questions?

Many people are confused about the relationship between Xen Project and XenServer.  XenServer is a distribution of Xen Project the same way that Ubuntu or SUSE are distributions of Linux.  You might go to a Linux kernel mailing list to talk about kernel bugs in your distribution, but the bulk of your issues are probably best handled by asking questions of the distribution itself.  This is true with XenServer as well, so for most XenServer-related issues, you will do best by starting with one of the XenServer support channels described at XenServer.org.  The people in that community understand the context of their distribution very well and can most likely guide you to a resolution.

Search all Xen Project mailing lists using MarkMail (not secure):

Search MarkMail:     

Mailing List Usage

Xen Project mailing lists have a web as well as an e-mail interface.

  • Send an e-mail command to mylist-request@lists.xenproject.org (mylist may for example be xen-announce ) with one of the following commands in the subject line. Common commands are help, subscribe and unsubscribeAlternatively, you can use the Subscribe buttons below.
  • Go to https://lists.xenproject.org/mailman/listinfo/mylist (mylist may for example be xen-announce) and use the web interface to subscribe, unsubscribe or log into the list management interface.
  • Note that you can send to a Xen Project mailing list, without being subscribed to it. But your post will be moderated.
  • If you have problems, please send an e-mail to community dot manager at xenproject dot org.

Additional Information for Using the Developers Mailing List (xen-devel)

Please refer to the following documents for protocols involving patch submission, repositories, and general development questions:

General Mailing Lists

xen-announce

Announcements related to the project. These may be release annoucements, security advisories, announcements related to events. This is a low volume list, with about 1-2 posts per month.

Info    Archives   Subscribe   Unsubscribe

xen-users

This list is for those using and installing the Xen Project software.

Info    Archives   Subscribe   Unsubscribe

xen-api

A discussion list for the XCP and Xen API projects, developing a protocol, data-model, and language bindings for remote and local management of Xen-based systems. The list is both for developers and users. Note that most technical discussions for the Xen API project happen on Github (via issues, etc. on the respective repositories).

Info    Archives   Subscribe   Unsubscribe

Developer Mailing Lists

xen-devel

A discussion list for the Xen Project Hypervisor developer community. Please do not use this list for technical support queries.

Info    Archives   Subscribe   Unsubscribe

xen-api

A discussion list for the XAPI project, developing a protocol, data-model, and language bindings for remote and local management of Xen-based systems. The list is both for developers and users. Note that most technical discussions for the Xen API project happen on Github (via issues, etc. on the respective repositories).

Info    Archives   Subscribe   Unsubscribe

embedded-pv-devel

A discussion list for the Embedded and Automotive PV Drivers developer community.
Important: For patches that need to go into hypervisor mainline please keep on using xen-devel@, for patches going into the Linux kernel please keep using the relevant kernel list, etc.

Info    Archives  Subscribe   Unsubscribe

mirageos-devel

A discussion list for the Mirage OS developer community. Note that most technical discussions for the Xen API project happen on Github (via issues, etc. on the respective repositories).

Info    Archives  Subscribe   Unsubscribe

win-pv-devel

A discussion list for the Windows PV Drivers developer community. 

Info    Archives  Subscribe   Unsubscribe

minios-devel (includes Unikraft Development)

A discussion list for MiniOS and Unikraft development.
Important: For patches that need to go into hypervisor mainline please keep on using xen-devel@. For development discussions that are MiniOS and Unikraft specific, but impact the hypervisor and/or other sub projects, please CC the relevant mailing list. For Unikraft code submissions please use the prefix [UNIKRAFT PATCH xxx], whereas for MiniOS, use [PATCH xxx].

Info    Archives  Subscribe   Unsubscribe

xen-changelog

This is a receive-only list to which details of changesets to the Xen Hypervisor Git repositories are sent.

Info    Archives   Subscribe   Unsubscribe

Special Mailing Lists

private

This list is for maintainers of all Xen teams, and key developers that have been invited by maintainers. This list is intended to be used only when privacy implications or similar prevent usage of a public list. Example usage may be to let other community members know of absence (due to holidays, maternity/paternity leave, etc.) and to arrange cover. Another example may be to ask other team members for advice on how to respond to a difficult situation in the community. Any conversations that should have been started on a public list, will be forwarded to an appropriate public list. 

This list is invite only and is not archived. Community members can subscribe, but approval in line with Mailing List Conventions is required.

Info   Subscribe   Unsubscribe

publicity

This is a list to coordinate content for the Xen Project blog, articles in the open source and Linux press, other media, press activities, to coordinate attendance and submissions for open source and industry events and anything else to promote the Xen Project. The list is open for people in the community who care about promoting the Xen Project. The list is also archived.

Info    Archives   Subscribe   Unsubscribe

security@xenproject.org

This e-mail alias is intended for reporting security vulnerabilities in Xen Project software (this also covers the situation where an existing published changeset is retrospectively found to be a security fix). List membership is restricted to members of the Xen Project Security Response Team and thus invite only and obviously there is no public archive. For more information on how the Xen Project handles security vulnerabilities, see the Xen Security Problem Response Process.

Report Security Issue

predisclosure-applications

Organisations who want to become a member of the Xen Project predisclosure list to receive pre-disclosure of security advisories and who meet the criteria outlined in the Xen Security Problem Response Process should become members of this mailing list and submit their application through this mailing list as outlined in Xen Security Problem Response Process. The list is open to all community members who care about security and although pre-disclosure membership applications are evaluated based on strict criteria, all applications are open for review and comment by community members. The list is also archived.

Info    Archives   Subscribe   Unsubscribe

Lists related to Xen Project Governance

advisory-board

A discussion list for members of the Xen Project Advisory Board. The list is invite only. The Advisory Board publishes meeting minutes on the wiki.

Info    Minutes

wg-test-framework

A discussion list for members of the Test Framework working group. The list is invite only, but archives are publicly available.

Info    Archives

wg-openstack

A discussion list for Xen Project members and community members who want drive the adoption of Xen in openstack and related topics.

Info    Archives   Subscribe   Unsubscribe

See Also:

More Articles...