Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Bricolage: users

GSOC Proposal: Bricolage Installer v-5 --- Pranava Swaroop S

 

 

Bricolage users RSS feed   Index | Next | Previous | View Threaded


pmadhyastha at acm

Apr 6, 2008, 6:28 AM

Post #1 of 2 (202 views)
Permalink
GSOC Proposal: Bricolage Installer v-5 --- Pranava Swaroop S

Hi all,

I have made the changes which Vivek had pointed out. The CPAN - TEST
modules are relatively new to me, as I have not used them till now. I
request all of you to please correct me if at any place in the
proposal I have made an error. All the changes also have been made in
the GSOC application too.

-------------------------------------------------------------------------------------------------------------------
----------------------------------------------------
Pranava Swaroop
pmadhyastha[at]acm.org Nick: kakashi_
----------------------------------------------------
----------------------------
ABSTRACT
-----------------------------
I quote from "Bricolage" website:
"Bricolage, an open-source enterprise-class content management system,
greatly simplifies the complex tasks of creating, managing, and
publishing the vast libraries of content essential to any
organization."

I wish to take the improvement of the installer and the development of
the modules associated with Bricolage as a part of the Google's Summer
of Code initiative. The main objective here is to ease out
the process of installation and to make the installer more user
friendly, at the same time, making the installer noise free and
flexible for the developers too, which should result in hassle free
update and maintenance. The effort should simplify the whole process
of installation and which would gel beautifully with the afore
mentioned quote.
------------------------------------------------
Benefits to the Perl/Open Source Community
-------------------------------------------------
Looking as it is, there are many problems which entangle the installer
in bricolage. The code of bricolage is quite a bit rough, which makes
the maintenance and bug resolving a tough task.
There are many problems which are reported with respect to the
installer/updater failures. The installation of CPAN modules is yet
another challenge. There are many instances when the automated
installation of the CPAN modules doesn't work. It mostly puts users'
system at the cost of the internet, and every time a new module
release comes out the software might no longer install/upgrade
successfully.
And most of the times, proper guidance to the user is not provided in
case of failures when a particular installation goes wrong.
There are instances when the default modules installed for Apache,
Postgresql are not stable or may not provide the required conditions
for Bricolage to install, in such a case the installer fails suddenly,
echoing a re-installation of the core package(apache/postgresql) message.

Getting installation right is very important.Users get frustrated
quickly by a failed installation. Many won't take a second look.
Henceforth rejuvenating the installer would certainly help an easy
installation and management from both the users end as well as the
developers end.

-------------------------
Project Details
-------------------------
Perl has a provided mature mechanism for the process of installation
by providing CPAN modules. This is the major ingredient in the
creation of the build script and daughter modules - build set which
would be done by using the perl installation toolchain.

'The TOOLCHAIN'
I would be using Module::Build, which performs performs several
actions during compilation, testing, and installation of modules. The
reasons for Module::Build are:- it is pure perl; no make; no shell
commands; easier to customize and cleaner internals. All of which it
came to light when I made a sample install script using both
module::build as well as module::install. However there would be a
small change in the process of installation at the user's end. The
user would be using 'perl Build.PL' instead of the default 'perl
Makefile.PL'. All the features of Module::Build, especially the
command line options which ease out the task would be thoroughly
commented in the Documentation.
There would be other modules which inherit Module::Build, these are
Module::Build::Base<-- this would do the installation in a default
manner. Module::Build::Compat this would help resolve the
compatibility issue with Makefile.PL when the issue arises.
Module::Build::TestReporter would be used to help users report test
failures, the discussion of which is further provided.
Module::Build::Platform::Default initially would be used to install,
after the successful building of the module further divisions into the
Make of the platform would be made.

'Other Processes'
Firstly, the build set would detect if all the required modules are
present in the 'Operating Environment and the distribution' under
consideration. Secondly, if the modules are not present then it would,
if possible, by using sub-scripts, try to install them; else echo the
most appropriate message. If the case is with the CPAN modules, the
script would call sub-scripts to do the installation. These
sub-scripts would be made in such a way that it not only supports the
normal cpan.pm based installation but also the new CPAN++ based
installation. The build script should be capable of detecting the OS
and the Distribution and follow the the Distro's default layout, since
every platform needs custom code. This would be implemented by using a
separate set of modules for each OS/Distro.

The next major part is of the Database Management set, this set also
is an important part. I propose to rebuild the manager. The script
would be able to detect the DB and then there would be specific
subscripts which would be doing the job of calling the DB, creating
the users tables and other DB related tasks as well as backing up and
restoring the DB in case of an upgrade. There is also a huge response
for making custom command line options which the user can provide,
this would be implemented by using 1.> a .conf file which should be
edited by the user or 2.> use direct command line options.

Thirdly, a tool for the purpose of upgrade would be rewritten to
make it more modular. This would again take care of all the data loss
by making clones as is the process being followed now.

Finally, a script made to log would be created in-order to keep a log
of the whole process of installation, which would be very helpful in
the event of a failure of installation both for the user as well as
the panel of developers. I would also make it automatically transfer
the log to the mailing list in-case of failure.

In all the above cases a large portion of the script already
exists, but has many problems. So the task would be to re-sculpt the
whole process of installation. I will try to write almost all the
scripts/modules in perl. Non-Code deliverables will include
documentation for all the scripts and modules mentioned above.

'TESTING'
I propose an on-the-fly testing process in which the each module would
be tested as and when it is coded completely <--- Unit testing. Though
CPAN has a lot of modules for unit testing, modules that I would
prefer are Test-AtRuntime, Test-Script and Test-Compile.
There would be a test suite (as suggested by David) by using the
David's FSA::Rules packages for the whole build set.
After each successful 'logical' install, the installation would be
verified with the correct install.

------------------------
Deliverables:
------------------------
--- 1 ---Build Set - A refreshingly new looking build set with new
added features as mentioned above.
--- 2 ---Database Module - Re-sculpting the database module to suit 1
--- 3 ---Upgrade Modules
--- 4 ---Testing modules using FSA::Rules

--------------------------
Project Schedule
--------------------------
The project would roughly be spaced out as follows:
The breakup of the schedule is made in roughly fortnight format to
accompany a 10 day for the coding process and 5 days for testing and
validation process.

--April 11 - May 01 - Get friendly with mentors and the Perl
community, so that I can understand the ethics of the community.

--May 01 - May 27 - Familiarize self with the complete bricolage package.

Phase I
BUILD SET ONLY
--May 28 - June 15 - Creation of the parent build file and sub
modules,which mainly involve a re-write. The parent build file would
be implementing the Module::Build. There would be careful validation
of the install in each new step.
--June 16 - June 22 - Creation of new scripts for installation of cpan
modules. This is a relatively difficult task as it would involve
careful evaluation of the existing cpan installation module, reviewing
all the pre-requisites for a CPAN++ installation and building the new
modules with constant testing.
--June 23 - June 27 - Creation of a script to automatically to
download default modules for the faulty packages of a particular
distribution.
--June 28 - June 30 - Testing the installation modules and verifying
the installation process.
-------------MIDTERM EVALUATION -------------------------------------
Phase II
--July 01 - July 07 - Creation of Database related modules. This would
basically involve a re-write of the scripts in a more modular way, and
intrinsically beautifying them.
--July 08 - July 15 - Upgrade and implementation of testing modules.
--July 15 - July 20 - Script for the process of logging and automated
bug report.
--July 21 - July 31 - Documentation and extensive testing.
--August 01 - August 11 -Bug catching and fixing bugs
--August 11 - August 18 - Fix Bugs
-------------FINAL EVALUATION----------------------------------------
--August 18 onwards contribute further and maintain the install part.


-----POSSIBILITIES OF ROADBLOCKS---------------------------------
There is least possibilities of road-blocks as I would be starting
early <-- to understand the whole bricolage framework. This would ease
out the pressure.
But in the worst possible case when there is an unavoidable
circumstance, there are three approaches:
I would first try my level best to resolve the issue on my own in the
given time.
I would request my mentor to kindly suggest me a good way of getting out of it.
I would leave the module undone, for a temporary period and would
proceed with other modules. I would again comeback to faulty module
and would work on it. If for some reason the module fails to work, I
would restore the old module to work with the newly built packages.

-----------
BIO
------------
I am a third-year undergraduate at the Malaviya National Institute of
Technology, Jaipur, India. I am pursuing my B.Tech. in Computer
Engineering at the institute. I have been passionate about computers
since my childhood and have been a free software advocate for around 3
years now.

I have contributed to several open source projects, the most prominent
among them have been Gentoo, Apertium and Mozart. These projects have
helped me clear most of my concepts in C and Perl. I also am
interested in Natural Language Processing, where I have mostly used
perl for the purpose of Regular Grammars. These I believe are the
essential requirements for this projects. I have also created a small
content management system and an Online Judge(code Testing Platform)
with perl.
----------------------
Eligibility
----------------------
As per the GSOC requirements, I fulfill all the needed requirements. I
am completely eligible for the Google Summer of Code, 2008 program. I
have all the necessary paper work to prove.

Finally, I would like to express my deep commitment to this project.
You can find more details about me and the projects that I am
currently involved in, at my website. Please don't hesitate to contact
me if any part of this proposal is not clear to you.

---------------------------------
References and Likely Mentors
---------------------------------
I have been in contact with David Weller (Theory) and Vivek Khurana
(no_mind), both have shown an interest in mentoring me. Additionally
my proposal has been commented by Bharder (yukonbob), Marshall Roch
and Eric L. Wilhelm.

Thank you for considering this proposal, and for your time!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Email: pmadhyastha[at]acm.org
IRC Nick: kakashi_
My CV : http://pranava.rspan.in/resume.pdf
My Website: http://pranava.rspan.in/
Latest Version is available at: http://pranava.rspan.in/bricolage_prop.txt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Thanking You.

Regards,
Pranav


david at kineticode

Apr 6, 2008, 3:11 PM

Post #2 of 2 (188 views)
Permalink
Re: GSOC Proposal: Bricolage Installer v-5 --- Pranava Swaroop S [In reply to]

On Apr 6, 2008, at 06:28, Pranav wrote:

> There would be other modules which inherit Module::Build, these are
> Module::Build::Base<-- this would do the installation in a default
> manner. Module::Build::Compat this would help resolve the
> compatibility issue with Makefile.PL when the issue arises.
> Module::Build::TestReporter would be used to help users report test
> failures, the discussion of which is further provided.
> Module::Build::Platform::Default initially would be used to install,
> after the successful building of the module further divisions into the
> Make of the platform would be made.

This is just a list of Module::Build-related modules. I don't see what
it has to do with building a new installer for Bricolage. For example,
Module::Build::TestReporter is for sending test reports for CPAN
modules. Bricolage is not a CPAN module, and so would not use this
module. And even if we did distribute Bricolage via CPAN, you as the
installer writer would do nothing with this module.

So the above just seems to me like a superfluous list of Module::Build-
related modules. It means nothing in this context.

> 'Other Processes'
> Firstly, the build set would detect if all the required modules are
> present in the 'Operating Environment and the distribution' under
> consideration. Secondly, if the modules are not present then it would,
> if possible, by using sub-scripts, try to install them; else echo the
> most appropriate message.

Modules, not scripts. The use of sub-scripts in the current
implementation is part of the problem.

> If the case is with the CPAN modules, the
> script would call sub-scripts to do the installation. These
> sub-scripts would be made in such a way that it not only supports the
> normal cpan.pm based installation but also the new CPAN++ based
> installation.

We do not need to support both. Just one.

> The build script should be capable of detecting the OS
> and the Distribution and follow the the Distro's default layout, since
> every platform needs custom code. This would be implemented by using a
> separate set of modules for each OS/Distro.
>
> The next major part is of the Database Management set, this set also
> is an important part. I propose to rebuild the manager. The script

module, please.

> would be able to detect the DB and then there would be specific
> subscripts which would be doing the job of calling the DB, creating
> the users tables and other DB related tasks as well as backing up and
> restoring the DB in case of an upgrade. There is also a huge response
> for making custom command line options which the user can provide,
> this would be implemented by using 1.> a .conf file which should be
> edited by the user or 2.> use direct command line options.
>
> Thirdly, a tool for the purpose of upgrade would be rewritten to
> make it more modular. This would again take care of all the data loss
> by making clones as is the process being followed now.
>
> Finally, a script made to log would be created in-order to keep a log
> of the whole process of installation, which would be very helpful in
> the event of a failure of installation both for the user as well as
> the panel of developers. I would also make it automatically transfer
> the log to the mailing list in-case of failure.
>
> In all the above cases a large portion of the script already
> exists, but has many problems. So the task would be to re-sculpt the
> whole process of installation. I will try to write almost all the
> scripts/modules in perl. Non-Code deliverables will include
> documentation for all the scripts and modules mentioned above.

Reading this, I just get the impression that you're parroting back
things that I and others have said on the mail list. I don't get the
sense that you actually *understand* the issues or what's involved in
solving them. This is a *huge* project, and I'm not convinced that you
are aware of that.

> 'TESTING'
> I propose an on-the-fly testing process in which the each module would
> be tested as and when it is coded completely <--- Unit testing.

What is "on-the-fly testing"? Do you know what unit testing is?

> Though
> CPAN has a lot of modules for unit testing, modules that I would
> prefer are Test-AtRuntime, Test-Script and Test-Compile.
> There would be a test suite (as suggested by David) by using the
> David's FSA::Rules packages for the whole build set.

FSA::Rules is not for testing. I suggested it as part of the solution
for decision paths in the installer itself, in part because it's
easier to test then a shitload of if-then statements.

Best,

David

Bricolage users RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.