From b6c01d91ab3866c31556cea9ba3d7fc7e5b04a10 Mon Sep 17 00:00:00 2001
From: ticki <ticki@users.noreply.github.com>
Date: Sun, 24 Jul 2016 00:53:16 +0200
Subject: [PATCH] Add changelog

---
 CHANGELOG.md | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 CHANGELOG.md

diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..efa2d4c0
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,84 @@
+# 1.0.0
+
+Termion 1.0.0 is out! This release is breaking, which is also the reason for the semver bump.
+
+## Highlights
+
+Lot'ta goodies.
+
+- **Mouse support:** If you enabled mouse mode through the `MouseTerminal` struct, you can get mouse events (thanks to IGI-111).
+- **TrueColor support:** You can now use true color, by the `Rgb` struct.
+- **A complete revision of the way escapes are handled:** Everything is now done through `Display` instead of custom traits.
+- **`isatty` wrapper:** `termion::is_tty` takes any `T: AsRawFd` and gives you a `bool`.
+- **Crates.io release:** Previously, it was distributed solely through git. This turns out to be very convinient, but quite critical whenever making breaking changes (that is, major semver bumps).
+
+## 0.1.0 to 1.0.0 guide
+
+This sample table gives an idea of how to go bu converting to the new major
+version of Termion.
+
++------------------------------------------------------------
+| 0.1.0                          | 1.0.0
+|--------------------------------|---------------------------
+| `use termion::IntoRawMode`     | `use termion::raw::IntoRawMode`
+| `stdout.color(color::Red);`    | `write!(stdout, "{}", color::Fg(color::Red));`
+| `stdout.color_bg(color::Red);` | `write!(stdout, "{}", color::Bg(color::Red));`
+| `stdout.goto(x, y);`           | `write!(stdout, "{}", cursor::Goto(x, y));`
+| `color::rgb(r, g, b);`         | `color::Rgb(r, g, b)` (truecolor)
+| `x.with_mouse()`               | `MouseTerminal::from(x)`
+
+## An example
+
+```rust
+#![feature(step_by)]
+
+extern crate termion;
+
+use termion::event::Key;
+use termion::input::TermRead;
+use termion::raw::IntoRawMode;
+use std::io::{Write, stdout, stdin};
+
+fn rainbow<W: Write>(stdout: &mut W, blue: u8) {
+    write!(stdout, "{}{}", termion::cursor::Goto(1, 1), termion::clear::All).unwrap();
+
+    for red in (0..255).step_by(8 as u8) {
+        for green in (0..255).step_by(4) {
+            write!(stdout, "{} ", termion::color::Bg(termion::color::Rgb(red, green, blue))).unwrap();
+        }
+        write!(stdout, "\n\r").unwrap();
+    }
+
+    writeln!(stdout, "{}b = {}", termion::style::Reset, blue).unwrap();
+}
+
+fn main() {
+    let stdin = stdin();
+    let mut stdout = stdout().into_raw_mode().unwrap();
+
+    writeln!(stdout, "{}{}{}Use the arrow keys to change the blue in the rainbow.",
+           termion::clear::All,
+           termion::cursor::Goto(1, 1),
+           termion::cursor::Hide).unwrap();
+
+    let mut blue = 172u8;
+
+    for c in stdin.keys() {
+        match c.unwrap() {
+            Key::Up => {
+                blue = blue.saturating_add(4);
+                rainbow(&mut stdout, blue);
+            },
+            Key::Down => {
+                blue = blue.saturating_sub(4);
+                rainbow(&mut stdout, blue);
+            },
+            Key::Char('q') => break,
+            _ => {},
+        }
+        stdout.flush().unwrap();
+    }
+
+    write!(stdout, "{}", termion::cursor::Show).unwrap();
+}
+```
-- 
GitLab