WARNING: This is the _old_ Lustre wiki, and it is in the process of being retired. The information found here is all likely to be out of date. Please search the new wiki for more up to date information.

Finding a Project: Difference between revisions

From Obsolete Lustre Wiki
Jump to navigationJump to search
No edit summary
 
(38 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page describes how to find a bug to fix, select a project to enhance Lustre, or help with Lustre testing.
<small>''(Updated: Nov 2009)''</small>
__TOC__
This page describes how to [[#Finding a Bug to Fix|find a bug to fix]], [[#Selecting a Project to Enhance Lustre|select a project to enhance Lustre]] or [[#Helping with Lustre Testing|help with Lustre testing]]. Lustre defects and features or to-do items are logged in the Bugzilla bug tracking system.  


You can also also contact the [[Lustre_Mailing_Lists|Lustre Development mailing list]] (often referred to as [mailto:lustre-devel@lists.lustre.org lustre-devel]) to discuss ideas for projects that match your skills and interests. Note that Lustre encompasses a number of development areas, including user tools, documentation, disk filesystems, networking, kernel integration, etc., so you can almost always find a project that is interesting and challenging.


== Finding a Bug to Fix ==
Having a specific problem to fix requires an understanding of the flow of operations and how that maps to specific code.  It gives you a concrete goal that provides a context for investigating the code, rather than just reading vaguely through the vast Lustre code base.
Fixing bugs in Lustre is a good way to become familiar with the Lustre code if you've not worked on it before. Bugs against the Lustre code are logged in the Bugzilla bug tracking system. To find a bug you'd like to work on:


* ''Search Bugzilla key words for bugs designated "easy" bugs.'' Some Lustre developers use this keyword to indicate this bug could be fixed by someone without an in depth familiarity with the Lustre code.
Once you have selected a project, contact [mailto:lustre-devel@lists.lustre.org lustre-devel] to discuss the best approach to take and to keep others aware of what you are working on.
* ''Search Bugzilla for very old Lustre bugs.''  These are typically non-critical bugs that are not dependent on a release timeline. They can vary widely in complexity. [[How old would a "very old bug" be?  logged over a year ago? 2 years ago? older?]]
 
Once you have selected a bug to work on, contact [[email:lustre-devel@lists.lustre.org lustre-devel]] to discuss the approach to be taken to fix it.  


== Finding a Bug to Fix ==
Fixing bugs in Lustre is a good way to become familiar with the Lustre code if you've not worked on it before. Some ways to find a bug you'd like to work on are:


* ''Search [https://bugzilla.lustre.org/buglist.cgi?query_format=advanced&product=Lustre&keywords_type=anywords&keywords=easy+needs-test&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=Reuse+same+sort+as+last+time Bugzilla] key words for bugs designated "easy" bugs.'' Some Lustre developers use this keyword to indicate that a bug could be fixed by someone without in-depth familiarity with the Lustre code.
* ''Search [https://bugzilla.lustre.org/query.cgi Bugzilla] for very old Lustre bugs.''  These are typically non-critical bugs that are not dependent on a release timeline. They can vary widely in complexity.  In particular, doing an empty Bugzilla query and looking at the first 100 items (sorted by bug number) shows a lot of bugs that are either relatively hard to reproduce, not generally visible to users, or "nice-to-have" features that no customer has specifically prioritized to be fixed.


== Selecting a Project ==
== Selecting a Project to Enhance Lustre ==
If you'd like to take on a project to enhance or add a new feature to Lustre, consider one of these options:
If you'd like to take on a project to enhance or add a new feature to Lustre, consider one of these options:


* ''Search the Bugzilla bug tracking system for the keyword "small project".'' Some Lustre developers use this keyword to indicate that an enhancement request or bug is a stand-alone project suitable to be taken on by an external developer. When you have identified a project you'd like to work on, contact [email:lustre-devel@lists.lustre.org lustre-devel] to discuss the approach be taken to address it.
* Pick a project from the [[Lustre Project List]]. For guidance in selecting or proceeding with a project, contact [mailto:lustre-devel@lists.lustre.org lustre-devel].


* ''Assist with keeping Lustre up-to-date with recent kernel changes.'' For some changes, a simple fix to the Lustre code will be required, while for others, a good understanding of the Linux kernel and how Lustre interfaces with it is needed. For guidance in selecting or proceeding with a project, contact [email:lustre-devel@lists.lustre.org lustre-devel].
* Ask for a project on [mailto:lustre-devel@lists.lustre.org lustre-devel].  This mailing list is read by many of the Lustre developers and is a good place for questions, ideas, feedback.


* ''Propose a new feature that can be developed as a separate module on top of Lustre.'' Be sure to get feedback on your proposal on [email:lustre-devel@lists.lustre.org lustre-devel] before you get started.
* ''Assist with keeping Lustre up-to-date with recent kernel changes.''  Porting Lustre to newer kernel versions is an ongoing effort, given the large number of vendor and upstream kernel releases.  For some changes, a simple fix to the Lustre code will be required, while for others, a good understanding of the Linux kernel and how Lustre interfaces with it is needed.
* ''Propose a new feature that can be developed as a separate module on top of Lustre.'' Be sure to get feedback on your proposal by contacting [mailto:lustre-devel@lists.lustre.org lustre-devel] before you get started.


In summary, while I think there can be some small amount of bug selection
== Helping with Lustre Testing ==
by users, if there is interest in this it probably makes sense to spend
Testing Lustre under a variety of workloads is always of interest.  The more unusual the IO pattern used by a benchmark, application, or testing tool, the more likely it is to find something of interest.
some time to annotate bugs that are in the "small project" space and [[add
a bugzilla search URL on the referring page]] rather than spend time to
try and keep such a list up-to-date.


In all cases developers should
contact [[email:lustre-devel@lists.lustre.org lustre-devel]] to first discuss the bug and the approach that should
be taken to fix it.
In the past I've also
done bug triage for developers who want to contribute so that they
can work on projects that are matching their experience level, and
also not on a critical path or conflicting with internal development."
== Helping with Lustre Testing ==
To find out how you can contribute to the testing of upcoming Lustre releases, see [[Lustre_Test_Plans|Lustre Test Plans]].
To find out how you can contribute to the testing of upcoming Lustre releases, see [[Lustre_Test_Plans|Lustre Test Plans]].

Latest revision as of 10:43, 20 January 2011

(Updated: Nov 2009)

This page describes how to find a bug to fix, select a project to enhance Lustre or help with Lustre testing. Lustre defects and features or to-do items are logged in the Bugzilla bug tracking system.

You can also also contact the Lustre Development mailing list (often referred to as lustre-devel) to discuss ideas for projects that match your skills and interests. Note that Lustre encompasses a number of development areas, including user tools, documentation, disk filesystems, networking, kernel integration, etc., so you can almost always find a project that is interesting and challenging.

Having a specific problem to fix requires an understanding of the flow of operations and how that maps to specific code. It gives you a concrete goal that provides a context for investigating the code, rather than just reading vaguely through the vast Lustre code base.

Once you have selected a project, contact lustre-devel to discuss the best approach to take and to keep others aware of what you are working on.

Finding a Bug to Fix

Fixing bugs in Lustre is a good way to become familiar with the Lustre code if you've not worked on it before. Some ways to find a bug you'd like to work on are:

  • Search Bugzilla key words for bugs designated "easy" bugs. Some Lustre developers use this keyword to indicate that a bug could be fixed by someone without in-depth familiarity with the Lustre code.
  • Search Bugzilla for very old Lustre bugs. These are typically non-critical bugs that are not dependent on a release timeline. They can vary widely in complexity. In particular, doing an empty Bugzilla query and looking at the first 100 items (sorted by bug number) shows a lot of bugs that are either relatively hard to reproduce, not generally visible to users, or "nice-to-have" features that no customer has specifically prioritized to be fixed.

Selecting a Project to Enhance Lustre

If you'd like to take on a project to enhance or add a new feature to Lustre, consider one of these options:

  • Ask for a project on lustre-devel. This mailing list is read by many of the Lustre developers and is a good place for questions, ideas, feedback.
  • Assist with keeping Lustre up-to-date with recent kernel changes. Porting Lustre to newer kernel versions is an ongoing effort, given the large number of vendor and upstream kernel releases. For some changes, a simple fix to the Lustre code will be required, while for others, a good understanding of the Linux kernel and how Lustre interfaces with it is needed.
  • Propose a new feature that can be developed as a separate module on top of Lustre. Be sure to get feedback on your proposal by contacting lustre-devel before you get started.

Helping with Lustre Testing

Testing Lustre under a variety of workloads is always of interest. The more unusual the IO pattern used by a benchmark, application, or testing tool, the more likely it is to find something of interest.

To find out how you can contribute to the testing of upcoming Lustre releases, see Lustre Test Plans.