Project revolution

From wiki.akkit.org

"Revolution" Project collection

For now it's set up to be a set of libraries that can be verified, and used in other projects.

The ultimate goal of this project collection is to produce an open source (MIT License) operating system and some utilities and applications to go with it.

Contents

Ideals/Methodology

The ideals of this set of projects are to create code with as few bugs as possible, with regression testing to verify correctness, especially in edge cases, and to make the code portable, reusable and easy to maintain. The majority of the code will be written in C++, with optional assembly language versions of some functions, for higher performance (platforms likely to be targetted are x86, x86-64, ARM, and powerpc)

The development of these projects will be essentially closed source; Until alpha level is hit, the source will only be available to the team working on it. After that, source release will be determined by the members of the project. All unreleased source will be released with the release of the operating system.

If the source to a project is available, we will welcome bug reports and patches! Relevant information will be listed when the source to a project actually becomes available.

My goals with these projects are to produce code that is: (in order)

  • Useful
  • Maintainable
  • Extendable
  • Easy to read
  • Not doing "everything", but solving specific problems.

And I do hope and expect that this is reasonable

Development levels

Development of these projects will be generalized into one of the following levels:

  • Unorganized - Project repository is not yet set up, or general ideas about the API and content of the project are not complete, or the team is not clear.
  • Early - SVN is set up, the library binary is buildable, the library regression tests can be run, The API may or may not be defined concretely. Little exists at this point.
  • Pre-alpha - the API is moderately complete or done at this time. Core functionality exists, and the library is sufficient to perform it's intended purpose. Some regression tests to verify core behavior are complete and the library passes these tests. Error handling may not be present. Code might be messy.
  • Alpha - the API is rather solid, there's no apparent reason to change it at this point, and how easy it is to use has been explored. Regression tests cover all non-trivial functionality and pass, API is documented, code is sane, bugs may exist, but primarily in edge cases that hadn't been properly considered. Code may be released to the public at this point. Ideally most of the duplication in the codebase should be factored out by this level.
  • Beta - Optimization may have been involved up to this point, but for beta, the code needs to have been profiled and any major speed issues corrected. Assembly languages versions of some functions may be added with the goal of making the library as fast as is practical. Refactoring should be complete and the library should retain as little code duplication as is sane.
  • Final - Regression tests cover all conceivable failure mechanisms. (within sane limits) Library passes all tests. Library is now bug free (ideally).

These are guidelines and leave some things up in the air but nail down the things I think are more important. Additionally they are just something I threw together in the hopes that they'll represent the actual set of levels that get decided on for most of these projects.


Interested parties

This is the list of people I've met who seem to be interested in helping with these projects. Competence isn't taken into account in this list, that will be evaluated on projects that people get involved in, and may affect this list (hope it doesn't).

If you want to be on this list and aren't, or if you are on this list and would prefer not to be listed, please let me know. ([sgstair contacting me can be done via many means])

Interested parties:

  • sgstair (Founder)
  • dsboi
  • yuriks
  • beastd

Library projects

And here is a list of projects, some nearer than others: (some might be split up into smaller projects too)

  • TCP/IP Stack [ Multiplatform | Recruiting | Unorganized: Planned start circa April 1, 2008 ]
  • Math/Crypto lib [ Multiplatform | Planning | Unorganized ]
  • Audio/Multimedia/Video lib [ Multiplatform | Planning | Unorganized ]
  • Rendering/Gui lib [ Multiplatform | Planning | Unorganized ]
  • HTML Rendering lib [ Multiplatform | Planning | Unorganized ]