Developer Documentation

From Proxmox VE
Revision as of 15:24, 10 October 2016 by Wolfgang Bumiller (talk | contribs) (Add a See Also section with a link to the git documentation)
Jump to navigation Jump to search

Introduction

Please coordinate your efforts with us before starting any development. It is important to have a common view of the problem and the corresponding solution – just to avoid duplicated or unnecessary efforts.

We will only include software which matches our quality criteria. The source code repository is read only. To include some code, send it as patch (git diff) to the pve-devel mailing list. We will review your code and commit after a successful review (and possible corrections/addition).

Mailing List

This is the primary communication channel for developers, discussing new features and implementation details. If you are a developer and you want to development additional features, this is the place to start.

PVE Development List: http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Archive: http://pve.proxmox.com/cgi-bin/mailman/private/pve-devel/

Access to Code Repository (git)

https://git.proxmox.com

Build instructions

You could find build instruction here :

https://git.proxmox.com/?p=pve-common.git;a=blob_plain;f=README.dev;hb=HEAD

Checking out a git repository

To clone a repository run 'git clone' with the repository name prefixed with the common URL: git://git.proxmox.com/git/

# git clone git://git.proxmox.com/git/pve-manager.git

To update an already cloned project to the current version use:

# git pull

It is recommended to start a feature branch before working on the code locally:

# git checkout -f -b my_branch master

After this you can start working on your improvements. You'll be able to compare your changes to the current PVE master branch easily with

# git diff master..my_branch

Then, make your commit (try to make small commits) :

# git commit -a

When you have finished your modifications, create patches :

# git format-patch -o /tmp/ --signoff master..my_branch

Then send your patchs to pve-devel@pve.proxmox.com (git-email package has to be installed and configured) with a short description in the email body

# git send-email --to=pve-devel@pve.proxmox.com --compose /tmp/00* --subject="What this patch for"


Some hints about formatting your commit messages:

  • if closing a bug write it in the first line of the commit log
  • limit the first line at 70 chars so headers and reply will fit in 80 characters. Mutt users will thank you.

Proxmox VE 2.0 API Clients

php : https://github.com/CpuID/pve2-api-php-client

perl : http://search.cpan.org/~djzort/Net-Proxmox-VE-0.006/

python: https://github.com/remofritzsche/proxmox-utils

python: https://github.com/Daemonthread/pyproxmox

java: https://github.com/Elbandi/pve2-api-java

nodejs: https://www.npmjs.org/package/proxmox

Bugtracker (bugzilla)

https://bugzilla.proxmox.com

Software License and Copyright

We only include code licensed under GNU Affero General Public License, version 3 http://www.gnu.org/licenses/agpl-3.0.html.

Additionally we ask contributors to send us a contributor license agreement form by email. This agreement establishes a relationship between us and the contributor, gives details on what it means when the contributor grants permission for their work to be included in a project, and enables us to be better stewards of these projects.

With the contributor agreement chosen by Proxmox, the Harmony CLA, the contributor gives Proxmox a license to use their contributions. The contributor continues to own the copyright in the contribution, with full rights to re-use, re-distribute, and continue modifying the contributed code, allowing them to also share that contribution with other projects.

We've tried to keep the agreement as simple and comprehensible as possible. It comes in two flavors, one for individual contributors and one for entities contributors (companies, foundations, or other organizations).

If you are making a contribution that is not your work (for example, a patch or library written by someone else), please contact office@proxmox.com for guidance on whether any additional steps are needed.

See Also