mattaustin / django-storages-s3upload

Direct (client-side) HTTP POST file upload to S3 using Django forms/views.
http://django-storages-s3upload.readthedocs.org/
Apache License 2.0
8 stars 4 forks source link

Use django-storages-redux instead of django-storages #4

Closed kavdev closed 8 years ago

kavdev commented 9 years ago

django-storages is outdated and incompatible with Python 3. See https://github.com/jschneier/django-storages for more info.

mattaustin commented 9 years ago

Thanks for this - I was unaware of django-storages-redux. I just tried it, and it doesn't appear to work well with Django 1.4 (which is still a supported version), so I'm not too sure about the switch...

There is also python 3 code for django-storages itself in bitbucket (https://bitbucket.org/david/django-storages/commits/210f8e3666e3c2336712cad0e4456d3813f2fab9), but if it never gets a release I guess that isn't very useful.

How about if we were to remove 'django-storages' and 'django-storages-redux' from setup.py, and document / leave it to the end-user to decide which to install?

kavdev commented 9 years ago

That'd be fine with me, as long as there's some kind of import warning that lets the user know one of the supported packages must be installed.

I'm stretched pretty thin at the moment; I'll let you know when I can put some time into this.

clincher commented 9 years ago

Guys, isn't it possible to check python version in setup.py and install suitable version of django-storages?

kavdev commented 9 years ago

Yes, but it's more about checking the django version. django-storages-redux works in python 2 as well, but apparently doesn't play nice with django 1.4.

There's an easy way to check for django installation, but no guarantee that it will be installed before setup.py runs.

clincher commented 9 years ago

At first it's weird and quite useless to install django-storages without Django. At second in this case we can just install the latest version of Django and if it's not suitable for project - user can always reinstall version which he needs with pip. And at the end - we can always document this thing.

kavdev commented 9 years ago

I meant that importing Django and checking the version in the setup.py file will cause an import error if an attempt to install this package is made before Django has been installed.

it's weird and quite useless to install django-storages without Django

True, but that's why there's a dependency "instruction" in the setup.py file.

in this case we can just install the latest version of Django

How? Dependencies are statically collected before installation (correct me if I'm wrong).

clincher commented 9 years ago

Seems pip doesn't have this kind of futures, so I guess the best way is do not install dependencies but describe them in docs.

kavdev commented 9 years ago

Unfortunately, yes. @mattaustin if you have a list of bugs for 1.4, I can see about patching django-storages-redux instead.

The other option is to switch to the new LTS (1.8) and drop official support for anything older (or just 1.4, either way).

mattaustin commented 9 years ago

I think I'd be inclined to just remove 'django-storages' from setup.py, and document the requirement - I'd imagine that most people would already have either django-storages or django-storages-redux configured for their project first anyway.

From our perspective, it shouldn't really matter if the user chooses to use either django-storages or django-storages-redux - at this point in time they both have the same interface/api, so django-storages-s3upload probably doesn't need to make a decision - maybe we can just document the options available?

On a side-note, I've begun some initial work prepping a 'test-suite' using tox (5ebc74388d1334186f0fe01613fd07186feef909) - we can add environments which test both against django-storages and django-storages-redux if needed.

mattaustin commented 8 years ago

'django-storages-redux' has now become 'django-storages', so the project can continue requiring 'django-storages'.