librelist archives

« back to archive

Unify "Default Project" builders for Flask?

Unify "Default Project" builders for Flask?

From:
Gregg Lind
Date:
2011-08-15 @ 17:56
Problem Statement and Goals
------------------------------

When I start a new Flask project, I go through the same 10 or 12 repetitive
steps.  I want something simple I can either *run* or *clone* that sets things
up in a sensible way.  This problem isn't unique to me.

My Goals
~~~~~~~~~

1.  'One-step setup', at least for the default case.
2.  Automate the tedious parts.  (for me, this happens to be getting
    hmtl5boilerplate stuff, the js-parts, the packaging bits, configs, etc.)
3.  Be compatible with best practices (to me:  virtuenv, pip)
4.  Show / imply what the 'next steps' are or should be.
5.  Codify 'best practices'.  Having 'a few' 'stock' layouts might help
    adoption, ease troubleshooting and the like.
6.  Compatible with source control and packaging.
7.  Doesn't solve *everything*, but is a sensible *starting point*.  Solving
    all problems using templates is clearly a way to madness.
8.  (meta) Since lots of people seem to be re-inventing these wheels,
    harness the effort in the same direction, if possible!

Solutions (non-exhaustive):
------------------------------

* danjac's flask-project attacks this from the other (templating) direction.
  https://bitbucket.org/danjac/flask-projectmaker/.  This has the benefit
  of 'filling' the files with sensible stubs.
* Sean-'s https://github.com/sean-/flask-skeleton/ which covers bootstrapping
  the whole stack (postgres, nginx, etc.)
* Flask-tool:  https://github.com/imlucas/flask-tool seems to be a much more
  fully-featured one than mine!
* my (thin, but opinionated) shell script "boil.sh" at
https://gist.github.com/1146774
  I focus on the directory layout, and on getting all the bits of
html5boilerplate
  into 'static'.  This is clearly not a complete solution!
  (based on 
http://www.cols-code-snippets.co.uk/2011/02/my-take-on-flask-application-skeleton.html)


Failure Points
-------------------

* Right now *sensible* is still a matter for much debate!
* how much opinion is *too much*?  I included PyMongo and SqlAlchemy, other
  people include other things.
* How 'light' is all this?  Is this simply re-inventing Django or Pyramid?

What now?  (Discussion / Questions)
--------------------------------------

1. This was all discussed on the list back in October, and am I wondering if it
is worth trying to unite / simplify / reify / cohere any of these
projects, and how
much to stick in core.
2.  I want something that works and is easy enough.  Is this a fool's errand?
3.  How much 'opinion' to have on suggested packages.
4.  How 'Django'-ish is something like 'manage.py'.  What other utils should be
    included by default?


Gregg L.

Re: [flask] Unify "Default Project" builders for Flask?

From:
Eka (Esteban Feldman)
Date:
2011-08-15 @ 18:07
I made my paster script also, didn't found all those options before... nice
to know

https://bitbucket.org/estebanfeldman/flask-skel/

cheers

On Mon, Aug 15, 2011 at 2:56 PM, Gregg Lind <gregg.lind@gmail.com> wrote:

> Problem Statement and Goals
> ------------------------------
>
> When I start a new Flask project, I go through the same 10 or 12 repetitive
> steps.  I want something simple I can either *run* or *clone* that sets
> things
> up in a sensible way.  This problem isn't unique to me.
>
> My Goals
> ~~~~~~~~~
>
> 1.  'One-step setup', at least for the default case.
> 2.  Automate the tedious parts.  (for me, this happens to be getting
>    hmtl5boilerplate stuff, the js-parts, the packaging bits, configs, etc.)
> 3.  Be compatible with best practices (to me:  virtuenv, pip)
> 4.  Show / imply what the 'next steps' are or should be.
> 5.  Codify 'best practices'.  Having 'a few' 'stock' layouts might help
>    adoption, ease troubleshooting and the like.
> 6.  Compatible with source control and packaging.
> 7.  Doesn't solve *everything*, but is a sensible *starting point*.
>  Solving
>    all problems using templates is clearly a way to madness.
> 8.  (meta) Since lots of people seem to be re-inventing these wheels,
>    harness the effort in the same direction, if possible!
>
> Solutions (non-exhaustive):
> ------------------------------
>
> * danjac's flask-project attacks this from the other (templating)
> direction.
>  https://bitbucket.org/danjac/flask-projectmaker/.  This has the benefit
>  of 'filling' the files with sensible stubs.
> * Sean-'s https://github.com/sean-/flask-skeleton/ which covers
> bootstrapping
>  the whole stack (postgres, nginx, etc.)
> * Flask-tool:  https://github.com/imlucas/flask-tool seems to be a much
> more
>  fully-featured one than mine!
> * my (thin, but opinionated) shell script "boil.sh" at
> https://gist.github.com/1146774
>  I focus on the directory layout, and on getting all the bits of
> html5boilerplate
>  into 'static'.  This is clearly not a complete solution!
>  (based on
> 
http://www.cols-code-snippets.co.uk/2011/02/my-take-on-flask-application-skeleton.html
> )
>
>
> Failure Points
> -------------------
>
> * Right now *sensible* is still a matter for much debate!
> * how much opinion is *too much*?  I included PyMongo and SqlAlchemy, other
>  people include other things.
> * How 'light' is all this?  Is this simply re-inventing Django or Pyramid?
>
> What now?  (Discussion / Questions)
> --------------------------------------
>
> 1. This was all discussed on the list back in October, and am I wondering
> if it
> is worth trying to unite / simplify / reify / cohere any of these
> projects, and how
> much to stick in core.
> 2.  I want something that works and is easy enough.  Is this a fool's
> errand?
> 3.  How much 'opinion' to have on suggested packages.
> 4.  How 'Django'-ish is something like 'manage.py'.  What other utils
> should be
>    included by default?
>
>
> Gregg L.
>



-- 
Chant Hare Krishna and Be Happy

Eka