Rocket/CHANGELOG.md

7.2 KiB

Version 0.1.6 (Jan 26, 2017)

Infrastructure

  • Hyper version pinned to 0.9.14 due to upstream non-semver breaking change.

Version 0.1.5 (Jan 14, 2017)

Core

  • Fixed security checks in FromSegments implementation for PathBuf.

Infrastructure

  • proc_macro feature removed from examples due to stability.

Version 0.1.4 (Jan 4, 2017)

Core

  • Header names are treated as case-preserving.

Codegen

  • Minimum supported nightly is 2017-01-03.

Version 0.1.3 (Dec 31, 2016)

Core

  • Typo in Outcome formatting fixed (Succcess -> Success).
  • Added ContentType::CSV.
  • Dynamic segments parameters are properly resolved, even when mounted.
  • Request methods are only overridden via _method field on POST.
  • Form value Strings are properly decoded.

Codegen

  • The _method field is now properly ignored in FromForm derivation.
  • Unknown Content-Types in format no longer result in an error.
  • Deriving FromForm no longer results in a deprecation warning.
  • Codegen will refuse to build with incompatible rustc, presenting error message and suggestion.
  • Added head as a valid decorator for HEAD requests.
  • Added route(OPTIONS) as a valid decorator for OPTIONS requests.

Contrib

  • Templates with the .tera extension are properly autoescaped.
  • Nested template names are properly resolved on Windows.
  • Template implements Display.
  • Tera dependency updated to version 0.6.

Docs

  • Todo example requirements clarified in its README.

Testing

  • Tests added for config, optional_result, optional_redirect, and query_params examples.
  • Testing script checks for and disallows tab characters.

Infrastructure

  • New script (bump_version.sh) automates version bumps.
  • Config script emits error when readlink/readpath support is bad.
  • Travis badge points to public builds.

Version 0.1.2 (Dec 24, 2016)

Codegen

  • Fix get_raw_segments index argument in route codegen (#41).
  • Segments params (<param..>) respect prefixes.

Contrib

  • Fix nested template name resolution (#42).

Infrastructure

  • New script (publish.sh) automates publishing to crates.io.
  • New script (bump_version.sh) automates version bumps.

Version 0.1.1 (Dec 23, 2016)

Core

  • NamedFile Responder lost its body in the shuffle; it's back!

Version 0.1.0 (Dec 23, 2016)

This is the first public release of Rocket!

Breaking

All of the mentions to hyper types in core Rocket types are no more. Rocket now implements its own Request and Response types.

  • ContentType uses associated constants instead of static methods.
  • StatusCode removed in favor of new Status type.
  • Response type alias superceded by Response type.
  • Responder::respond no longer takes in hyper type.
  • Responder::respond returns Response, takes self by move.
  • Handler returns Outcome instead of Response type alias.
  • ErrorHandler returns Result.
  • All Hyper* types were moved to unprefixed versions in hyper::.
  • MockRequest::dispatch now returns a Response type.
  • URIBuf removed in favor of unified URI.
  • Rocket panics when an illegal, dynamic mount point is used.

Core

  • Rocket handles HEAD requests automatically.
  • New Response and ResponseBuilder types.
  • New Request, Header, Status, and ContentType types.

Testing

  • MockRequest allows any type of header.
  • MockRequest allows cookies.

Codegen

  • Debug output disabled by default.
  • The ROCKET_CODEGEN_DEBUG environment variables enables codegen logging.

Version 0.0.11 (Dec 11, 2016)

Streaming Requests

All incoming request data is now streamed. This resulted in a major change to the Rocket APIs. They are summarized through the following API changes:

  • The form route parameter has been removed.
  • The data route parameter has been introduced.
  • Forms are now handled via the data parameter and Form type.
  • Removed the data parameter from Request.
  • Added FromData conversion trait and default implementation.
  • FromData is used to automatically derive the data parameter.
  • Responders are now final: they cannot forward to other requests.
  • Responsers may only forward to catchers.

Breaking

  • Request uri parameter is private. Use uri() method instead.
  • form module moved under request module.
  • response::data was renamed to response::content.
  • Introduced Outcome with Success, Failure, and Forward variants.
  • outcome module moved to top-level.
  • Response is now a type alias to Outcome.
  • Empty Responder was removed.
  • StatusResponder removed in favor of response::status module.

Codegen

  • Error handlers can now take 0, 1, or 2 parameters.
  • FromForm derive now works on empty structs.
  • Lifetimes are now properly stripped in code generation.
  • Any valid ident is now allowed in single-parameter route parameters.

Core

  • Route is now cloneable.
  • Request no longer has any lifetime parameters.
  • Handler type now includes a Data parameter.
  • http module is public.
  • Responder implemented for () type as an empty response.
  • Add config::get() for global config access.
  • Introduced testing module.
  • Rocket.toml allows global configuration via [global] table.

Docs

  • Added a raw_upload example.
  • Added a pastebin example.
  • Documented all public APIs.

Testing

  • Now building and running tests with --all-features flag.
  • Added appveyor config for Windows CI testing.

Version 0.0.10 (Oct 03, 2016)

Breaking

  • Remove Rocket::new in favor of ignite method.
  • Remove Rocket::mount_and_launch in favor of chaining mount(..).launch().
  • mount and catch take Rocket type by value.
  • All types related to HTTP have been moved into http module.
  • Template::render in contrib now takes context by reference.

Core

  • Rocket now parses option Rocket.toml for configuration, defaulting to sane values.
  • ROCKET_ENV environment variable can be used to specify running environment.

Docs

  • Document ContentType.
  • Document Request.
  • Add script that builds docs.

Testing

  • Scripts can now be run from any directory.
  • Cache Cargo directories in Travis for faster testing.
  • Check that library version numbers match in testing script.

Version 0.0.9 (Sep 29, 2016)

Breaking

  • Rename response::data_type to response::data.

Core

  • Rocket interprets _method field in forms as the incoming request's method.
  • Add Outcome::Bad to signify responses that failed internally.
  • Add a NamedFile Responder type that uses a file's extension for the response's content type.
  • Add a Stream Responder for streaming responses.

Contrib

  • Introduce the contrib crate.
  • Add JSON support via JSON, which implements FromRequest and Responder.
  • Add templating support via Template which implements Responder.

Docs

  • Initial guide-like documentation.
  • Add documentation, testing, and contributing sections to README.

Testing

  • Add a significant number of codegen tests.