Re: GSoC, Python 3 dependencies, Paste

2011-04-04 Thread Joe Dallago
I also plan on helping port Pyramid to Python 3 as my GSOC project.  You can
check out my application on my blog(jayd3e.com) for more details.  As far as
Paste goes, it has unofficially been decided that we will be going with an
entirely separate HTTP server, as opposed to isolating 'paster serve'.  I
know a few people are in favor of using a wsgi server called WiseGuy(
https://github.com/wsgicabal/wiseguy), there a variety of others as well
though.  'Paster create' is currently being isolated by someone afaik,
forget who.

I personally think that you should choose to port Pyramid as your project,
because we could always use more help for that effort.

On Apr 4, 2011 11:19 AM, Juliusz Gonera jgon...@gmail.com wrote:

Hi,

I thought that it will be easier if I just post here instead of trying to
catch someone on IRC.

I have quite a few questions regarding GSoC. First of all, I'm not quite
sure if I should propose the specific project or it should be given to me by
one of the mentors. I was thinking about porting the necessary packages to
Python 3, but I guess it could be too much for a single project (or maybe
not?).

Because of that I though about concentrating on Paste issue. I don't know if
any decision has been made (whether to update Paste, rewrite create and
serve or use something else, e.g. Marrow) and I'm almost sure I'm not the
one to make such decisions. However, I have to put something more detailed
in the application form.

Regarding Paste and comments on
https://github.com/Pylons/pyramid/wiki/Pyramid-2-Brainstorm:

1. YAML vs INI - is there any decision?

2. Is marrow.script not being argparse-compatible a big issue? Wouldn't it
be easy to fix?

3. The same goes for marrow.server.http being asynchronous. As long as it
was multithreaded too I don't know how this could be a problem (but maybe I
don't know enough). And according to the readme on github (
https://github.com/marrow/marrow.server.http), multi-threading is on the
todo list:
threaded — Enable multi-threading. This is currently unimplemented pending
support up-stream in marrow.server and defaults to False.

4. I'm uncomfortable with the direction of these libs personally. They seem
to be more researchy than practical in lots of cases.
Could somebody elaborate? I'm not trying to question anything, I don't know
that much, I would just like to know what is wrong with Marrow.

5. If adapting and improving Marrow is not an option, then what should I do
if I want to work on porting Pyramid to Python 3? On IRC Blaise Laflamme
suggested CherryPy. What do you think?

I thought that this is more development related so I'm posting to devel. Let
me know if I was wrong.

Regards,
-- 
Juliusz Gonera
http://juliuszgonera.com/

-- 
You received this message because you are subscribed to the Google Groups
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/pylons-devel?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.



Re: GSoC, Python 3 dependencies, Paste

2011-04-04 Thread Daniel Holth
IIRC Pyramid doesn't really depend on Paste in any important way. You could 
just try to get it working under CherryPy, uWSGI or wsgiref for example, and 
get the configuration dictionary some other way besides having Paste parse 
.ini into {}.

I hope Ian's Web Application Format proposal gets specified. Then I can just 
follow the specification and choose between potential Paste Deploy 
replacements based on some other criteria than 'is a mandatory Pyramid 
dependency'.

-- 
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.



Re: GSoC, Python 3 dependencies, Paste

2011-04-04 Thread Chris McDonough
On Mon, 2011-04-04 at 10:52 -0700, Alice Bevan–McGregor wrote:
  Regarding Paste and comments on 
  https://github.com/Pylons/pyramid/wiki/Pyramid-2-Brainstorm:
  
  1. YAML vs INI - is there any decision?
 
 There isn't any particular reason not to go with both, INI for 
 backwards compatibility (using similar logic to YAML's parsing of 
 lists, numbers, etc., and YAML for the future.  YAML's native rich 
 structures are just too handy, and if you know JSON, you can write YAML.
 
 I'll be rolling that into marrow.config.
 
  2. Is marrow.script not being argparse-compatible a big issue? Wouldn't 
  it be easy to fix?
 
 marrow.script was designed to be explicitly argparse/optparse/getopt 
 incompatible.  Paste Script's wrapping of optparse made things more 
 complicated, not easier.  Unless, of course, someone can come up with 
 an _excellent_ reason why marrow.script should be rewritten to utilize 
 argparse.
 
 Marrow.script, OTOH, wraps nothing.  It's a direct command line - 
 argspec converter and help text generator.  The ease of just throwing a 
 function or class at marrow.script (new or existing!) is highly 
 desirable.
 
  3. The same goes for marrow.server.http being asynchronous. As long as 
  it was multithreaded too I don't know how this could be a problem (but 
  maybe I don't know enough). And according to the readme on github 
  (https://github.com/marrow/marrow.server.http), multi-threading is on 
  the todo list:
  threaded — Enable multi-threading. This is currently unimplemented 
  pending support up-stream in marrow.server and defaults to False.
 
 Seems I need to fix that reference.  Threading is supported (now that 
 it's supported in marrow.server) using a Futures-based thread pool.  
 The underlying server being async has never been a bad thing in any of 
 the benchmarking I've done, including C10K and 12KR/sec concurrency and 
 speed benchmarks, even with the thread pool enabled.
 
  4. I'm uncomfortable with the direction of these libs personally. They 
  seem to be more researchy than practical in lots of cases.
  Could somebody elaborate? I'm not trying to question anything, I don't 
  know that much, I would just like to know what is wrong with Marrow.
 
 Same!  :D
 
 Just because the packages take a distinctly different approach to some 
 things than Paste/WebOb/Django/pkgname here doesn't make them bad, 
 unusable, or unstable.  In fact, for PyPi releases, the packages 
 require 100% unit test coverage, full documentation, and 2.6+/3.1+ 
 polygot compatibility; that already makes them somewhat better than 
 (some of) the alternatives.

I think researchy describes some of the marrow stuff pretty well (that
doesn't imply bad, unusable or unstable, it just implies opinionatedness
that is outside the current mainstream).  For example, in this message
you've quoted use of a futures-based asynchronous server that says it
implements WSGI 2.0, but WSGI 2.0 does not yet exist in any ratified
form.  I don't see WSGI 2.0 draft compatibility as a goal that we need
to explore under GSOC.  I think it's great you're pushing the envelope,
but we really just need some very simple things that are well behind any
of the curves you're at the front of.

In the meantime, I don't much care if we get a PasteDeploy replacement
that works under Python 3.X for GSOC. Pyramid apps don't strictly
require PasteDeploy, they can be run without any declarative
configuration.  I also don't care much if we don't get a PasteScript
replacement for GSOC either.  Having a command line wrapper that does a
bunch of stuff is handy but not required to make things run.  We
actually really just need some bits of Paste itself (the FileApp app,
StaticURLParser, some of the auth_tkt bits) to work in order to reach a
reasonable goal for 3.X compat.  After that, we can think about how we'd
like to wrap it up nicely for usage.  I see the PasteScript/PasteDeploy
stuff as a sort of last-resort project for GSOC, because it's pretty
gratuituous until we get all the other dependencies ported.

 I'm already using marrow.tags (and the widgeting it provides), 
 marrow.script, and marrow.blueprint in a number of projects, all with 
 great success.


-- 
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.



Re: GSoC, Python 3 dependencies, Paste

2011-04-04 Thread Alice Bevan–McGregor

On 2011-04-04 11:31:15 -0700, Chris McDonough said:
I think researchy describes some of the marrow stuff pretty well 
(that doesn't imply bad, unusable or unstable, it just implies 
opinionatedness that is outside the current mainstream).  For example, 
in this message you've quoted use of a futures-based asynchronous 
server that says it implements WSGI 2.0, but WSGI 2.0 does not yet 
exist in any ratified form.  I don't see WSGI 2.0 draft compatibility 
as a goal that we need to explore under GSOC.  I think it's great 
you're pushing the envelope, but we really just need some very simple 
things that are well behind any of the curves you're at the front of.


I agree with regards to m.s.http; it was originally developed as a 
'proof of concept' server to be developed in parallel with my rewritten 
PEP 444.  However, making it speak PEP 333(3) is relatively trivial.  
At the grossest level (callable syntax), you use the following p-code 
decorator:


def make_pep444(fn):
   def inner(environ):
   def start(status, headers):
   start.status = status
   start.headers = headers

   body = fn(environ, start)
   return start.status, start.headers, body

   return inner

In the meantime, I don't much care if we get a PasteDeploy replacement 
that works under Python 3.X for GSOC. Pyramid apps don't strictly 
require PasteDeploy, they can be run without any declarative 
configuration.  I also don't care much if we don't get a PasteScript 
replacement for GSOC either.  Having a command line wrapper that does a 
bunch of stuff is handy but not required to make things run.


They remain nice goals, however +1 on pairing down to the minimum.

— Alice.


--
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.



Re: ATTN: Please keep general discussion on pylons-discuss

2011-04-04 Thread Chris Withers

On 31/03/2011 18:58, Mike Orr wrote:

On Thu, Mar 31, 2011 at 7:14 AM, Chris Withersch...@simplistix.co.uk  wrote:

On 15/03/2011 20:01, Ben Bangert wrote:


Here's a quick way to know which one to post to:
pylons-devel
- Discussion about development of pylons project libraries such as
pylons/pyramid/etc.

pylons-discuss
- General discussion about best practices of development, asking for help,
etc.


How about just merging the lists?

Is there really so much volume as to justify two lists?
Having a -devel and -discuss list always feels like elitism to me, in that
the people who can actually help hang out on -devel, and the people who need
it on -discuss :-S


That sounds more like a prejudice than anything that's happening on
the lists.


Well, what has been happening, certainly from a (relatively) innocent 
bystanders point of view is that it's all been on -devel up until now.



The two lists are meant to be a convenience for users,


users, or developers?


so that those
who don't care about minor/theoretical development discussions and
trivial This page on the website doesn't work


Surely that actually belongs on -devel? (or would you advocate a third 
-website list ;-) )



change the version number in this place can skip it. All the
developers are on the -discuss list and answer questions there.


As a user and part time developer, I wasn't even aware of the -discuss 
list until this discussion came up!



We did take usage questions on -devel in the alpha days of Pyramid, to
prevent Pyramid questions from confusing Pylons users. That's where
all the confusion between the lists came from. That's over now.


Really? ;-)

Chris

--
Simplistix - Content Management, Batch Processing  Python Consulting
   - http://www.simplistix.co.uk

--
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.



Re: ATTN: Please keep general discussion on pylons-discuss

2011-04-04 Thread Ben Bangert
On Apr 4, 2011, at 12:37 PM, Chris Withers wrote:

 Well, what has been happening, certainly from a (relatively) innocent 
 bystanders point of view is that it's all been on -devel up until now.
 
 The two lists are meant to be a convenience for users,
 
 users, or developers?

Both. But obviously some of the developers spend 99% of their life on work, and 
1% on developing pyramid. To then say they should also spend their time helping 
support with such a large community seems a bit crazy given that we aren't 
full-time open-source dev's on foundation funding or something. So yea, its a 
lot easier as a developer with limited time that wants to go over dev issues to 
skip the how do I setup pip on OSX? question, rather than spend that precious 
time wading through it.

I'm not sure if thats elitism, or just basic time management. It feels like 
time management, and given the large community of users of this open-source 
project, I am thrilled to see many users step up to help other users get to 
where they are knowledge-wise. I personally read them both depending on time 
available on a given day.

For users interested in the development issues, it seems easier as well. I 
mean, if being able to filter on a topic was not useful, surely there'd be no 
utility in having tags, categories, etc. in the world, eh? ;)

 As a user and part time developer, I wasn't even aware of the -discuss list 
 until this discussion came up!

Yea, bad communication. Again, very sorry we failed to foresee that one.

 We did take usage questions on -devel in the alpha days of Pyramid, to
 prevent Pyramid questions from confusing Pylons users. That's where
 all the confusion between the lists came from. That's over now.
 
 Really? ;-)

Sure, we're trying to, thus this post. I suppose I could consider the nuclear 
option and wipe out the pylons-dev list entirely to force all discussion over 
to pylons-discuss, then at a later point bring back a development oriented 
list. But we're all adults, so that seems a bit childish and unnecessary.

It would be nice if mail list threads could be 'tagged' or 'categorized' 
though. With a nicer UI and such a feature, that'd prolly be fairly similar to 
convore. Hell, it'd help me a ton just to see which libraries people needed 
help with, as I'm sure ppl that are expert in some libs could spend their time 
better answering just those questions. So being able to tag a thread  'Pylons 
1.0' or 'Pyramid 1.0' or 'SQLAlchemy 0.6 + pyramid_sqla' would make it easy for 
people to know what the topic involves.

Obviously mail lists weren't well designed for 'support' type things, which is 
why StackOverflow is so popular (which does have those tags!). Which presents 
another interesting discussion, should we refer people needing help to 
StackOverflow to see if their problem has a solution there, and if not have it 
solved there instead of on the mail list?

Then we could just nuke pylons-dev, and have a single pylons-discuss where all 
Pylons Project related topics are discussed, and refer people with more 
'support' type questions to StackOverflow. Just a thought.

Cheers,
Ben

-- 
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.



Re: GSoC, Python 3 dependencies, Paste

2011-04-04 Thread Chris McDonough
On Mon, 2011-04-04 at 18:05 +0200, Juliusz Gonera wrote:
 Hi,
 
 I thought that it will be easier if I just post here instead of trying 
 to catch someone on IRC.
 
 I have quite a few questions regarding GSoC. First of all, I'm not quite 
 sure if I should propose the specific project or it should be given to 
 me by one of the mentors. I was thinking about porting the necessary 
 packages to Python 3, but I guess it could be too much for a single 
 project (or maybe not?).

I think asking a single student to port everything is too much.  At this
point, I think there's an opportunity to get two students working on the
porting effort.

 Because of that I though about concentrating on Paste issue. I don't 
 know if any decision has been made (whether to update Paste, rewrite 
 create and serve or use something else, e.g. Marrow) and I'm almost sure 
 I'm not the one to make such decisions. However, I have to put something 
 more detailed in the application form.

To be honest, I'm not sure we can manage paste replacement as a GSOC
project, especially from scratch.  Paste is relatively large, and
encompasses many things.  Furthermore, we actually use very little of
Paste in Pyramid.  Pyramid will happily run without PasteDeploy or
PasteScript, so porting either is not a hot issue for Python 3
compatibility in the short term.

Pyramid won't run without some things from the Paste package proper
(namely its static file application named StaticURLParser, and some
auth_tkt components).  These will need to be replaced in order to run on
Python 3.  But it's a *lot* easier just to cut and paste and fix these
specific components than it is to port the entirety of Paste, so I'd
suggest we just do that.

I think we should hold off on passing judgment on replacing Paste
until after GSOC, when we know that we can run some form of Pyramid
(albeit without PasteDeploy or PasteScript support) successfully.

 Regarding Paste and comments on 
 https://github.com/Pylons/pyramid/wiki/Pyramid-2-Brainstorm:
 
 1. YAML vs INI - is there any decision?
 
 2. Is marrow.script not being argparse-compatible a big issue? Wouldn't 
 it be easy to fix?
 
 3. The same goes for marrow.server.http being asynchronous. As long as 
 it was multithreaded too I don't know how this could be a problem (but 
 maybe I don't know enough). And according to the readme on github 
 (https://github.com/marrow/marrow.server.http), multi-threading is on 
 the todo list:
 threaded — Enable multi-threading. This is currently unimplemented 
 pending support up-stream in marrow.server and defaults to False.
 
 4. I'm uncomfortable with the direction of these libs personally. They 
 seem to be more researchy than practical in lots of cases.
 Could somebody elaborate? I'm not trying to question anything, I don't 
 know that much, I would just like to know what is wrong with Marrow.
 
 5. If adapting and improving Marrow is not an option, then what should I 
 do if I want to work on porting Pyramid to Python 3? On IRC Blaise 
 Laflamme suggested CherryPy. What do you think?
 
 I thought that this is more development related so I'm posting to devel. 
 Let me know if I was wrong.

I think all the above stuff is probably too hard to tackle under GSOC.
I suspect we should just get the bare minimum ported and see where we
are.  There is a list of dependencies on the
https://github.com/Pylons/pyramid/wiki/Pyramid-2-Brainstorm page that
indicates the packages that need porting.  I'd suggest that creating a
proposal to port some of those would be best-received.

- C


 
 Regards,
 -- 
 Juliusz Gonera
 http://juliuszgonera.com/
 


-- 
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.