Whamcloud is committed to providing and supporting high quality Lustre releases. Whamcloud hosts the current Lustre source code and welcome contributions from all parties.
Downloading Lustre Code
The main Lustre repository is browsable at Lustre Git Web or via Git clone from git://git.whamcloud.com/fs/lustre-release.git.
Building Lustre from Source
Lustre RPM are available from Whamcloud's build server. However, if you need to build Lustre from source, you may find the Building Lustre from Source pages helpful.
Code contribution
Lustre has an open code submission policy that does not require copyright sign-over.
Patch submission is similar to the Linux kernel and is detailed in the Submitting Changes page.
Coding formatting standards
Lustre code is written according to the the Coding Guidelines.
Community tools
Whamcloud provide technical expertise and development tools to enable well tested releases to be achieved in a open and convenient manner. The most common tools are listed below.
Lustre test suites
Lustre includes a number of test suites. These suites range from basic functionality in the form of llmount.sh thru to the advanced auster script with integrated reporting.
- Auster test suite: page coming soon.
Whamcloud Development Tools Overview
Tools Overview Tutorial
An overview of how to effectively use the development tools is available in Lustre Autotest-Maloo-Gerrit presentation from the LAD'22 Developer Summit.
Jira - Bug tracking
We're using Jira to track bugs and issues. You use the same account for both Jira and this Wiki. If you would like your account to be marked as a developer account then open a ticket in the Jira LU project to request this. New accounts can be requested from JIRA adminstrators.
Gerrit - code review
We are using Gerrit for our code inspections. You will need an OpenID to login to Gerrit, however we currently do not have a public OpenID service. For now, please use a regular Gmail or Yahoo account, or another OpenID account if you have one. Once you have registered on Gerrit, you can add your email address(es) and SSH key(s) to your Gerrit account.
Further reading:
Jenkins - build farm
Our build server is based on the Jenkins (formally Hudson) continuous integration platform, and it is currently creating CentOS/RHEL RPMs and Ubuntu Debs when changes are pushed. It is also building packages when patches are submitted for inspection requests. Every patch that passes the Jenkins build process is automatically submitted for testing on our test clusters with a full range of Lustre regression tests. This takes at least 6 hours elapsed and 125 hours system time running dozens of different distro, CPU architecture, and configuration combinations. A link to the currently-running test sessions is posted as a comment on the patch in Gerrit when testing starts. Please be respectful of testing resources when pushing patches.
Further reading:
- Jenkins Build Slave Setup is covered in a separate document.
Maloo - test results database
During test execution and after tests have been run, the test results are uploaded to the Maloo test database. A link to the test results from each patch is posted as a comment on the patch in Gerrit when testing starts. This includes basic PASS/FAIL/TIMEOUT/SKIP results for the dozens of test sessions, hundreds of test scripts, and thousands of subtests that were run, as well as the test environment, test script output, and runtimes. In case of test failures, the console and test logs are also available, along with client and server debug logs and stack traces. The Maloo results database is searchable in a variety of ways, by date, branch, test script name, build number, architecture, etc.
Mailing lists and community
Organizations, mailing lists and a Slack Channel are available from the Community Resources page.
Wiki
You are already here. Please explore the wiki. Wikis need maintenance: if you see a spelling error or typo, please take a moment to correct it. If you find an documentation lacking please consider adding to the wiki. The page Wiki Hints & Tricks is a good place to start.
Third party tools
A separate page includes a list of Third Party Tools
3 Comments
Nathan Rutman
Development git repository is at
git clone git://git.whamcloud.com/fs/lustre-dev.git
Richard Henwood
Thanks Nathan - It is definitely worth pointing out there are a number of repositories available from git.whamcloud.com and for some it is not immediately obvious what they contain.
fs/lustre-dev.git
andfs/lustre-release.git
would benefit from a clarifying comment on the page IMHO. Until then, let me include this description:fs/lustre-dev.git
- OSD restructuring work (AKA 'Lustre on ZFS', AKA Orion) takes place on this project.fs/lustre-releases.git
- Lustre releases. 2.1, 2.2, 2.3 etc are branched from this project.Ian Colle
fs/lustre-release.git (no s on the end) for latest master