Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move away from HTTP::Body #1090

Closed
xsawyerx opened this issue Jan 2, 2016 · 18 comments
Closed

Move away from HTTP::Body #1090

xsawyerx opened this issue Jan 2, 2016 · 18 comments
Assignees

Comments

@xsawyerx
Copy link
Member

xsawyerx commented Jan 2, 2016

I've been wanting to do this for a very long time.

Plack did this in plack/Plack#537.

@veryrusty
Copy link
Member

Totally agree! @xsawyerx++

The merged PR for Plack is plack/Plack#538

@veryrusty
Copy link
Member

I was about to revise my refactor/request_body_parsing branch which removed HTTP::Body from Dancer2::Core::Request.. I'll go check the impact that of using HTTP::Entity::Parser on that work :)

@veryrusty
Copy link
Member

Just updated Plack locally to its latest release (1.0039). Plack::Request still uses HTTP::Body even though was released after the above merge.. #weird.

@veryrusty
Copy link
Member

D'Oh. Plack 1.0039 was a bugfix release.. No 'new feature' release has been made for Plack since the PR to remove HTTP::Body was merged.

@xsawyerx
Copy link
Member Author

xsawyerx commented Jan 2, 2016

@veryrusty Thank you for looking into this and (hopefully) taking it on. :)

@veryrusty veryrusty self-assigned this Jan 2, 2016
@veryrusty
Copy link
Member

Challenge accepted :)

@xsawyerx
Copy link
Member Author

xsawyerx commented Jan 2, 2016

@veryrusty++

@bigpresh
Copy link
Member

bigpresh commented Feb 7, 2016

I'm interested in this one - I'm looking at how much work it would be to swap HTTP::Body out of Dancer1, too, as part of PerlDancer/Dancer#1140. I suspect it'll be too much work to justify on D1, though; if so, I'll come up with some kind of workaround for it instead - HTTP::Body works well enough for us, other than its rather weird body handling (that the body is available via a filehandle for some request types, but not others)

@veryrusty
Copy link
Member

@bigpresh D2's request object inherits from Plack::Request, so I'm waiting for a Plack release that has this change (being #lazy). For D1, have a look at the change that went into Plack::Request.

@xsawyerx
Copy link
Member Author

xsawyerx commented Feb 8, 2016

@veryrusty Is such a release of Plack expected?

@veryrusty
Copy link
Member

Note for self: Plack 1.0040 TRIAL is out, with HTTP::Body replaced with HTTP::Entity::Parser

@veryrusty
Copy link
Member

Plack 1.0040 TRIAL breaks our body param handling. Working on a fix..

@veryrusty
Copy link
Member

Fix for body param passing in #1148.

@xsawyerx
Copy link
Member Author

xsawyerx commented Apr 3, 2016

@veryrusty++

@xsawyerx
Copy link
Member Author

Where are we now?

@veryrusty
Copy link
Member

I started on this a couple of weeks ago; then got distracted fixing the HMV parameter encoding issues. I'm not going to be able to dedicate time to it till December.

@xsawyerx
Copy link
Member Author

No rush. :)

@cromedome
Copy link
Contributor

Resolved by #1406. Closing.

cromedome added a commit that referenced this issue Apr 10, 2018
    [ BUG FIXES ]
    * GH #1304: Fix the order by which config files are loaded, independently
      of their filename extension (Alberto Simões, Russell @veryrusty Jenkins)
    * GH #1400: Fix infinite recursion with exceptions that use circular
      references. (Andre Walker)
    * GH #1430: Fix `dancer2 gen` from source directory when Dancer2 not
      installed. (Tina @perlpunk Müller - Tina)
    * GH #1434: Add `validate_id` method to verify a session id before
      requesting the session engine fetch it from its data store.
      (Russell @veryrusty Jenkins)
    * GH #1435, #1438: Allow XS crush_cookie methods to return an arrayref
      of values. (Russell @veryrusty Jenkins)
    * GH #1090, #1406: Replace HTTP::Body with HTTP::Entity::Parser in
      Dancer2::Core::Request. (Russell @veryrusty Jenkins)
    * GH #1443: Update copyright year (Joseph Frazer)
    * GH #1445: Use latest HTTP::Headers::Fast (Russell @veryrusty Jenkins)

    [ ENHANCEMENTS ]
    * GH #1432: Support Content-Disposition of inline in
      send_file() (Dave Webb)
    * PR #1433: Verbose testing in AppVeyor (Graham Knop)
    * PR #1354: TemplateToolkit template engine will log (at debug level)
      if a template is not found. (Kiel R Stirling, Russell @veryrusty Jenkins)

    [ DOCUMENTATION ]
    * GH #1317: Document serializer configuration (sdeseille)
    * PR #1426: Move performance improvement information from Migration guide
      to Deployment (Pedro Melo)
cromedome added a commit that referenced this issue Apr 20, 2018
    [ BUG FIXES ]
    * GH #1090, #1406: Replace HTTP::Body with HTTP::Entity::Parser in
      Dancer2::Core::Request. (Russell @veryrusty Jenkins)
    * GH #1292: Fix multiple attribute definitions within Plugins
      (Nigel Gregoire)
    * GH #1304: Fix the order by which config files are loaded, independently
      of their filename extension (Alberto Simões, Russell @veryrusty Jenkins)
    * GH #1400: Fix infinite recursion with exceptions that use circular
      references. (Andre Walker)
    * GH #1430: Fix `dancer2 gen` from source directory when Dancer2 not
      installed. (Tina @perlpunk Müller - Tina)
    * GH #1434: Add `validate_id` method to verify a session id before
      requesting the session engine fetch it from its data store.
      (Russell @veryrusty Jenkins)
    * GH #1435, #1438: Allow XS crush_cookie methods to return an arrayref
      of values. (Russell @veryrusty Jenkins)
    * GH #1443: Update copyright year (Joseph Frazer)
    * GH #1445: Use latest HTTP::Headers::Fast (Russell @veryrusty Jenkins)
    * PR #1447: Fix missing build requires (Mohammad S Anwar)

    [ ENHANCEMENTS ]
    * PR #1354: TemplateToolkit template engine will log (at debug level)
      if a template is not found. (Kiel R Stirling, Russell @veryrusty Jenkins)
    * GH #1432: Support Content-Disposition of inline in
      send_file() (Dave Webb)
    * PR #1433: Verbose testing in AppVeyor (Graham Knop)

    [ DOCUMENTATION ]
    * GH #1314: Documentation tweaks (David Precious)
    * GH #1317: Document serializer configuration (sdeseille)
    * GH #1386: Add Hello World example (Gabor Szabo)
    * PR #1408: List project development resources (Steve Dondley)
    * PR #1426: Move performance improvement information from Migration guide
      to Deployment (Pedro Melo)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants