CELP Open Project Proposal 2017

Introduction
The Core Embedded Linux Project (CELP) Open Project Proposal is a process whereby members of the public can submit to the Linux Foundation Core Embedded Linux Project ideas and proposals for projects that they think should be worked on to enhance embedded Linux.

Each year, CE Workgroup spends money on contract work to improve Linux for use in embedded systems. Some of the projects we have sponsored in the past include Linux-tiny, DirectFB enhancements, smem, U-boot and kexecboot improvements, and Squashfs and YAFFS mainlining.

This process is open to Core Embedded Linux Project and Linux Foundation members.

Proposal format
Each proposal should include a one-line summary, the name of the proposer, and a description of the bugfix, feature or technology improvement that is being proposed. The description should be brief (it can be as short as 1 or 2 paragraphs), but should include enough information to understand the scope of the proposal. It is important to list the expected benefit of the work.

The proposal should also list related or already existing work, and the expected scope of effort required to accomplish the goal. Finally, if you know of someone who might be interested or willing to work on the project, please include that as well.

Please use the CEWG Open Project Proposal template as your starting text. Submit the proposal in wikimedia format, and include the following sections:
 * Summary
 * Proposer
 * Description
 * Related Work
 * Scope
 * Contractor Candidates
 * Comments

Note that one-line headings use the format "; section name: value words", and multi-line headings use wiki 'heading' format, which is the section name preceded and followed by 2 equal signs. Finally, please include the category tag shown in the sample and template.

The proposals will be posted on the wiki, and commented on, both on the mailing list and on the wiki, during the proposal review period.

Sample
Here is a sample proposal: Add bootchart boot logger functionality to busybox


 * Summary: Add bootchart boot logger functionality to busybox


 * Proposer: Tim Bird

Description
It would be nice to add bootchart functionality to busybox. Most distributions now have bootchart available as a package, which allows an administrator to see machine resource usage and process startup times, for the system bootup. The existing bootchart boot logger, however, is a shell script, which consumes too much resources when running on an embedded platform.

The Android system includes bootchart boot logger functionality in it's 'init' program. It would be nice to include similar boot logging functionality built into busybox.

The feature would be to grab information from various /proc files, and save them into the files expected by bootchart, for a duration specified as a parameter to the 'init' applet of busybox. The duration parameter could be passed as an environment variable from the kernel, copied from the kernel command line, or set in a specially-named file. (Note that the latter two are used in Android. It would probably be good to keep compatibility with the Android method of parameter passing, to avoid confusion.)

Note that the code for this in Android 'init' is licensed under the Apache license. It's less than 400 lines of C code.

The benefit of adding this feature to busybox is that it would allow easy visualization of embedded system bootup information, for any system that uses busybox (which is pretty much all of them except for Android!)

Related work

 * Bootchart - http://www.bootchart.org/
 * Android init and bootchart
 * Usage guide: see http://elinux.org/Using_Bootchart_on_Android
 * Code: see http://android.git.kernel.org/?p=platform/system/core.git;a=blob_plain;f=init/bootchart.c;hb=HEAD

Scope
This should take less than 2 weeks of development and test effort.

Contractor Candidates
Denys Vlasenko (current busybox maintainer)

Comments
You can also look at entries from the 2011 project year (that was a pretty good year for proposals) for examples. See Project Proposals for 2011.

Where to send the proposal
Send your proposal to the celinux-dev mailing list, at: celinux-dev (at) lists.celinuxforum.org. To do this, you need to subscribe to the list. You can do this via the celinux-dev mailing list web page.

Proposal Deadline
Proposals for the 2017 project list will be accepted until October 25, 2017.

You may submit proposals after that, but they may not be considered for the initial project list. Proposals submitted after August 1 may be used in future years' project lists, if the proposal is still relevant.

Project bids
Bidding for 2017 projects will open after AG review.

See CEWG project bidding instructions for instructions for submitting a bid, if you would like to be involved in contracting for one of the candidate projects this year.

--- Once the proposal period is complete, the Architecture Group of the forum will solicit bids for the projects, in order to determine the feasibility and cost of each project.

CELP will solicit bids via a variety of mechanisms, including working directly with individual contractors with whom CELF has worked previously, and issuing a call for bids from the general public.

The bidding period will be during the Fall of 2017.

Bids received by xxxx, 2018, will be considered at the CELP meetings held in Portland, Oregon, in March 2018.

Project Selection and Completion
The CELP will select the projects that it wants to fund. Member of CELP Architecture Group will vote on the projects. The Architecture Group of the forum will determine the list of projects to fund for late 2017 and 2018 hopefully by mid-November.

Once the projects are selected, the Architecture Group will work with contractors to actually perform the work. AG members or workgroup chairs will manage the projects to completion. Progress on the work will be reported in CELF's monthly newsletters and in relevant community mailing lists.

The project proposals so far
See Project Proposals for 2017 for the proposals that have been made so far.

Selected Projects
The following projects were selected for sponsorship by the Core Embedded Linux Project, this year:

[None have been selected so far]

Q and A
Q. How is this different from other "open project" systems, like Google's "Summer of Code"? A. Other systems often require that the submitter of the proposal be the one volunteering to do the work. With CE WG's Open Project Proposal, anyone who can think of a good idea can submit it, (possibly with hinting about someone who might be a good candidate to perform the work).

Of course you can also submit something you are interested in working on yourself, in the hopes that the CELP will fund the work. - Q. How much money is the CELP willing to spend on these projects? A. The exact amount shall remain a mystery. Historically our budget has been around $100,000, and we usually focus on projects in the $10K to $20k range. However, we have exceptions both above and below this amount. The exact amount of funding will depend a great deal on the projects that are proposed. - '''Q. Are you daft? Why would you let other people suggest ways to spend the CELP's money?''' A. Hey, it's open source. Good ideas can come from anywhere. Note that the CELP still controls what projects get selected, and hence where the money will be spent. That's one of the privileges of CELP membership. However, CELP will publish the list of projects that it will fund, as well as the projects that were not funded. It is hoped that other entities may contribute money or resources to push some of the technologies or features forward, independently or in conjunction with CELP's contribution. - Q. Where will the proposals be published? A. Right here on the eLinux wiki. See Project Proposals for 2017 - Q. How will CEWG decide on contractors for these projects? A. After collecting the proposals, CEWG will solicit bids for contractors for these proposals. In some cases, CELP may proactively contact individuals or groups they think would be good candidates for doing certain work (such as previous CELP contractors, or people already working on certain projects, who are available.

After talking to various contractor candidates, the CELP Architecture Group will select the contractors for the projects, contracts will be drawn up, and the work started.