This is my proposal draft. It would be nice if you read it and help to write more correct one.
Apache CouchDB Windows distribution -- Complete Windows support by Couch DB. Adaptation of current POSIX-compliant build system for Windows environment. Managing installation of packages on which Couch DB depends(e.g. erlang, icu, openssl, &c.) Script turning trunk and releases to a binary distribution. Modifying platform-dependent sources. Generating the Couch DB configuration files based on installation parameters. -- *Title/Summary: Apache CouchDB Windows distribution * *Student: Chekmarev Alexander * *Student e-mail: chekmarev.alex at gmail.com * *Student Major: Informational technologies and programming * *Student Degree: Undergraduate B.D. * *Student Graduation: 3rd year of Computer Science Faculty, Voronezh State University, Russia*. *Organization: Apache Software Foundation * *Assigned Mentor: Jan Lehnardt, Noah Slater* *Abstract: Full fledged windows support. Adaptation of configuration and compilation process from UNIX native tools to Windows environment. Couch DB dependencies management and installing it if necessary. Updating configuration files as required for new Couch living environment. Script that would generate a binary distribution from the trunk. Changing windows incompatible parts of code where it presented. * *Detailed Description: Many parts of Couch DB are platform-independent, such as Erlang language, Mozilla Spidermonkey JS Engine. But others have to be modified accordingly to system running on. Current build system created for UNIX-like systems and successfully runs on them. Since, Windows systems have not POSIX-compliant structure, we would have to use libraries allowing to call standart POSIX functions, such as Cygwin. Some components of Couch DB initially developed on Linux and its work on Windows with Cygwin recommended by its developers, e.g. OpenSSL. Configuration *.ini files for CouchDB contains paths and parameters by default, it would be changed to Windows paths, since installation be running on, and all application components should properly use this. Because of Windows environment supports batch files as native script files, main script will be implemented as a batch file producing installation script. Installation script then would be compiled and compressed into an executable. * *Known problem is versioning support, since Couch DB is actively developing there is reasonably need in versioning support. When updating from trunk, the new code can contain using some new features of components which should be downloaded (automatically - is better). There also need to generate links, place it in common menus and destkop. And eventually compile all the components and CouchDB itself in package that can be redistributed on WIn32 platform. * *Additional Information:* *Compiling from scratch to distibution tool. * *Graphical installator distributive containing all needed components to get Couch working on a user platform.* Updating components accordingly to sources updating or versioning support, at least(which means disagree install system if a distribution/ or its part is out of date). Documentation on installing(wiki pages also, probably, after all other work is done) Best, Alex
