Release v1.0.0.beta1

This release contains 2 major changes from 0.99.0. The first is not
news, we have removed all deprecated code from the codebase. However,
this release also contains some major restructuring of the `query_dsl`
module.

Traits related to the construction of queries, such as `SelectDsl`,
`FilterDsl`, etc. Have been merged into a single `QueryDsl` trait.
Traits related to the execution of queries, such as `ExecuteDsl` and
`LoadDsl` have been merged into a single `RunQueryDsl` trait. The
individual method traits still exist under the `query_dsl::methods`
module, but they are no longer exported from prelude.

Though we promised there would be no significant changes other than
documentation, during our process of documenting this module, it became
clear that making this change would make discovering how to use Diesel's
query builder dramatically easier. It also gives us a much more
centralized place to document these logically grouped methods. While we
do not expect this change to break many apps, it is significant enough
to warrant an early release.

Most applications should not need to care about this change. Code which
is just doing `use diesel::prelude::*` and calling these methods will
continue to work with no changes (though error messages will be
improved if you make a mistake).

However, if you had code that was implementing `QueryFragment` or
`Query`, and expected to be able to call `.execute`, `.load`, or similar
on it (such as [the `Pagination` helper in
crates.io](https://github.com/rust-lang/crates.io/blob/82ac341240d02892b2f865b2f5a075d36471ee24/src/pagination.rs)),
you will need to add `impl<Conn> RunQueryDsl<Conn> for YourType`.

If you have code that is calling query builder methods generically (e.g.
if you have `where T: FilterDsl<Something>`, you will likely need to
explicitly import things from `query_dsl::methods`

In addition to those changes, there are some minor improvements to
`#[derive(QueryableByName)]` which we had planned on releasing as
0.99.2.

Stability
---------

With this release, 0.99.x will only receive bug fixes and security
patches. No new features will be backported to that branch. However,
0.99 can be considered our first "LTS" release. While we have not yet
determined what exactly that means for Diesel, you can be assured that
release line will continue to be supported for as long as there is
demand.

We do not plan on having a 1.0.0.beta2, but there may be additional
minor breaking changes in that release if it is needed. If there are any
code changes between now and 1.0.0, even non-breaking ones, we will have
a release candidate before the final release.

Looking Ahead
-------------

As with 0.99.0, we expect that the only significant change between this
release and 1.0.0 will be documentation. We expect that the final
release of 1.0.0 will be before the end of the year.

Our only blocker for a final 1.0 release continues to be documentation.
There is a lot of work to do before the end of the year. We need help
from the community to reach our goal of releasing this year. If you're
interested in helping out, join [the impl period working group
channel](https://gitter.im/rust-impl-period/WG-libs-diesel).
23 files changed
tree: 2613c20a5e82713135414c990d67fa9191dfea20
  1. .github/
  2. bin/
  3. diesel/
  4. diesel_cli/
  5. diesel_compile_tests/
  6. diesel_derives/
  7. diesel_infer_schema/
  8. diesel_migrations/
  9. diesel_tests/
  10. examples/
  11. guide_drafts/
  12. migrations/
  13. .appveyor.yml
  14. .editorconfig
  15. .env.sample
  16. .gitignore
  17. .rustfmt.toml
  18. .travis.yml
  19. Cargo.toml
  20. CHANGELOG.md
  21. clippy.toml
  22. code_of_conduct.md
  23. CONTRIBUTING.md
  24. LICENSE-APACHE
  25. LICENSE-MIT
  26. README.md
README.md

A safe, extensible ORM and Query Builder for Rust

Build Status Appveyor Build Status Gitter Crates.io

API Documentation: latest releasemaster branch

Homepage

Diesel gets rid of the boilerplate for database interaction and eliminates runtime errors without sacrificing performance. It takes full advantage of Rust's type system to create a low overhead query builder that “feels like Rust.”

Getting Started

Find our extensive Getting Started tutorial at https://diesel.rs/guides/getting-started. Guides on more specific features are coming soon.

Code of conduct

Anyone who interacts with Diesel in any space, including but not limited to this GitHub repository, must follow our code of conduct.

License

Licensed under either of these:

Contributing

Unless you explicitly state otherwise, any contribution you intentionally submit for inclusion in the work, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.