Maybe I used the wrong term in "pinning".  Or maybe the tutorial
should be a special case.

Say I write some code today that relies on Cornice version 0.6
and it works splendidly.  Then in a few weeks/months I decide to
write something similar with Cornice version 0.6 (assuming that
is still the latest version) and I start by doing "pip install
Cornice",  there is no guarantee that I get the same set of code
to start with?  I might get Cornice version 0.6 running on
Pyramid 1.4a1?

So I need to create the full dependency list in my new project,
and manually install what I need as "pip install Cornice" is no
longer the easy option, right?

That sounds reasonable (I guess), as it implies that the Cornice
author makes no real assertion that their software works any
better (bug free) with any particular version of Pyramid past,
present, or future.  It is up to me as the developer to run or
create all the tests that assure things work together.  (Or copy
a previously working environment.)

However, in the case of a tutorial for beginners viewing Cornice
for the first time, this is a lot to expect.  And if something
goes wrong, it reflects most directly on the project
highlighted by the tutorial, namely Cornice.

I wrote a tutorial like this for a different Python web framework
a while back, and it broke a few times as dependencies changed
deep under the covers.  I had wished that I would have set a
"known good set" for the tutorial.  Of course, that dooms the
tutorial to one day being an artifact based on old code.  But the
other option is to have it not work with the newest code and make
the current project look low quality when people try it out.

I have probably been spoiled by Pyramid's (and formerly
Repoze.BFG's) documentation always being up-to-date and
everything "just working".  (I know a lot of diligence and
testing goes into that - so thanks to everyone involved.)

That is one thing that gives me pause when looking at Pyramid
Development Environments like Akhet and Khufu that are built on
top of Pyramid.  I know Pyramid's API is stable, but will
grabbing them at the wrong time (Murphy's Law: when you are in a
hurry to quick test out an idea) result in having to pick through
dependencies and fix things to get them installed and working?

Maybe, if they are true Pyramid Development Environments they
should be pinned to the latest, stable Pyramid release until they
have been tested with a new stable release.  Not just pull in the
latest Alpha release the way Cornice just did.

If I want to try a Development Environment with the latest alpha
or beta Pyramid, I will go in and change the dependency and
upgrade.  (I don't might things breaking as much when I am the
idiot who initiated it. :-)

Anyway, that is not really the problem I was having, and Cornice
seems to work fine with the latest Pyramid code (once everything
is installed).  I'm just saying it makes me nervous when things
pull in the "latest" automatically.




On Wed, Dec 21, 2011 at 12:30 PM, Chris McDonough <chr...@plope.com> wrote:

> On Wed, 2011-12-21 at 12:17 -0600, Steve Schmechel wrote:
> > Following the tutorial did not work for me using "pip", but worked
> > fine using "easy_install" (distribute).
> > It was done with Python 2.7 in a virtual environment created with
> > --no-site-packages.
>
> The error message doesn't seem to show anything useful.  I'm pretty
> clueless.  There's a tempfile mentioned as "install-record.txt"; maybe
> it has information.
>
> > Also, you may want to look at "pinning" the dependency versions for
> > Cornice.  It seems to pull in the latest of everything, which will
> > likely be a problem at some point.  (It pulled in the just-released
> > Pyramid version 1.3a3.)
>
> Making a package author responsible for pinning dependencies is usually
> a really poor idea, because it means the package cannot be used in
> configurations where it actually does work but an old pin or a
> too-conservative pin prevents it.  In general, if folks want guaranteed
> stability and repeatability, they are going to need to maintain their
> own version pins (using a requirements.txt, a buildout.cfg, or a
> self-hosted index).
>
> - C
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "pylons-discuss" group.
> To post to this group, send email to pylons-discuss@googlegroups.com.
> To unsubscribe from this group, send email to
> pylons-discuss+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/pylons-discuss?hl=en.
>
>

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

Reply via email to