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

Mailing List Archive: Catalyst: Users

Suggestions for CatalystX::Installer

 

 

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


fat.perl.hacker at gmail

May 11, 2008, 12:27 AM

Post #1 of 19 (862 views)
Permalink
Suggestions for CatalystX::Installer

Greetings all,

I am developing a program called CatalystX::Installer that will
simplify the installation and setup of Catalyst applications.

I was thinking about what the default options should be for
CatalystX::Installer and am wondering what people want. Basically, I
was thinking that they should be configuration information for the
most common tools used with Catalyst. CatalystX::Installer runs
during or right after the installation of a Catalyst application and
takes care of the initial configuration.Therefore, things that are
commonly done during that time are a good candidate for adding to list
of default options.

Here is what I have so far:

1. Login information

This is where the user logs into the setup application with a username
and password.

2. Required Plugins

Here is where the user enters all of the plugins, such as HTML::Widget
Authorization::ACL, and StackTrance, that need to be loaded.
CatalystX::Installer will then add them to lib/MyApp.pm.

3. Database Locations and Types

This is where the user enters the location of and type of all of the
database that they are going to use. CatalystX::Installer will then
generate all of the necessary config files, possibly by means of
Catalyst::Example::InstantCRUD.

4. Engine

The user can select whether to use mod_perl, fastcgi, or something
else. CatalystX::Installer will then do the necessary configuration.


That is all I have so far. I was also think about having 4 screens, 1
for login, 1 for models, 1 for views, and 1 for controllers; however,
this might be hard to implement due to how blurry the borders between
those last 3 can be.

Anyways, I welcome any suggestions for default(or even non-default)
options for the setup application(which will consist of HTML forms).
I also welcome comments or questions on my current ideas or
CatalystX::Installer in general.

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


jon at jrock

May 11, 2008, 12:55 AM

Post #2 of 19 (834 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

Just a meta comment. I think you would get more attention from a
subject like "Looking for suggestions for CatalystX::Installer". The
current subject implies that you are making suggestions instead of
soliciting them. As a result, suggestion-makers may be ignoring your
post.

Regards,
Jonathan Rockway

--
print just => another => perl => hacker => if $,=$"

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


perimus at gmail

May 11, 2008, 12:52 PM

Post #3 of 19 (823 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

Paul,

Is CatalystX::Installer going to be used to help initally create a
project, or help deploy a project that is already written to a server
for use? If it is for helping deploy a project to a server, there's a
few things I think would be helpful.

- Generate a cpan preresiquites list from the source
- Generate a file or archive of some sort that can be used to deploy
the application
- Install the preresiquites via CPAN
- Implement setting up the initial database state, perhaps through
$schema->deploy(), or a SQL script, or another method
- create a system user/group to run the application under
- create the location on disk and extract the application to it from a
tar or other sort of archive
- run the app's test suite and report if tests succeed or fail
- generate an include file... perhaps something like myapp.httpd.conf
that can be included into httpd.conf

Hopefully this is helpful!

/Mitchell K. Jackson

On Sun, May 11, 2008 at 2:27 AM, Paul Cain <fat.perl.hacker[at]gmail.com> wrote:
> Greetings all,
>
> I am developing a program called CatalystX::Installer that will
> simplify the installation and setup of Catalyst applications.
>
> I was thinking about what the default options should be for
> CatalystX::Installer and am wondering what people want. Basically, I
> was thinking that they should be configuration information for the
> most common tools used with Catalyst. CatalystX::Installer runs
> during or right after the installation of a Catalyst application and
> takes care of the initial configuration.Therefore, things that are
> commonly done during that time are a good candidate for adding to list
> of default options.
>
> Here is what I have so far:
>
> 1. Login information
>
> This is where the user logs into the setup application with a username
> and password.
>
> 2. Required Plugins
>
> Here is where the user enters all of the plugins, such as HTML::Widget
> Authorization::ACL, and StackTrance, that need to be loaded.
> CatalystX::Installer will then add them to lib/MyApp.pm.
>
> 3. Database Locations and Types
>
> This is where the user enters the location of and type of all of the
> database that they are going to use. CatalystX::Installer will then
> generate all of the necessary config files, possibly by means of
> Catalyst::Example::InstantCRUD.
>
> 4. Engine
>
> The user can select whether to use mod_perl, fastcgi, or something
> else. CatalystX::Installer will then do the necessary configuration.
>
>
> That is all I have so far. I was also think about having 4 screens, 1
> for login, 1 for models, 1 for views, and 1 for controllers; however,
> this might be hard to implement due to how blurry the borders between
> those last 3 can be.
>
> Anyways, I welcome any suggestions for default(or even non-default)
> options for the setup application(which will consist of HTML forms).
> I also welcome comments or questions on my current ideas or
> CatalystX::Installer in general.
>
> _______________________________________________
> List: Catalyst[at]lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


fat.perl.hacker at gmail

May 11, 2008, 7:52 PM

Post #4 of 19 (818 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

Hi Mitch,

You have some interesting ideas; thank you for your input.

CatalystX::Installer is mainly designed to help deploy an already
written project to a server for use. Here is a link to the full
description of my current plan:
http://news.perlfoundation.org/2008/05/2008q2_grant_proposal_catalyst.html#more.
Although I'm still planning, so things might change.

On Sun, May 11, 2008 at 2:52 PM, Mitch Jackson <perimus[at]gmail.com> wrote:
> Paul,
>
> Is CatalystX::Installer going to be used to help initally create a
> project, or help deploy a project that is already written to a server
> for use? If it is for helping deploy a project to a server, there's a
> few things I think would be helpful.
>
> - Generate a cpan preresiquites list from the source
> - Generate a file or archive of some sort that can be used to deploy
> the application
> - Install the preresiquites via CPAN
> - Implement setting up the initial database state, perhaps through
> $schema->deploy(), or a SQL script, or another method
> - create a system user/group to run the application under
> - create the location on disk and extract the application to it from a
> tar or other sort of archive
> - run the app's test suite and report if tests succeed or fail
> - generate an include file... perhaps something like myapp.httpd.conf
> that can be included into httpd.conf
>
> Hopefully this is helpful!
>
> /Mitchell K. Jackson
>
> On Sun, May 11, 2008 at 2:27 AM, Paul Cain <fat.perl.hacker[at]gmail.com> wrote:
>> Greetings all,
>>
>> I am developing a program called CatalystX::Installer that will
>> simplify the installation and setup of Catalyst applications.
>>
>> I was thinking about what the default options should be for
>> CatalystX::Installer and am wondering what people want. Basically, I
>> was thinking that they should be configuration information for the
>> most common tools used with Catalyst. CatalystX::Installer runs
>> during or right after the installation of a Catalyst application and
>> takes care of the initial configuration.Therefore, things that are
>> commonly done during that time are a good candidate for adding to list
>> of default options.
>>
>> Here is what I have so far:
>>
>> 1. Login information
>>
>> This is where the user logs into the setup application with a username
>> and password.
>>
>> 2. Required Plugins
>>
>> Here is where the user enters all of the plugins, such as HTML::Widget
>> Authorization::ACL, and StackTrance, that need to be loaded.
>> CatalystX::Installer will then add them to lib/MyApp.pm.
>>
>> 3. Database Locations and Types
>>
>> This is where the user enters the location of and type of all of the
>> database that they are going to use. CatalystX::Installer will then
>> generate all of the necessary config files, possibly by means of
>> Catalyst::Example::InstantCRUD.
>>
>> 4. Engine
>>
>> The user can select whether to use mod_perl, fastcgi, or something
>> else. CatalystX::Installer will then do the necessary configuration.
>>
>>
>> That is all I have so far. I was also think about having 4 screens, 1
>> for login, 1 for models, 1 for views, and 1 for controllers; however,
>> this might be hard to implement due to how blurry the borders between
>> those last 3 can be.
>>
>> Anyways, I welcome any suggestions for default(or even non-default)
>> options for the setup application(which will consist of HTML forms).
>> I also welcome comments or questions on my current ideas or
>> CatalystX::Installer in general.
>>
>> _______________________________________________
>> List: Catalyst[at]lists.scsys.co.uk
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
>> Dev site: http://dev.catalyst.perl.org/
>>
>
> _______________________________________________
> List: Catalyst[at]lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


jon at jrock

May 11, 2008, 8:44 PM

Post #5 of 19 (820 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

* On Mon, May 12 2008, Mitch Jackson wrote:
> Paul,
>
> Is CatalystX::Installer going to be used to help initally create a
> project, or help deploy a project that is already written to a server
> for use? If it is for helping deploy a project to a server, there's a
> few things I think would be helpful.
>
> - Generate a cpan preresiquites list from the source

Module::ScanDeps

> - Generate a file or archive of some sort that can be used to deploy
> the application

"make catalyst_par"

> - Install the preresiquites via CPAN

"make installdeps"

> - Implement setting up the initial database state, perhaps through
> $schema->deploy(), or a SQL script, or another method

DBICx::Deploy

> - run the app's test suite and report if tests succeed or fail

"make test"

Regards,
Jonathan Rockway

--
print just => another => perl => hacker => if $,=$"

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


diment at gmail

May 11, 2008, 11:59 PM

Post #6 of 19 (821 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

On 12 May 2008, at 13:44, Jonathan Rockway wrote:

>
> Module::ScanDeps
>

needs some configuration || filtering to make sense of it, and warn
if Makefile.PL looks wrong

> "make catalyst_par"

and improve the documentation here

>
> "make installdeps"
>
> DBICx::Deploy
>
> "make test"
>

Provide some standard configuration for DBIx::Class models, and
Catalyst::Model::File models so we get a sense of what's required for
Catalyst::Model::Whatever to support catalystx::installer. I think
that View:: logic is probably ususally hard coded into the app, but i
could be wrong.

Catalyst::Controller::REST for the CRUD stuff required (maybe) -
remember this originates in a (rejected[1]) google summer of code
application, so we need to provide learning opportunities as well as
a final result.

i still want support for GetOpt:: modules as well so that we can do
all this from the comand line.

The opportunity here is for the whole thing to be done wrong first
time round so we know what to do for the subsequent iteration. This
is a technique that is proven to work in technology development many
times over [2].

[1] Rejected because google is a python shop and so the perl
foundation didn't get enough slots, and the enlightened perl
organisation application was rejected this time round

[2] Although unix looks like it doesn't conform to this, it was the
licencing that unix got wrong mostly.

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


fat.perl.hacker at gmail

May 12, 2008, 12:55 AM

Post #7 of 19 (821 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

All of those modules and the suggestions look like they will be really
helpful, thanks for the input Jonathan and Kieren.

>I still want support for GetOpt:: modules as well so that we can do all this from the comand line.

Sounds good, the GetOpt:: modules should make command line arguments
rather trivial.

>The opportunity here is for the whole thing to be done wrong first time round so we know what to do for the >subsequent iteration. This is a technique that is proven to work in technology development many times over [2].

I guess I will be back here next year to fix my mistakes then.

On Mon, May 12, 2008 at 1:59 AM, Kieren Diment <diment[at]gmail.com> wrote:
>
> On 12 May 2008, at 13:44, Jonathan Rockway wrote:
>
>>
>> Module::ScanDeps
>>
>
> needs some configuration || filtering to make sense of it, and warn if
> Makefile.PL looks wrong
>
>> "make catalyst_par"
>
> and improve the documentation here
>
>>
>> "make installdeps"
>>
>> DBICx::Deploy
>>
>> "make test"
>>
>
> Provide some standard configuration for DBIx::Class models, and
> Catalyst::Model::File models so we get a sense of what's required for
> Catalyst::Model::Whatever to support catalystx::installer. I think that
> View:: logic is probably ususally hard coded into the app, but i could be
> wrong.
>
> Catalyst::Controller::REST for the CRUD stuff required (maybe) - remember
> this originates in a (rejected[1]) google summer of code application, so we
> need to provide learning opportunities as well as a final result.
>
> i still want support for GetOpt:: modules as well so that we can do all this
> from the comand line.
>
> The opportunity here is for the whole thing to be done wrong first time
> round so we know what to do for the subsequent iteration. This is a
> technique that is proven to work in technology development many times over
> [2].
>
> [1] Rejected because google is a python shop and so the perl foundation
> didn't get enough slots, and the enlightened perl organisation application
> was rejected this time round
>
> [2] Although unix looks like it doesn't conform to this, it was the
> licencing that unix got wrong mostly.
>
> _______________________________________________
> List: Catalyst[at]lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


fat.perl.hacker at gmail

May 13, 2008, 10:16 PM

Post #8 of 19 (786 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

I've been examining everything, and was ponder about a few things:

PAR looks like a great way to archive a Catalyst app, but it doesn't
look like it is possible to un-archive it to where it is back to its
original state in case some changes need to be made. Of course, that
could be accomplished with a tar.gz file(created by make dist). I'm
not sure if that is really a problem or not.

It appears that all that CatalystX::Installer should need to deploy a
database is a valid schema.

After getting a list of required modules(using Module::ScanDeps), do I
just add them to makefile.PL?

On Mon, May 12, 2008 at 2:55 AM, Paul Cain <fat.perl.hacker[at]gmail.com> wrote:
> All of those modules and the suggestions look like they will be really
> helpful, thanks for the input Jonathan and Kieren.
>
>
> >I still want support for GetOpt:: modules as well so that we can do all this from the comand line.
>
> Sounds good, the GetOpt:: modules should make command line arguments
> rather trivial.
>
>
> >The opportunity here is for the whole thing to be done wrong first time round so we know what to do for the >subsequent iteration. This is a technique that is proven to work in technology development many times over [2].
>
> I guess I will be back here next year to fix my mistakes then.
>
>
>
> On Mon, May 12, 2008 at 1:59 AM, Kieren Diment <diment[at]gmail.com> wrote:
> >
> > On 12 May 2008, at 13:44, Jonathan Rockway wrote:
> >
> >>
> >> Module::ScanDeps
> >>
> >
> > needs some configuration || filtering to make sense of it, and warn if
> > Makefile.PL looks wrong
> >
> >> "make catalyst_par"
> >
> > and improve the documentation here
> >
> >>
> >> "make installdeps"
> >>
> >> DBICx::Deploy
> >>
> >> "make test"
> >>
> >
> > Provide some standard configuration for DBIx::Class models, and
> > Catalyst::Model::File models so we get a sense of what's required for
> > Catalyst::Model::Whatever to support catalystx::installer. I think that
> > View:: logic is probably ususally hard coded into the app, but i could be
> > wrong.
> >
> > Catalyst::Controller::REST for the CRUD stuff required (maybe) - remember
> > this originates in a (rejected[1]) google summer of code application, so we
> > need to provide learning opportunities as well as a final result.
> >
> > i still want support for GetOpt:: modules as well so that we can do all this
> > from the comand line.
> >
> > The opportunity here is for the whole thing to be done wrong first time
> > round so we know what to do for the subsequent iteration. This is a
> > technique that is proven to work in technology development many times over
> > [2].
> >
> > [1] Rejected because google is a python shop and so the perl foundation
> > didn't get enough slots, and the enlightened perl organisation application
> > was rejected this time round
> >
> > [2] Although unix looks like it doesn't conform to this, it was the
> > licencing that unix got wrong mostly.
> >
> > _______________________________________________
> > List: Catalyst[at]lists.scsys.co.uk
> > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> > Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
> > Dev site: http://dev.catalyst.perl.org/
> >
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


fat.perl.hacker at gmail

May 14, 2008, 1:17 AM

Post #9 of 19 (789 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

Here is output from Module::ScanDeps

#.pl file
'AutoLoader' => '5.64',
'File::Spec' => '3.2701',
'File::Spec::Unix' => '3.2701',
'Scalar::Util' => '1.19',
'inc::Module::Install' => '0.72',
'Cwd' => '3.2701',
'List::Util' => '1.19',
'Module::Install' => '0.72',

#.pm file
'AutoLoader' => '5.64',
'Catalyst::Runtime' => '5.7012',
'parent' => '0.221',
'List::Util' => '1.19',
'Scalar::Util' => '1.19',


On Wed, May 14, 2008 at 12:16 AM, Paul Cain <fat.perl.hacker[at]gmail.com> wrote:
> I've been examining everything, and was ponder about a few things:
>
> PAR looks like a great way to archive a Catalyst app, but it doesn't
> look like it is possible to un-archive it to where it is back to its
> original state in case some changes need to be made. Of course, that
> could be accomplished with a tar.gz file(created by make dist). I'm
> not sure if that is really a problem or not.
>
> It appears that all that CatalystX::Installer should need to deploy a
> database is a valid schema.
>
> After getting a list of required modules(using Module::ScanDeps), do I
> just add them to makefile.PL?
>
>
>
> On Mon, May 12, 2008 at 2:55 AM, Paul Cain <fat.perl.hacker[at]gmail.com> wrote:
> > All of those modules and the suggestions look like they will be really
> > helpful, thanks for the input Jonathan and Kieren.
> >
> >
> > >I still want support for GetOpt:: modules as well so that we can do all this from the comand line.
> >
> > Sounds good, the GetOpt:: modules should make command line arguments
> > rather trivial.
> >
> >
> > >The opportunity here is for the whole thing to be done wrong first time round so we know what to do for the >subsequent iteration. This is a technique that is proven to work in technology development many times over [2].
> >
> > I guess I will be back here next year to fix my mistakes then.
> >
> >
> >
> > On Mon, May 12, 2008 at 1:59 AM, Kieren Diment <diment[at]gmail.com> wrote:
> > >
> > > On 12 May 2008, at 13:44, Jonathan Rockway wrote:
> > >
> > >>
> > >> Module::ScanDeps
> > >>
> > >
> > > needs some configuration || filtering to make sense of it, and warn if
> > > Makefile.PL looks wrong
> > >
> > >> "make catalyst_par"
> > >
> > > and improve the documentation here
> > >
> > >>
> > >> "make installdeps"
> > >>
> > >> DBICx::Deploy
> > >>
> > >> "make test"
> > >>
> > >
> > > Provide some standard configuration for DBIx::Class models, and
> > > Catalyst::Model::File models so we get a sense of what's required for
> > > Catalyst::Model::Whatever to support catalystx::installer. I think that
> > > View:: logic is probably ususally hard coded into the app, but i could be
> > > wrong.
> > >
> > > Catalyst::Controller::REST for the CRUD stuff required (maybe) - remember
> > > this originates in a (rejected[1]) google summer of code application, so we
> > > need to provide learning opportunities as well as a final result.
> > >
> > > i still want support for GetOpt:: modules as well so that we can do all this
> > > from the comand line.
> > >
> > > The opportunity here is for the whole thing to be done wrong first time
> > > round so we know what to do for the subsequent iteration. This is a
> > > technique that is proven to work in technology development many times over
> > > [2].
> > >
> > > [1] Rejected because google is a python shop and so the perl foundation
> > > didn't get enough slots, and the enlightened perl organisation application
> > > was rejected this time round
> > >
> > > [2] Although unix looks like it doesn't conform to this, it was the
> > > licencing that unix got wrong mostly.
> > >
> > > _______________________________________________
> > > List: Catalyst[at]lists.scsys.co.uk
> > > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> > > Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
> > > Dev site: http://dev.catalyst.perl.org/
> > >
> >
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


omega at palle

May 14, 2008, 1:43 AM

Post #10 of 19 (786 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

On May 14, 2008, at 7:16 AM, Paul Cain wrote:

> I've been examining everything, and was ponder about a few things:
>
> PAR looks like a great way to archive a Catalyst app, but it doesn't
> look like it is possible to un-archive it to where it is back to its
> original state in case some changes need to be made. Of course, that
> could be accomplished with a tar.gz file(created by make dist). I'm
> not sure if that is really a problem or not.
>
> It appears that all that CatalystX::Installer should need to deploy a
> database is a valid schema.
>
> After getting a list of required modules(using Module::ScanDeps), do I
> just add them to makefile.PL?
>

I would say that making sure the deps are correct would not be the job
of CatalystX::Installer, but the developer of the app.

What I hope CatalystX::Installer will be, is something that I can use
in my apps to make them easier to set up for people installing the app.

This for me includes:

- dependency handling
any deps the app needs, that isn't available, or the wrong version
should be installed / helped installed. For instance, a debian user
might want suggestions for debian packages to install (quite large
scope :p) For me it should not infer deps automaticly at this time,
that the developer should do before releasing his app.

- app configuration
Databases, paths, etc. This needs to be very customizable/pluggable.
For instance in easycms2, I have a config setting for what resizes to
make of pictures. It would be classy if I could easily map this to
some webform using CatalystX::Installer :p

- schema deployment / upgrades
Deploy or upgrade the given database-configuration. This sort of
infers that the CatalystX::Installer also can be used for upgrades :p

- example configurations
For apache, lighty, nginx, perlbal(?), http-server, fastcgi etc.
Perhaps it could even go as far as trying to put config under the
propper /etc/apache/conf-enabled or whatever (this becomes distro-
specific, and probably needs to be pluggable)

- Running tests.
This I think is a cool idea, to optionally run tests against the
finished setup. The author should perhaps specify which tests to run


- andreas


_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


diment at gmail

May 14, 2008, 2:21 AM

Post #11 of 19 (784 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

On 14 May 2008, at 18:43, Andreas Marienborg wrote:
>
> I would say that making sure the deps are correct would not be the
> job of CatalystX::Installer, but the developer of the app.
>

Yes, but it's useful ^W essential to let the dev team know when
they've stuffed up.


> What I hope CatalystX::Installer will be, is something that I can
> use in my apps to make them easier to set up for people installing
> the app.
>
> This for me includes:
>
> - dependency handling
> any deps the app needs, that isn't available, or the wrong version
> should be installed / helped installed. For instance, a debian user
> might want suggestions for debian packages to install (quite large
> scope :p) For me it should not infer deps automaticly at this time,
> that the developer should do before releasing his app.
>

yep, local:lib or par i'm not sure which. Someone else can answer
this one.


> - app configuration
> Databases, paths, etc. This needs to be very customizable/
> pluggable. For instance in easycms2, I have a config setting for
> what resizes to make of pictures. It would be classy if I could
> easily map this to some webform using CatalystX::Installer :p
>

+1

> - schema deployment / upgrades
> Deploy or upgrade the given database-configuration. This sort of
> infers that the CatalystX::Installer also can be used for upgrades :p
>


hmm, scope creep

> - example configurations
> For apache, lighty, nginx, perlbal(?), http-server, fastcgi etc.
> Perhaps it could even go as far as trying to put config under the
> propper /etc/apache/conf-enabled or whatever (this becomes distro-
> specific, and probably needs to be pluggable)
>

yep, sounds fine for a prototype

> - Running tests.
> This I think is a cool idea, to optionally run tests against the
> finished setup. The author should perhaps specify which tests to run
>
>

and the name of the server to run them against.

> - andreas
>

Thanks for the input.

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


fat.perl.hacker at gmail

May 17, 2008, 3:24 AM

Post #12 of 19 (737 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

I have created a rough specification based on all of this input. It is
a bit rough right now, but I will try to clean it up when I get more
time. This week is the week of my final exams, therefore I was busy.

Here is the specification(if you are too lazy to read the whole thing,
skip to the footnotes for points of conversation). Questions,
comments, and more input/feedback are welcome:


*Synopsis*
Create a web application that provides a cross-platform generic GUI
for setting up Catalyst applications.

*Project Details*
For CatalystX::Installer, the Movable Type setup wizard is used as an
inspiration for its design. The main new idea of this approach is that
the program will provide a generic GUI that works with most common
use-cases for Catalyst applications, and provides a framework for
extension for specialist use-cases.
This approach frees the Catalyst developers from having to design a
setup wizard for their application(with the possible exception of some
special cases) while also freeing the user from the hassle of having
to use a different(or no) install wizard for each Catalyst application
that he or she installs.

#What The Developer Does

$ catalyst MyApp
$ cd MyApp
$ catalystx-installer [options]

The first command creates the skeleton of the Catalyst application,
the second command switch to the root directory of that Catalyst
application, and the third command creates script/myapp_setup.pl and
handles any special options.

Where script/myapp_setup.pl would contain a stand-alone server
similar to script/myapp_server.pl. The administrator(person installing
the Catalyst application) could then connect to this server and use
the GUI to apply the configuration information[1] when the application
is installed on a server. The application developer could also
customize this based on the requirements of his or her application. I
would create a set of APIs that wrap around HTML::FormFu to make this
process as simple as possible. For example, if the application
developer wanted to allow users to run SQL commands(from a file) on a
SQLite database, he or she could do something like this[2].

my $sql_commands=CatalystX::Installer::Controller->new();
$sql_commands->set_type('Entry');
$sql_commands->set_action(sub{
my ($self, $c,$database,$sql_file);
system "sqlite3 $database < $sql_file";
});

This would allow the developer to easily customize the installer for
his or her applications. A link to "script/myapp_setup.pl" could
possibly be placed into the root directory during make dist. The
developer could place post-setup in a directory called
'post_t/'.Lastly, the developer could archive the application for
distribution.



#What The User Does

When the user(server administrator) downloads the applications, they
first extract it from the archive, switches to directory, and then
types the command[3]:

$ perl script/myapp_setup.pl

First, it scans for dependencies with Module::ScanDeps, and adds any
dependencies not already found in Makefile.PL to Makefile.PL. It then
runs through the installation scripts while keeping the user informed
of its progress:

$perl Makefile.PL
$make
$make test
$make install

If the tests in 'make test' pass and 'make install' complete
successfully, it will prompt the user to either enter a password or
use a randomly generated password with which the GUI setup can be
accessed(the user can change the password in the GUI setup). The user
can then access this server either from the local machine or a remote
one, as long as they are using web browser capable of entering
information into web forms. The password exists to prevent
unauthorized access to myapp_setup.pl, it is stored in an encrypted
location, and it is required for all subsequent runnings of
myapp_setup.pl. The connection will also be encrypted with SSL/TLS in
order to assure the safety of all data sent. When the GUI setup is
complete, it will ask the user if they want the setup program to
create a script that can be used to automatically enter the data that
they just entered into the GUI setup program. This allows a user to
clone a setup for multiple systems and of course a password is still
required. Also, the script, if created, will only be readable by the
user who created it.

The GUI setup will be (possible) be organized into four sections:
Login, Model, Controller, and View. Each of these sections can also
have sub-sections.

CatalystX::Installer can be used for more than just installation; it
can also be used to reconfigure an application that has already been
installed. For example, if the user were to run myapp_setup.pl again,
they could change the options they set up the first time.
myapp_setup.pl would then save a backup copy of the original
configuration file(s), and create new ones with the new options[4].

There are of course some uncertainties for this application. One of
the main foreseeable problems for this application will be making the
GUI generic enough where works for all programs, but not so generic
that user or developer(s) needs to do a lot of customizations in
order to satisfactorily setup the program.


#Footnotes
[1] Some things that can be configured in the GUI setup include the following:
username
password
plugins to load
include file
include paths
database location(if exists)
database schema
Configuration for other types of models
SQL commands
Engine(mod_perl, fastcgi, ect)
Extra configuration(any other editing of configuration files)

[2] The final code will most likely be much different and much more
refined. This example is just to give the reader a basic idea of
things.

[3] Should script/myapp_setup.pl exist in a PAR archive in order to
prevent the problem of the script not running because of missing
dependencies?

[4] Should script/myapp_setup.pl always run through the installation
scripts (Module::ScanDeps, perl Makefile.PL, make, make test, make
install) every time the program runs, or should it just do it during
its first run and at the user's request? Perhaps the script could be
split into two parts: one of which runs through the installation
scripts, and the other containing the server with the GUI forms where
the user enters the rest of the setup information.


On Wed, May 14, 2008 at 4:21 AM, Kieren Diment <diment[at]gmail.com> wrote:
>
> On 14 May 2008, at 18:43, Andreas Marienborg wrote:
>>
>> I would say that making sure the deps are correct would not be the job of
>> CatalystX::Installer, but the developer of the app.
>>
>
> Yes, but it's useful ^W essential to let the dev team know when they've
> stuffed up.
>
>
>> What I hope CatalystX::Installer will be, is something that I can use in
>> my apps to make them easier to set up for people installing the app.
>>
>> This for me includes:
>>
>> - dependency handling
>> any deps the app needs, that isn't available, or the wrong version should
>> be installed / helped installed. For instance, a debian user might want
>> suggestions for debian packages to install (quite large scope :p) For me it
>> should not infer deps automaticly at this time, that the developer should do
>> before releasing his app.
>>
>
> yep, local:lib or par i'm not sure which. Someone else can answer this one.
>
>
>> - app configuration
>> Databases, paths, etc. This needs to be very customizable/pluggable. For
>> instance in easycms2, I have a config setting for what resizes to make of
>> pictures. It would be classy if I could easily map this to some webform
>> using CatalystX::Installer :p
>>
>
> +1
>
>> - schema deployment / upgrades
>> Deploy or upgrade the given database-configuration. This sort of infers
>> that the CatalystX::Installer also can be used for upgrades :p
>>
>
>
> hmm, scope creep
>
>> - example configurations
>> For apache, lighty, nginx, perlbal(?), http-server, fastcgi etc.
>> Perhaps it could even go as far as trying to put config under the propper
>> /etc/apache/conf-enabled or whatever (this becomes distro-specific, and
>> probably needs to be pluggable)
>>
>
> yep, sounds fine for a prototype
>
>> - Running tests.
>> This I think is a cool idea, to optionally run tests against the finished
>> setup. The author should perhaps specify which tests to run
>>
>>
>
> and the name of the server to run them against.
>
>> - andreas
>>
>
> Thanks for the input.
>
> _______________________________________________
> List: Catalyst[at]lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


fat.perl.hacker at gmail

May 21, 2008, 3:15 PM

Post #13 of 19 (647 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

My grant application for the Perl Foundation was rejected.

On Sat, May 17, 2008 at 5:24 AM, Paul Cain <fat.perl.hacker[at]gmail.com> wrote:
> I have created a rough specification based on all of this input. It is
> a bit rough right now, but I will try to clean it up when I get more
> time. This week is the week of my final exams, therefore I was busy.
>
> Here is the specification(if you are too lazy to read the whole thing,
> skip to the footnotes for points of conversation). Questions,
> comments, and more input/feedback are welcome:
>
>
> *Synopsis*
> Create a web application that provides a cross-platform generic GUI
> for setting up Catalyst applications.
>
> *Project Details*
> For CatalystX::Installer, the Movable Type setup wizard is used as an
> inspiration for its design. The main new idea of this approach is that
> the program will provide a generic GUI that works with most common
> use-cases for Catalyst applications, and provides a framework for
> extension for specialist use-cases.
> This approach frees the Catalyst developers from having to design a
> setup wizard for their application(with the possible exception of some
> special cases) while also freeing the user from the hassle of having
> to use a different(or no) install wizard for each Catalyst application
> that he or she installs.
>
> #What The Developer Does
>
> $ catalyst MyApp
> $ cd MyApp
> $ catalystx-installer [options]
>
> The first command creates the skeleton of the Catalyst application,
> the second command switch to the root directory of that Catalyst
> application, and the third command creates script/myapp_setup.pl and
> handles any special options.
>
> Where script/myapp_setup.pl would contain a stand-alone server
> similar to script/myapp_server.pl. The administrator(person installing
> the Catalyst application) could then connect to this server and use
> the GUI to apply the configuration information[1] when the application
> is installed on a server. The application developer could also
> customize this based on the requirements of his or her application. I
> would create a set of APIs that wrap around HTML::FormFu to make this
> process as simple as possible. For example, if the application
> developer wanted to allow users to run SQL commands(from a file) on a
> SQLite database, he or she could do something like this[2].
>
> my $sql_commands=CatalystX::Installer::Controller->new();
> $sql_commands->set_type('Entry');
> $sql_commands->set_action(sub{
> my ($self, $c,$database,$sql_file);
> system "sqlite3 $database < $sql_file";
> });
>
> This would allow the developer to easily customize the installer for
> his or her applications. A link to "script/myapp_setup.pl" could
> possibly be placed into the root directory during make dist. The
> developer could place post-setup in a directory called
> 'post_t/'.Lastly, the developer could archive the application for
> distribution.
>
>
>
> #What The User Does
>
> When the user(server administrator) downloads the applications, they
> first extract it from the archive, switches to directory, and then
> types the command[3]:
>
> $ perl script/myapp_setup.pl
>
> First, it scans for dependencies with Module::ScanDeps, and adds any
> dependencies not already found in Makefile.PL to Makefile.PL. It then
> runs through the installation scripts while keeping the user informed
> of its progress:
>
> $perl Makefile.PL
> $make
> $make test
> $make install
>
> If the tests in 'make test' pass and 'make install' complete
> successfully, it will prompt the user to either enter a password or
> use a randomly generated password with which the GUI setup can be
> accessed(the user can change the password in the GUI setup). The user
> can then access this server either from the local machine or a remote
> one, as long as they are using web browser capable of entering
> information into web forms. The password exists to prevent
> unauthorized access to myapp_setup.pl, it is stored in an encrypted
> location, and it is required for all subsequent runnings of
> myapp_setup.pl. The connection will also be encrypted with SSL/TLS in
> order to assure the safety of all data sent. When the GUI setup is
> complete, it will ask the user if they want the setup program to
> create a script that can be used to automatically enter the data that
> they just entered into the GUI setup program. This allows a user to
> clone a setup for multiple systems and of course a password is still
> required. Also, the script, if created, will only be readable by the
> user who created it.
>
> The GUI setup will be (possible) be organized into four sections:
> Login, Model, Controller, and View. Each of these sections can also
> have sub-sections.
>
> CatalystX::Installer can be used for more than just installation; it
> can also be used to reconfigure an application that has already been
> installed. For example, if the user were to run myapp_setup.pl again,
> they could change the options they set up the first time.
> myapp_setup.pl would then save a backup copy of the original
> configuration file(s), and create new ones with the new options[4].
>
> There are of course some uncertainties for this application. One of
> the main foreseeable problems for this application will be making the
> GUI generic enough where works for all programs, but not so generic
> that user or developer(s) needs to do a lot of customizations in
> order to satisfactorily setup the program.
>
>
> #Footnotes
> [1] Some things that can be configured in the GUI setup include the following:
> username
> password
> plugins to load
> include file
> include paths
> database location(if exists)
> database schema
> Configuration for other types of models
> SQL commands
> Engine(mod_perl, fastcgi, ect)
> Extra configuration(any other editing of configuration files)
>
> [2] The final code will most likely be much different and much more
> refined. This example is just to give the reader a basic idea of
> things.
>
> [3] Should script/myapp_setup.pl exist in a PAR archive in order to
> prevent the problem of the script not running because of missing
> dependencies?
>
> [4] Should script/myapp_setup.pl always run through the installation
> scripts (Module::ScanDeps, perl Makefile.PL, make, make test, make
> install) every time the program runs, or should it just do it during
> its first run and at the user's request? Perhaps the script could be
> split into two parts: one of which runs through the installation
> scripts, and the other containing the server with the GUI forms where
> the user enters the rest of the setup information.
>
>
> On Wed, May 14, 2008 at 4:21 AM, Kieren Diment <diment[at]gmail.com> wrote:
>>
>> On 14 May 2008, at 18:43, Andreas Marienborg wrote:
>>>
>>> I would say that making sure the deps are correct would not be the job of
>>> CatalystX::Installer, but the developer of the app.
>>>
>>
>> Yes, but it's useful ^W essential to let the dev team know when they've
>> stuffed up.
>>
>>
>>> What I hope CatalystX::Installer will be, is something that I can use in
>>> my apps to make them easier to set up for people installing the app.
>>>
>>> This for me includes:
>>>
>>> - dependency handling
>>> any deps the app needs, that isn't available, or the wrong version should
>>> be installed / helped installed. For instance, a debian user might want
>>> suggestions for debian packages to install (quite large scope :p) For me it
>>> should not infer deps automaticly at this time, that the developer should do
>>> before releasing his app.
>>>
>>
>> yep, local:lib or par i'm not sure which. Someone else can answer this one.
>>
>>
>>> - app configuration
>>> Databases, paths, etc. This needs to be very customizable/pluggable. For
>>> instance in easycms2, I have a config setting for what resizes to make of
>>> pictures. It would be classy if I could easily map this to some webform
>>> using CatalystX::Installer :p
>>>
>>
>> +1
>>
>>> - schema deployment / upgrades
>>> Deploy or upgrade the given database-configuration. This sort of infers
>>> that the CatalystX::Installer also can be used for upgrades :p
>>>
>>
>>
>> hmm, scope creep
>>
>>> - example configurations
>>> For apache, lighty, nginx, perlbal(?), http-server, fastcgi etc.
>>> Perhaps it could even go as far as trying to put config under the propper
>>> /etc/apache/conf-enabled or whatever (this becomes distro-specific, and
>>> probably needs to be pluggable)
>>>
>>
>> yep, sounds fine for a prototype
>>
>>> - Running tests.
>>> This I think is a cool idea, to optionally run tests against the finished
>>> setup. The author should perhaps specify which tests to run
>>>
>>>
>>
>> and the name of the server to run them against.
>>
>>> - andreas
>>>
>>
>> Thanks for the input.
>>
>> _______________________________________________
>> List: Catalyst[at]lists.scsys.co.uk
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
>> Dev site: http://dev.catalyst.perl.org/
>>
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


dbix-class at trout

May 28, 2008, 10:48 PM

Post #14 of 19 (568 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

On Sun, May 11, 2008 at 02:52:58PM -0500, Mitch Jackson wrote:
> Paul,
>
> Is CatalystX::Installer going to be used to help initally create a
> project, or help deploy a project that is already written to a server
> for use? If it is for helping deploy a project to a server, there's a
> few things I think would be helpful.
>
> - Generate a cpan preresiquites list from the source

If you haven't kept your Makefile.PL up to date, your app is broken. End of.

If you've made this particular fuckup dumping %INC in a running app and/or
running scandeps.pl from Module::ScanDeps should give you a start towards
bringing your Makefile.PL back up to date.

But keeping track of prereqs isn't a job for an installer. It's a job for
the developer, and part of basic competency when developing a Catalyst app.

> - Generate a file or archive of some sort that can be used to deploy
> the application

You want it to run 'make catalyst_par' for you?

> - Install the preresiquites via CPAN

You want it to run 'make installdeps' for you?

--
Matt S Trout Need help with your Catalyst or DBIx::Class project?
Technical Director http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


dbix-class at trout

May 28, 2008, 10:57 PM

Post #15 of 19 (572 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

On Wed, May 21, 2008 at 05:15:54PM -0500, Paul Cain wrote:
> > #What The Developer Does
> >
> > $ catalyst MyApp
> > $ cd MyApp
> > $ catalystx-installer [options]

Why can't this be a script/myapp_create.pl Installer ?

> > my $sql_commands=CatalystX::Installer::Controller->new();
> > $sql_commands->set_type('Entry');
> > $sql_commands->set_action(sub{
> > my ($self, $c,$database,$sql_file);
> > system "sqlite3 $database < $sql_file";
> > });

Hmm. That smells a bit like Class::Workflow and/or Verby

> > First, it scans for dependencies with Module::ScanDeps, and adds any
> > dependencies not already found in Makefile.PL to Makefile.PL.

No it doesn't That's a terrible, *terrible* idea. ScanDeps is heavy on the
system and doesn't always get things right; I've seen it go rogue a few times.

You'd be better making it easy for the de veloper to trial an install - then
if that fails, you know they screwed up their Makefile.PL and you can point them
at documentation to fix it.

We're trying to write an installer here, not a bandaid for incompetence.

> > It then
> > runs through the installation scripts while keeping the user informed
> > of its progress:
> >
> > $perl Makefile.PL
> > $make
> > $make test
> > $make install

You miised 'make installdeps'.

> > [3] Should script/myapp_setup.pl exist in a PAR archive in order to
> > prevent the problem of the script not running because of missing
> > dependencies?

Yes, or bundle its own local::lib.

--
Matt S Trout Need help with your Catalyst or DBIx::Class project?
Technical Director http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


fat.perl.hacker at gmail

May 28, 2008, 11:34 PM

Post #16 of 19 (571 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

Thank you for your input, but, unfortunately, I will not be able to do
this project because my grant application to the Perl foundation was
rejected.

On Wed, May 28, 2008 at 11:57 PM, Matt S Trout <dbix-class[at]trout.me.uk> wrote:
> On Wed, May 21, 2008 at 05:15:54PM -0500, Paul Cain wrote:
>> > #What The Developer Does
>> >
>> > $ catalyst MyApp
>> > $ cd MyApp
>> > $ catalystx-installer [options]
>
> Why can't this be a script/myapp_create.pl Installer ?
>
>> > my $sql_commands=CatalystX::Installer::Controller->new();
>> > $sql_commands->set_type('Entry');
>> > $sql_commands->set_action(sub{
>> > my ($self, $c,$database,$sql_file);
>> > system "sqlite3 $database < $sql_file";
>> > });
>
> Hmm. That smells a bit like Class::Workflow and/or Verby
>
>> > First, it scans for dependencies with Module::ScanDeps, and adds any
>> > dependencies not already found in Makefile.PL to Makefile.PL.
>
> No it doesn't That's a terrible, *terrible* idea. ScanDeps is heavy on the
> system and doesn't always get things right; I've seen it go rogue a few times.
>
> You'd be better making it easy for the de veloper to trial an install - then
> if that fails, you know they screwed up their Makefile.PL and you can point them
> at documentation to fix it.
>
> We're trying to write an installer here, not a bandaid for incompetence.
>
>> > It then
>> > runs through the installation scripts while keeping the user informed
>> > of its progress:
>> >
>> > $perl Makefile.PL
>> > $make
>> > $make test
>> > $make install
>
> You miised 'make installdeps'.
>
>> > [3] Should script/myapp_setup.pl exist in a PAR archive in order to
>> > prevent the problem of the script not running because of missing
>> > dependencies?
>
> Yes, or bundle its own local::lib.
>
> --
> Matt S Trout Need help with your Catalyst or DBIx::Class project?
> Technical Director http://www.shadowcat.co.uk/catalyst/
> Shadowcat Systems Ltd. Want a managed development or deployment platform?
> http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/
>
> _______________________________________________
> List: Catalyst[at]lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


jon at jrock

May 29, 2008, 12:27 PM

Post #17 of 19 (565 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

* On Thu, May 29 2008, Matt S Trout wrote:
>> > my $sql_commands=CatalystX::Installer::Controller->new();
>> > $sql_commands->set_type('Entry');
>> > $sql_commands->set_action(sub{
>> > my ($self, $c,$database,$sql_file);
>> > system "sqlite3 $database < $sql_file";
>> > });
>
> Hmm. That smells a bit like Class::Workflow and/or Verby

Yes, definitely Verby. You really want actions to be classes, so you
can customize them easily.

>
>> > First, it scans for dependencies with Module::ScanDeps, and adds any
>> > dependencies not already found in Makefile.PL to Makefile.PL.
>
> No it doesn't That's a terrible, *terrible* idea. ScanDeps is heavy on the
> system and doesn't always get things right; I've seen it go rogue a
> few times.

Well, I think the idea is to pick some correct defaults that won't go
rogue (-c probably), run that, and then suggest to the developer that he
should consider adding the dependencies himself. The need for human
interaction is due to the fact that M::S will gladly say your app needs:

URI::http
URI::file
URI::dongs
URI::ftp
...

when you really only need "URI". Of course, a quick query of the CPAN
packages database can help the program help the user make a better
decision. ("Hey, these all come with URI-0.123476. Do you want *that*
to be the prereq instead?".)

Also, if someone wants to write a module to add dependencies to
Makefile.PLs, I would be happy to use it. This:

http://git.jrock.us/?p=elisp.git;a=blob;f=_local/cperl-project.el;hb=HEAD

needs to die very soon. I would rather have PPI (via Stylish) deal with
it. </aside>

> You missed 'make installdeps'.

"installdeps" is a dependency of "all", so it will probably Work Out All
Right.

Regards,
Jonathan Rockway

--
print just => another => perl => hacker => if $,=$"

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


dbix-class at trout

May 30, 2008, 3:15 AM

Post #18 of 19 (558 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

On Thu, May 29, 2008 at 12:34:32AM -0600, Paul Cain wrote:
> Thank you for your input, but, unfortunately, I will not be able to do
> this project because my grant application to the Perl foundation was
> rejected.

At least you can finish the feedback process and lob the results on a wiki
in case somebody has time to do it later ...

--
Matt S Trout Need help with your Catalyst or DBIx::Class project?
Technical Director http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


fat.perl.hacker at gmail

Jun 2, 2008, 3:04 AM

Post #19 of 19 (522 views)
Permalink
Re: Suggestions for CatalystX::Installer [In reply to]

>Why can't this be a script/myapp_create.pl Installer ?

I guess it could be.


>Hmm. That smells a bit like Class::Workflow and/or Verby

>Yes, definitely Verby. You really want actions to be classes, so you
>can customize them easily.

Verby sounds good.

>"installdeps" is a dependency of "all", so it will probably Work Out All
>Right.

That's what I was thinking.

> > > [3] Should script/myapp_setup.pl exist in a PAR archive in order to
> > > prevent the problem of the script not running because of missing
> > > dependencies?
>
>Yes, or bundle its own local::lib.

sounds good.

I was unaware of Module::ScanDeps' ability to go rogue. Perhaps I
should just have the developer keep Makefile.PL update and use
Module::ScanDeps if make test fails?

>At least you can finish the feedback process and lob the results on a wiki
>in case somebody has time to do it later ...

I guess I could put this on the catalyst wiki somwhere when it is done.

On Fri, May 30, 2008 at 4:15 AM, Matt S Trout <dbix-class[at]trout.me.uk> wrote:
> On Thu, May 29, 2008 at 12:34:32AM -0600, Paul Cain wrote:
>> Thank you for your input, but, unfortunately, I will not be able to do
>> this project because my grant application to the Perl foundation was
>> rejected.
>
> At least you can finish the feedback process and lob the results on a wiki
> in case somebody has time to do it later ...
>
> --
> Matt S Trout Need help with your Catalyst or DBIx::Class project?
> Technical Director http://www.shadowcat.co.uk/catalyst/
> Shadowcat Systems Ltd. Want a managed development or deployment platform?
> http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/
>
> _______________________________________________
> List: Catalyst[at]lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>

_______________________________________________
List: Catalyst[at]lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Catalyst users RSS feed   Index | Next | Previous |