[web2py] web2py and mercurial workflow question

2011-08-03 Thread Eric Scott
I'm new to web2py but find it a vast improvement over the PHP-based
web framework I was using before, and so I'm already using web2py to
develop my next web app.  At the same time, I find myself in a
situation where I'm needing to use several different computers to do
my work.  See I need to find a way to keep up-to-date copies of my app
on each computer (web-based admin is great for web2py but I would
prefer to use an IDE).  I've never used a DVCS before, but it's clear
that Mercurial would be a good solution to my multi-computer problem.
I'm also considering releasing the code as open source once I'm
finished, so already having it on Mercurial would be an added
benefit.  I'm starting to play around with Mercurial and understand
the basics, but I have a couple of questions about using Mercurial
with web2py.

1)  I've set up a system where I have a repository set up on each of
my work computers, and one set up on Bitbucket to push to as the
central repository.  I intend to set a Mercurial repo up on my web
server to pull from the bitbucket but I ran into several issues with
www-data user and permissions while setting mercurial up on a server
similar to what will eventually be my production server.  Would using
the built-in experimental mercurial feature of web2py offer a way
around this problem?  Or should I avoid setting up mercurial on a
production server altogether?

2)  I intend to use PostgreSQL for my app.  Does that mean I will need
to set up Postgres for each of my repos or can I just use SQLite with
those?  I assume this would involve appropriate use of .hgignore.  Can
anyone point me to a good tutorial on using Mercurial (or even Git or
Bazaar) with database-driven websites?

Just to be clear, I only want to use Mercurial for my own web app at
the present time.  I hope to contribute to web2py development in the
future, once I have a better understanding of the framework and have
fully transitioned from PHP to Python (which is happening much quicker
than I expected).

I know this is more of a Mercurial question than it is a web2py one,
but given the project's use of Mercurial and its experimental
integrated Mercurial feature, I thought it would not be entirely
inappropriate to ask my question here.

Thank you in advance.

Eric


Re: [web2py] web2py and mercurial workflow question

2011-08-03 Thread Richard Vézina
I can't answer to all your questions...

But I will try to help about some of your point...

First, welcome in Web2py crew ;-)

On Wed, Aug 3, 2011 at 12:08 PM, Eric Scott erictransla...@gmail.comwrote:

 I'm new to web2py but find it a vast improvement over the PHP-based
 web framework I was using before, and so I'm already using web2py to
 develop my next web app.  At the same time, I find myself in a
 situation where I'm needing to use several different computers to do
 my work.  See I need to find a way to keep up-to-date copies of my app
 on each computer (web-based admin is great for web2py but I would
 prefer to use an IDE).  I've never used a DVCS before, but it's clear
 that Mercurial would be a good solution to my multi-computer problem.
 I'm also considering releasing the code as open source once I'm
 finished, so already having it on Mercurial would be an added
 benefit.  I'm starting to play around with Mercurial and understand
 the basics, but I have a couple of questions about using Mercurial
 with web2py.

 1)  I've set up a system where I have a repository set up on each of
 my work computers, and one set up on Bitbucket to push to as the
 central repository.  I intend to set a Mercurial repo up on my web
 server to pull from the bitbucket but I ran into several issues with
 www-data user and permissions while setting mercurial up on a server
 similar to what will eventually be my production server.  Would using
 the built-in experimental mercurial feature of web2py offer a way
 around this problem?  Or should I avoid setting up mercurial on a
 production server altogether?


I would not run mercurial on my prod server... What I do for my part to
deploy app I tag version clone my app under a different name concat with the
version number of my build in my dev folder... Since web2py is evolving
really fast I have many dev folder one for every stable version of web2py...
I can move my app along to the new version when I had enough time to test it
carefully and I am confident with the stability of the web2py version...
When I want to push in prod I have wrote a littler script that backup my
actual app dans paste my new cloned app+version under app in place, change
persmission restart apache and I am good to go. I clear all the mercurial
stuff from my deployed build since I think it could slow down my app (not
sure of that)...

I use the dev http server built web2py for developping...

I would love to have good IDE, but for now I use built in web editor or when
it is to slow (long file) I switch to enhanced gedit with autocompletion
plugin and some other plugin... There is aslo an other text editor you can
ativate as a built in editor Amy I think... You should search about that
on the mailing-list...

There is a way to use Eclipse as IDE, but there is still some glitch I
think...

With the web2py mercurial feature as far as I know you can't manage branch
because you can't merge... It could have change, but the book says that...


 2)  I intend to use PostgreSQL for my app.  Does that mean I will need
 to set up Postgres for each of my repos or can I just use SQLite with
 those?  I assume this would involve appropriate use of .hgignore.  Can
 anyone point me to a good tutorial on using Mercurial (or even Git or
 Bazaar) with database-driven websites?


Depending of the complexity of your projet, you will rapidly be undable to
switch from Postgres to SQlite on the fly... Deploying on each dev machine
is pretty easy if you use the installation script distribute with web2py...

I you find a simple way to get your database schema under version control I
will appreciate. I have a couple of links talking about that, but I still
have to figure out how I will manage it.

If your app is containing all your DB schema as web2py models (so no view or
store procedure or trigger) you already have your schema under version
control as web2py model...


 Just to be clear, I only want to use Mercurial for my own web app at
 the present time.  I hope to contribute to web2py development in the
 future, once I have a better understanding of the framework and have
 fully transitioned from PHP to Python (which is happening much quicker
 than I expected).

 I know this is more of a Mercurial question than it is a web2py one,
 but given the project's use of Mercurial and its experimental
 integrated Mercurial feature, I thought it would not be entirely
 inappropriate to ask my question here.

 Thank you in advance.

 Eric



Richard