Maybe ... some effort to solve the infrastructure issue would make it
worth kickstarter funding.
A couple of colleagues are pushing me towards Docker as a packaged
Python 3.4 environment but that is beyond my interest atm.
I am running a dedicated production server on Ubuntu 14.04 which more or
less forces me to stick with Python 2.7. I would like to move to Python
3.x using virtualenv but I don't want to mess with stuff which is working.
Maybe a really nice solution would be a kickstarter project to develop a
deployment tool to create a predictable, supportable modern environment
on "old" boxes and to vaccuum up the existing Django sites running on
bare metal.
In my case, Ubuntu does support Python 3.4 (I think) so the virtualenv
approach would be covered by standard Ubuntu support. I have only
glanced at Docker so I don't know how valid that might be.
Just a random thought.
Mike
On 19/03/2015 1:38 PM, Christian Hammond wrote:
Hey Tim,
I can definitely relate. It's not fun maintaining security releases (or
fixes of any sort) for older versions of the software. Been there (am
there now).
We're trying to encourage people to move to Python 2.7 so that we can
upgrade, but this is the enterprise. It's not an easy task. (Look how
long Microsoft tried to get people off of IE6.) Python 2.6 is still
wildly populate in the enterprise. The sad fact is, even once we leave
Python 2.6 behind, there's going to be at least a few hundred companies
with servers running Django 1.6.x who will not be upgrading for quite
some time, no matter what any of us do or say (just as there are still
at least a hundred running against Django 1.4). Once security releases
stop for 1.6, these companies are going to be vulnerable to any new
exploits.
I wholeheartedly agree about using virtualenv and staying on top of the
latest releases, but we've had little luck in getting administrators to
move in that direction. We've been trying to work with a handful
recently who insist on running older versions with very custom
deployments because "it works and we don't want to risk anything," but
at the same time they're quick to pull in any security updates offered
by RHEL/us/whoever, as it's a liability otherwise. Especially since, as
others have said, they have support contracts in place that they're
paying a lot of money for, and will not violate. The advice on
virtualenvs and building your own Python is good, and I appreciate it
and agree with it, but it just won't make a dent in the number of
enterprise Python 2.6/Django 1.6 users out there.
So... we're in a tough position now. Hundreds of companies *will* be on
Django 1.6 for the next couple of years at least, no matter what advice
we give or what any of us choose to do. Since newer versions of Django
don't support Python 2.6, it'll be even harder for these companies to
upgrade without rebuilding their infrastructure, further ensuring that
they'll stick with what they have.
I wish I could say that we could fully-fund future Django 1.6 security
updates, but our company is young and still trying to stay afloat, so
our funds are limited. I'll personally contribute what I can afford to
the cause, if I knew what sort of target there was, and how likely this
would be to happen. I don't want to leave our users hanging and vulnerable.
The only other course of action I can think of is to maintain some sort
of unofficial fork of Django 1.6 with backported security updates, but I
think that's just going to cause more problems than it solves in far too
many areas.
Maybe I'm rambling at this point. It's a pretty major issue for us, and
we're feeling a bit stuck on what to do about this. Since we use Django
as a component in a distributable webapp, instead of in-house in a
controlled environment, we seem to hit problems that most people don't
have to deal with.
Thanks again for your thoughts on this, everyone.
Christian
On Wednesday, March 11, 2015 at 6:54:51 PM UTC-7, Tim Graham wrote:
Having managed the last few security releases for Django, I'll say
it's one of my least favorite tasks and I'm quite looking forward to
dropping support for 1.4 (which supports Python 2.5) and 1.6 (Python
2.6). But, if there's sufficient interest that we could raise funds
to support this effort outside of my normal duties as Django fellow,
there's a chance you could convince me to continue backporting
patches and preparing releases for these versions. I'm not quite
sure how the logistics of such an arrangement would work, but just
thought I'd throw the idea out there and see if anyone is ready to
back the effort financially. I'd want the endorsement of the core
team before finalizing anything.
On Wednesday, March 11, 2015 at 12:49:55 PM UTC-4, Stephen Gallagher
wrote:
On Wednesday, March 11, 2015 at 12:00:25 PM UTC-4, Carl Meyer wrote:
It certainly sounds like there's an opportunity here for
someone to
provide extra-extended security-backport support for certain
Django
releases (beyond the ~3.5 years we'll typically support an
LTS release
under current policy), to accommodate these enterprise users
on dead (to
upstream) Python versions.
I remain quite unconvinced that this "someone" should be the
Django core
team. I think the core team's limited energies are better spent
continuing to move Django forward.
Sure, I both understand and respect that. The problem is that it
moves the problem further up the stack and closer to the end-users.
The platform vendor (Red Hat, SUSE, etc.) won't take on the
responsibility for every package, or likely any package that
doesn't directly support something they are trying to sell to a
customer. Hence why the major vendors don't ship a copy for
themselves.
The community-supported add-ons are all volunteer efforts, most
often by amateur packagers who are only in rare occasions
equipped to do real engineering work to backport patches. These
people rely on the upstreams continuing to support the packages
so they can package the updated releases. Sometimes this leads
to an upstream killing off support for a release and the add-on
repository being unable to upgrade. This is bad for everyone,
because over time this *will* (not may) end up with packages in
the wild with known vulnerabilities and little-to-no way to
address it.
So the responsibility then goes to the framework developers who
have more engineering knowledge about the subject but generally
fewer resources to spare. So the answer there is that "someone
else" needs to step up and take over the security maintenance.
Unfortunately, that now brings it up to the application developers.
Application developers rarely know the internals of the packages
they depend on; generally they consume the public API and don't
think twice about the rest of the implementation. Similar to the
framework developers, they have limited resources best spent on
delivering something their customers can use. With a lack of
knowledge of the framework, they're not generally equipped to do
the maintenance themselves. Traditionally, this results in a
functional equivalent to the worst-case of the add-on repository
situation above: application developers just bundle a version of
the framework that worked when they implemented it and *never
update it*. This inevitably ends with something that appears to
work for their users but will eventually bit-rot and become a
liability.
Lastly, we have the application users. Let's be honest: do we
want end-users responsible for maintaining the complete stack?
They're going to do what they always do: find and install one
version (no matter how old) and just use it until something goes
wrong, at which point they have no one to call who knows the
system and can fix it for them.
When looking at the big picture, the best thing for end-users is
for the lowest levels of this stack to take control of
maintenance for it. In cases where the stack is critical
infrastructure (like the Python interpreter itself), the OS
vendor will take it over, even to the degree of maintaining it
past its upstream end-of-life. Where it's not critical
infrastructure, the upstream developers are the best-equipped to
manage maintenance. Further up in the stack than that, you have
a very unbalanced scale of decreasing knowledge vs increasing
need for stability.
--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to django-users+unsubscr...@googlegroups.com
<mailto:django-users+unsubscr...@googlegroups.com>.
To post to this group, send email to django-users@googlegroups.com
<mailto:django-users@googlegroups.com>.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/aa815ee5-b0d0-47b2-bdd6-824c9209f356%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/aa815ee5-b0d0-47b2-bdd6-824c9209f356%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/550A6C65.9040303%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.