Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Django REST framework 3.0 (django-rest-framework.org)
255 points by tomchristie on Dec 1, 2014 | hide | past | favorite | 30 comments


I'm loving this Kickstarter model for major open source software. Just in the Django community we're getting incredibly high quality work between migrations in Django 1.7, Django REST Framework 3.0, and the PostgreSQL extensions Kickstarters.

I've only been paying attention to the Django world with these Kickstarters, but is this catching on in any other sphere of software development (Ruby, Java, .NET)?


From a business perspective, chipping into a Django kickstarter headed up by someone like Tom is an investment with an incredibly high chance to return something valuable.

In this case, Tom exceeded expectations with an excellent 3.0 release. We are going to save some developer time, improve the quality of our code, and be better equipped to handle whatever unexpected needs the future throws at us.

Ditto for Andrew's Django migrations project.

I hope we can all continue to show strong support for these projects, regardless of the ecosystem in question (Django, Rails, etc). We all come out ahead, as long as we make sure that the project leader has a good chance of delivering.



There was recently an Indiegogo project for improving the template engine in Django too.


The main thing is to make them swappable, which will be great: https://www.indiegogo.com/projects/multiple-template-engines...


Agreed about the Kickstarter model for open-source software. It's the best of both worlds - developers can contribute to the community while still getting paid for it.


Awesome! Great job Tom. DRF is one of those open source projects that makes me wonder how one person can be so productive. I'm a big fan of the new serializers. Personally I'll probably stick with my custom flask tooling since it works better for 100-200 line microservices, but I'll definitely be trying out this latest DRF release.

I'm sure this is the last thing you want to be hearing right now, but any updates on the flask counterpart you were working on? :) are you abandoning that while you work on 3.1 and 3.2? Or altogether?


Flask API is certainly on pause while 3.1 and 3.2 are addressed yes.

After that it depends on what I feel is the most productive use of my time. Perhaps general purpose Python API tooling, that includes Flask as one of the options, or perhaps work on hypermedia stuff that I've got in my head.


I like the sound of general purpose API tooling! In developing small services with flask, I've found myself reusing the same serialization code, input validation code, etc. You might be interested in Marshmallow, a minimalist serializtion framework. [0] I've enjoyed working with it, especially with Flask. I believe Flask-Restless or Flask-Restful uses it as well.

[0] http://marshmallow.readthedocs.org/en/latest/


Flask-RESTful currently has its own serializer module, but we have plans to deprecate it in the future and replace it with Marshmallow[1]

[1]: https://github.com/flask-restful/flask-restful/issues/335


I'm developing a system that, among other things, could be an even more minimalist alternative to Marshmallow [0]. I actually haven't seen Marshmallow until now, it looks very nice.

[0] http://teleport-json.org/


Tom, congratulations! This is exceptional work. It's exciting to see this release come to fruition via your Kickstarter campaign and a whole lot of work on your part along with the Django community.


Congratulations!

Any update on how the money was spent? I found: https://www.kickstarter.com/projects/tomchristie/django-rest...

and that all sounds very reasonable. Personally[1] I wouldn't mind the dev(s) just pocketing the money -- but was there an update on "budget"?

[1] One might quip that that's easy to say, as I didn't back this particular project. I've backed a few other KSs, though -- and I can say that in all of those, I've/I'd generally been happy if the originators(?) kept any extra money (as long as the delivered on the goals, of course)


> Any update on how the money was spent?

So this is only 1/3 of the Kickstarter to date. The two stretch goals are planned as releases 3.1 and 3.2.

We were significantly overfunded, and I'll treat the extra time/budget flexibly depending on whatever seems highest priority, but it's mostly going towards ensuring I've got headroom for keeping the quality bar super high. (Plus extra time available for general support, triage, etc...)

For transparency I plan to be ending up with treating 10% of the amount received as profit - the rest of the funding is simply covering the costs for the time I'm not working on client projects at DabApps (minus Kickstarter's cut and some taxes of course).

I probably won't give a full time-spent breakout of how long each task has taken, I've not had requests from backers to do that, and not doing so frees me up to spend it however I think best without feeling like I need to justify things on a blow-by-blow basis.


Sounds like a sound plan.

For those wondering why I asked: I wanted to know. Less flippantly (but no less true) -- I'm interested in both successful and failing Kickstarters for Free/open software: It's a tricky business. You ask people to give you money, and in return you'll give them a metaphorical song -- and a token. No-one (I would hope) really thinks the "token" is worth wath they spend -- so it's very interesting to see how backers feel about decisions that are made, in cases like this, when a goal is significantly over-achieved.

There are many options: continue working on the code, if that makes sense; donate to something related (eg: python foundation in this case?) -- or simply keeping the money, as a pat on the back of sorts.

I don't have any issues with any of those options -- but they can be potential thorny decisions -- especially when one hasn't planned for "irrational success" (and come up with a suitable "stretch goal" or plan, like: 10MUSD: I'll go into space ;-) before hand.


I guess from my side it feels like it's something of a different business relationship to the usual case. There's enough trust from backers that over-funding will ensure a better product, even when the details of that are underspecified.

I wouldn't particularly mind things being more nailed down, eg "Here's my day rate, and you'll get weekly updates" but there's still a bit of a sense that OSS development needs to be apologetic for being properly sustainable, and it is awkward to navigate that you know stacks of people who're also putting in hard work, and not having the privilege of being paid to do so in working hours.

I think there's also a trade off - not having to justify decisions case-by-case does mean that I can just focus on stuff done, however I think that's best spent.

I also think we need to redefine our expectations. The amount of money this project raised on Kickstarter is huge by OSS standards, but in terms of business investment it's actually what I'd consider a sensible amount, and I'd hope to see it become more normalized. If you look how an individual backing compares to contractor day rates, the investment most of our backers are making is clearly worth the deliverable they're getting at the end of it.


I very much agree with this. I like to think of a KS as a sort of market research: do people want/need this? And people spend/give some amount they're comfortable with spending. If I spent, say a hundred dollars, and got a sticker and a open source piece of software that I needed -- that's great value! If the author(s) suddenly became independently wealthy, I'd think that was great! Keep doing good stuff!

(I'm obviously extrapolating here, this KS went nowhere as far -- but successful (as in: funded, and delivered) KS' are always interesting IMHO).


Seems pretty clear from that linked post: Tom is going to use/used the money to support his time spent working on the project. And extra funds will be used/have been used to devote more time than he'd otherwise be able to spend.


So why are you asking?


Congratulations Tom. This trend of crowdfunding development for Django and Python projects should be copied by other communities. It's amazing how much high quality work is coming out of it.


Congrats @tomchristie (and all those involved). DRF is the only thing that ever makes me jealous of Django.


Great job, congratulations!!! Since author is here, would like to ask quick question, does this version support saving m2m relation data and, if yes,how does it handle failed related model saving, does it uses transaction at the beginning of request?


Yes it does, but probably best to take this sort of thing onto the discussion group... https://groups.google.com/forum/#!forum/django-rest-framewor...


Well done, congratulations. Are there any plans to continue the Flask port of the framework?


I'm not sure at the moment, we'll see once the remaining bits of the kickstarter work (releases 3.1 and 3.2) are done and released.


While I don't have any plans to upgrade my use of the DRF, I supported this project at the advocate level because I'm so thankful to have tools like this available. Thanks again Tom for all your hard work.


Congrats. Any recommended resources for experienced django dev on beginning with mobile/REST on django/iOS ?


I really appreciate it. DRF is awesome.


Woo!


Amazing stuff, and very exciting




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: