<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Le 16/05/2014 20:39, Adrien Di Mascio a
      écrit :<br>
    </div>
    <blockquote
cite="mid:CAJZwfDGvLhmwvF1y3br4zWnR2L43ZAoom8y7cWrq1pY_xrvf5w@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Christophe,<br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Fri, May 16, 2014 at 3:03 PM,
            Christophe de Vienne <span dir="ltr"><<a
                moz-do-not-send="true"
                href="mailto:christophe@unlish.com" target="_blank">christophe@unlish.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">Le
              16/05/2014 14:46, Sylvain Thénault a écrit :<br>
              <div class=""><br>
              </div>
              <div class="">
                >> I pretty convinced that pyramid could be the
                base of cw, and that a<br>
                >> progressive path exists to get there.<br>
                >> I want to experiment around this idea and be
                able to really demonstrate<br>
                >> the feasibility before putting it forward too
                much, but if someone is<br>
                >> interested to dig this subject with me you are
                very welcome to!<br>
                > I'm definitly interested but unfortunatly lack time
                to really help in an other<br>
                > way than responding to emails on the mailing list.
                But if the path to reach this<br>
                > becomes clearer, we may find some resources at
                Logilab to help.<br>
                <br>
              </div>
              That is all I need to invest some time on that. It will
              not be very soon<br>
              though, we have a startup to take care of after all :-)<br>
            </blockquote>
            <div><br>
            </div>
            <div>This is also something I'd like to try. Do you have
              something precise in mind ? Would it be something "simple"
              like using pyramid routing + "top-level" views that would
              in turn use a CW repository (RQL + hooks) and / or call CW
              views ?</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    That is what I have in mind indeed.<br>
    <br>
    <blockquote
cite="mid:CAJZwfDGvLhmwvF1y3br4zWnR2L43ZAoom8y7cWrq1pY_xrvf5w@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div>Or do you think of something more tightly integrated,
              although I have no idea what this would look like ?</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    The general path I foresee is something like that :<br>
    <br>
    1. Basic integration:<br>
    <br>
        - Plug the cw request api (hopefully splitted in a few
    meaningful attributes) on the pyramid request<br>
        - Use the pyramid configurator to produce a dead simple pyramid
    application that use a unique view : the current cw request dispatch<br>
    <br>
    At this point, we would have the full cw stack running with pyramid
    application as an entry-point :<br>
    - Using any pyramid extension is possible.<br>
    - We can use pyramid request api (from webob actually) which is,
    imo, pretty sane and well documented.<br>
    - Dropping twisted would be a nice side-effect is it is not already
    done with the wsgi port.<br>
    <br>
    2. Use pyramid plumbing<br>
    <br>
    From point 1, there is a bunch of things we can drop from cw and
    replace with pyramid components :<br>
    - authentication<br>
    - session management<br>
    - url dispatch + convert the CW controllers into pyramid views<br>
    <br>
    3. Use venusian<br>
    <br>
    Like CW, pyramid has a scan phase. The scan is done by a library
    they call venusian. It would fullfill the job done currently in CW +
    give way more control to the developer who would be able to choose
    which modules should be scanned.<br>
    <br>
    4. Rewrite the form system to use deform. I have the impression that
    we could implement a colander based editcontroller, and a deform
    form generator based on uicfg (we keep this one).<br>
    <br>
    5. convert the last bits of CW that are not views, hooks, orm &
    rql into their pyramid equivalent, with the probable exception of
    the configuration system (although it would benefit a huge
    simplification of the source code by using the now available
    libraries that do a similar job).<br>
    <br>
    <br>
    The order of the points 2 to 5 is only a proposition based on how
    useful I feel the change would be weighted with the difficulty to do
    it with backward compatibility.<br>
    <br>
    At each step of this path, setting proxy apis (marked as deprecated)
    to keep backward compatibility *should* be possible, but I can't be
    100% positive about it until we actually try to do it.<br>
    <br>
    <br>
    Cheers,<br>
    <br>
    Christophe<br>
  </body>
</html>