+1 (binding) -Taylor
> On Oct 12, 2015, at 12:04 PM, Sterling Hughes <sterl...@apache.org> wrote: > > Hi All, > > As mentioned in the DISCUSS thread, all feedback has been positive on > the Mynewt proposal, so I'd like to call a VOTE to accept Mynewt as a > new ASF incubator project. > > The full text of the proposal is available on the incubator wiki at > the following URL: > > https://wiki.apache.org/incubator/MynewtProposal?action=recall&rev=20 > > I have also included the full text below. > > Vote is open until Thurs, 16th October 2015, 23:59:00 PST. > > [ ] +1 to accept Mynewt into the Apache Incubator > [ ] +0 > [ ] -1 because... > > Thank you, > > Sterling > > ---- > /!\ '''FINAL''' /!\ > > This proposal is now complete and has been submitted for a VOTE. > ---- > > = Mynewt Proposal = > > == Abstract == > > Mynewt is a real-time operating system for constrained embedded systems > like wearables, lightbulbs, locks and doorbells. It works on a variety of > 32-bit MCUs (microcontrollers), including ARM Cortex-M and MIPS > architectures. > > == Proposal == > > The goal of this proposal is to bring the Mynewt codebase (developed by > Runtime, Inc.) into the Apache Software Foundation. Mynewt is designed to > run constrained Internet of Things devices, where a small, real-time > operating system is required. > > It includes the following components: > > * Real-time operating system kernel (Scheduler, Mutexes, Semaphores, etc.) > > * Command line package management and build system > > * Hardware Abstraction Layer unifying common MCU features (e.g. GPIOs, > High Resolution Timers, PWM interfaces, UARTs, ADCs, etc.) > > * Board Support Infrastructure, that defines the framework for building > software for various board architectures. > > Should this project be accepted into the incubator, Runtime, Inc. will > assign the ASF a license to all source code developed to date and begin > the development of an open source community around the project. > > == Background == > > Mynewt has been developed solely by Runtime to date. We are a team of 5 > software engineers, that really love writing embedded systems. > > == Rationale == > > With the momentum behind the Internet of Things, there is an increasing > need for standard open source software to help developers create connected > devices. One area where there is a large need is an open-source, liberally > licensed, community-driven RTOS (real-time operating system.) > > Today, there are many RTOSes, the majority of which are provided by > proprietary vendors and many of which are not permissively licensed or > controlled by a single company. These restrictions create fragmentation, > because either not everyone can afford to purchase the operating system or > restrictions put on the OS's use (e.g. restricted to vendor-specific > platforms), means that people using other processors cannot adopt it. > > The lack of a standardized operating system creates fragmentation around > everything above it. Because there is not a well adopted community driven > operating system, people don't have a place to contribute back new > drivers, or networking stacks. Additionally, there is constant work to > port and maintain software across a myriad of different operating systems, > all with slightly different APIs and interfaces. > > In order for the industry to accelerate and keep up with the increasing > complexity in these devices, it's important that an open-source community > form and provide a RTOS effort that: > > * Accepts community contributions and encourages code reuse > * Natively supports source package management, to allow for efficient > redistribution and reuse of software across a broad swath of use cases (from > wearables to industrial equipment) > * Supports all of the "new" protocol stacks required for IoT (e.g. > Bluetooth, IPv6, > etc.) > * Has drivers for all new chipsets, sensors, and other devices > > The core of Mynewt has been designed to accommodate these requirements. It > contains a small, pre-emptive RTOS core, that works on native (OS X, > Linux) and Cortex platforms (and is easily portable to others), and > standardized HAL and BSP interfaces. > > It also provides a build and package management tool that allows > developers to install, develop, and redistribute source packages. This > tool allows developers to start with the core of the OS and its > interfaces, and then download only the source packages that are needed to > run their embedded project. This will allow the community to grow beyond > just porting the core of the Mynewt system and extend to all of the > necessary protocol stacks, drivers and sensor interfaces that a modern > embedded developer will need. > > In addition to the Mynewt core, there is active development around a set > of commonly needed functionality when developing small embedded systems, > including: > > * A Flash Filesystem designed for small flashes, with large block sizes > (very common in single chip designs) > * An Open Bluetooth stack with native support for prevalent modules > > == Initial Goals == > > The core of the Mynewt Operating System is functional. > > The goal is to have an initial release February, 2016. Between now and > then, a number of things need to be finished: > > * Improved HAL (Hardware Abstraction Layer) > * Regression Testing Framework > * Power Management Support in the OS > * Instrumentation Framework > * Statistics > * Log files > * Debugger Support for Embedded Platforms > * Coredumps > * Support for more platforms (e.g. TI, Broadcom) and Cortex M* series > processors. > > Additionally, there are a number of other core services that need to be > developed around the core operating system. > > * Bluetooth LE and Wireless IP stacks > * Log structured flash filesystem > * Flash circular buffer stores > * Drivers for Sensors and Actuators > * Services to control motors, pumps, read accelerometers, heart rate > sensors, etc. > * Core services for location and time > > == Current Status == > > === Meritocracy === > > Initial development has been done at Runtime, however, Mynewt was > intended to be released as an open source project from its inception. > > Our goal during incubation is to develop a community around Mynewt. We > fully intend this to be a community run and led effort. We believe that > decisions should be made on the mailing list, and that core contributors > (regardless of corporate affiliation) should be the ones who decide the > future of the project. > > We will work during the incubator to foster new contributors and grow the > community beyond our company. > > === Community === > > Right now, Mynewt is used by Runtime. Our goal is to expand this community > as we develop, and release the operating system. There are a number of > companies currently working to test and incorporate Mynewt into their > products. > > === Core Developers === > > The core developers of Mynewt are at Runtime. The goal of the incubator is > to grow that community beyond our company. > > === Alignment === > > While there is not much software for constrained embedded environments > within the ASF today, we believe that this is an important and growing > area. > > The ASF has advantages for projects in this space: > > * The GPL (and LGPL) are profoundly impactful for physical products, as > most constrained devices are linked into a single executable, meaning any > proprietary device that includes GPL'd source code must release their > software. > * This often contains information about proprietary hardware > designs as well as software designs. > * Most projects are either not wholly community driven and/or lack a clean IP > trail. > > The permissive licensing enables more groups (both open and proprietary) to > participate in development, to grow the community/ecosystem, and to remix > Mynewt > components into new hardware and software designs. > > == Known Risks == > > === Orphaned Products === > > Mynewt is a new real-time operating system without much adoption. At Runtime, > we are committed to its development and our goal during the incubator is to > grow > the community and adoption around Mynewt. > > === Inexperience with Open Source === > > One of the members of the Runtime team is an emeritus member of the Apache > Software Foundation. Another member has contributed extensively to Linux > and FreeBSD. The other three members do not have experience with open > source, but are curious. > > === Reliance on Salaried Developers === > > Today, Mynewt relies mostly on salaried developers for its existence. This > is an issue we will look to address during the incubation period: we want > to develop a strong community around Mynewt. > > === An Excessive Fascination with the Apache Brand === > > We like the Apache brand (it's a good brand!) However, we want to enter > the ASF because: > > * In order for an OS to be ultimately successful, it needs to be > community driven > * We believe strongly in a community which is a meritocracy and think that > the ASF has a proven, successful framework for managing such communities. > * The ASF has a strong track record in developing healthy communities that > co-exist with commercial entities. > > == Documentation == > > Documentation is available here: https://github.com/mynewt/documentation > > We are actively working on documentation and expect it to improve > dramatically within the next couple of weeks. > > == Initial Source == > > All source code is currently hosted by Runtime, Inc. on Github. > > The source code can be found here: > > https://github.com/mynewt/ > > The "tadpole" repository contains the Core of the Operating System and > file layout. The "larva" repository contains the Core OS and all packages > developed around that core. The "newt" repository has the build and > package management tool that is used to stitch together and build new OS > projects. > > == External Dependencies == > > No external dependencies currently exist in the core OS; all code has been > written by Runtime. > > The board and microcontroller-specific support packages contain code from > the various MCU vendors. This code has been ensured to be under either an > Apache or BSD license. > > == Cryptography == > > None > > == Required Resources == > > === Mailing lists === > > * d...@mynewt.incubator.apache.org > * comm...@mynewt.incubator.apache.org > * notificati...@mynewt.incubator.apache.org > > === Git Directory === > > We'd like to host the source code using Git. > > === Issue Tracking === > > * JIRA Project Mynewt (MYNEWT) > > == Initial Committers == > > * Sterling Hughes (sterling at apache.org) > * William San Filippo (will at runtime.io) > * Christopher Collins (chris at runtime.io) > * Aditi Hilbert (aditi at runtime.io) > * Marko Kiiskila (marko at runtime.io) > * Justin Mclean (jmclean at apache.org) > * Jan Iversen (jani at apache.org) > > == Affiliations == > > * Runtime: Sterling Hughes, William San Filippo, Christopher Collins, > Aditi Hilbert, Marko Kiiskila. > * Class Software: Justin Mclean > * Unaffiliated: Jan Iversen > > == Sponsors == > > === Champion === > > * Marvin Humphrey > > === Mentors === > > * Sterling Hughes > * Jim Jagielski > * Justin Mclean > * Greg Stein > * P. Taylor Goetz > > === Sponsoring Entity === > > * The Incubator PMC. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org > For additional commands, e-mail: general-h...@incubator.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org For additional commands, e-mail: general-h...@incubator.apache.org