diff options
Diffstat (limited to 'RELEASE-NOTES.md')
-rw-r--r-- | RELEASE-NOTES.md | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md deleted file mode 100644 index 91713c8..0000000 --- a/RELEASE-NOTES.md +++ /dev/null @@ -1,82 +0,0 @@ -# Plotters Release Notes - -This documents contains the release notes for every major release since v0.3. - -## Plotters v0.3 - -Plotters v0.3 is shipped with multiple major improvements. - -## Plug-and-play backend importing - -### Introduction - -Previously, Plotters implements all supported backend in the core crate. As the project is becoming bigger and bigger and -more and more backend is supported, those backend implementation cause a huge mantainance burden. - -For example, when `cairo-rs` crate is updated, plotters should release a new version with updated `cairo-rs` dependency for -our cairo backend. However, most of the users doesn't actually use this backend and pushing new version for updating cairo backend -seems to be annoying for most of the people. As more and more backend is added, the depdendency is out of control. - -### Details - -To address this, we are now move all backend implementation code out of the plotters crate. To use a specific backend, you need to -explicitly add backend crate to your dependency. For example, to use bitmap backend for v0.2.x, we can do this - -```rust -use plotters::prelude::*; -fn main() { - let backend = BitMapBackend::new(...) -} -``` - -After this update, you should do the following code instead: - -```rust -use plotters::prelude::*; -use plotter_bitmap::BitMapBackend; // <= This extra import is used to plug the backend to Plotters - -fn main() { - let backend = BitMapBackend::new(...) -} - -``` - -### Backward compatibility - -Plotters 0.3 has introduced concept of tier 1 backends, which is the most supported. -All tier 1 backends could be imported automatically with the core crate (But can be opt-out as well). -Currently we have two tier 1 backends: `plotters-bitmap` and `plotters-svg`. -These are used by most of the people. - -To ease the upgrade for tier 1 backends, we still keep feature options in the core crate that can opt in those crates. And this is enabled by default. - -Thus, if plotters is imported with default feature set, there would require no change. If the default feature set is opt out, then the following change -should be make with your `Crates.toml`: - -```toml -plotters = {version = "0.3", default_features = false, features = ["bitmap_backend", "svg_backend"]} # Instead of using feature "bitmap" and "svg" -``` - -For non tier 1 backends, manmually import is required (Please note tier on backends can be imported in same way). For example: - -```toml -plotters = {version = "0.3", default_features = false} # Instead of having features = ["cairo"] at this point -plotters-cairo = "0.3" # We should import the cairo backend in this way. -``` - -And in your code, instead of import `plotters::prelude::CairoBackend`, you should import `plotters_cairo::CairoBackend` - -## Enhanced Coordinate System Abstraction - -### Details - -Plotters 0.3 ships with tons of improvement made in the coordinate abstraction and support much more kinds of coordinate. - -* `chrono::NaiveDate` and `chrono::NaiveDateTime` are now supported -* Better abstraction of discrete coordinates -* Linspace coordinate, which can be used converting a continous coorindate into a discrete buckets -* Nested coordinate -* Slices can now be used as cooradnite specification, which allows people define an axis of category. -* 3D Coordinate is now supported - -## Fix bugs and improve testing |