Skip to content

Commit

Permalink
Add CHANGELOG.md
Browse files Browse the repository at this point in the history
  • Loading branch information
behnam committed Feb 26, 2019
1 parent 7a7cba0 commit df8d194
Show file tree
Hide file tree
Showing 2 changed files with 264 additions and 1 deletion.
253 changes: 253 additions & 0 deletions CHANGELOG.md
@@ -0,0 +1,253 @@
# UNIC Changelog


## [Unreleased]
[Unreleased]: https://github.com/open-i18n/rust-unic/compare/v0.8.0...HEAD

### Add

- `unic-ucd-name_aliases`: Unicode Name Alias character properties.

### Changed

- `unic-cli`: Fallback to Name Alias for characters without Name value.

### Fixed

- `ucd-ident`: Use correct data table for `PatternWhitespace` property.
[[GH-254](https://github.com/open-i18n/rust-unic/issues/254)]

### Misc

- Use external git submodules for source data.

- Migrate to Rust 2018 Edition.


## [v0.8.0] - 2019-01-02
[v0.8.0]: https://github.com/open-i18n/rust-unic/compare/v0.7.0...v0.8.0

### Added

- `unic-ucd-block`: List of all Unicode Blocks and the property assigning a
block to each character.

- `unic-ucd-hangul`: Unicode Hangul Syllable detection and
Composition/Decomposition algorithms.

### Changed

- `unic-ucd-name`: Complete implementation for Unicode Name Property, with
addition of Hangul and CJK Han names, as defined by The Unicode Standard.

### Misc

- This is the last release of the project before migration to Rust 2018 Edition.

- Special thanks for Yan Li (@eyeplum) for implementing most of the features in
this release.


## [v0.7.0] - 2018-02-06
[v0.7.0]: https://github.com/open-i18n/rust-unic/compare/v0.6.0...v0.7.0

### Added

#### UNIC Applications

UNIC Applications are binary creates hosting in the same repository as `unic`
super-crate, under the `apps/` directory. These creates are not internal parts
of the `unic` library, but tools designed and developed for the general
audience, also serving as a test bed for the UNIC API. We are starting with CLI
applications, and possibly expanding it to GUI and WEB applications, as well.

- `unic-cli` The new UNIC CLI application provides command-line tools for
working with Unicode characters and strings. In this release, first versions
of `unic-echo` and `unic-inspector` commands are implemented.

#### New Components

Character Property:

- `unic-ucd-common `: Common character properties (*alphabetic*, *alphanumeric*,
*control*, *numeric*, and *white_space*).

- `unic-ucd-ident`: Unicode Identifier character properties.

- `unic-ucd-segment`: Unicode Segmentation character properties.

- `unic-emoji-char`: Unicode Emoji character properties.

String Algorithm:

- `unic-segment`: Implementation of Unicode Text Segmentation algorithms
(*Grapheme Cluster* and *Word* boundaries).

### Misc

This release was delayed for a couple of cycles, because of the problems with
running tests in a workspace with a mix of std and no-std creates. The issue is
resolved as of `1.22.0`.

- Enable `no_std` for many of the existing components.

- Bumped Minimum Rust Version needed to `1.22.0`.

- Lots of small fixes for data types and internal structure updates.


## [v0.6.0] - 2017-09-22
[v0.6.0]: https://github.com/open-i18n/rust-unic/compare/v0.5.0...v0.6.0

### Added

#### Abstractions for working with characters:

- `unic-char-range`: Range and iterator types for characters, plus a `chars!()`
macro. (Used as `chars!('a'..'e')`, `chars!('a'..='e')`, or `chars!(..)`.)

- `unic-char-property`: New component based on the module previously in
`unic-utils`, with new support for binary character properties.

#### Extending Unicode Character Database properties:

- `unic-ucd-name`: New minimal implementation of Unicode character names (*Name*
property).

- `unic-ucd-case`: New basic implementation of Unicode character case
properties.

- `unic-ucd-bidi`: Add `Bidi_Mirrored` and `Bidi_Control` properties.

### Removed

- Drop `unic-utils`'s `iter_all_chars()` in favor of `unic-char-range` types and
macros.

### Misc

- All tables are now generated by the Rust pipeline! 🎉

- The Rust table generation has been cleaned up to a very nice level of polish! ✨

- `unic-utils`: Restructure tables into a dedicated type, rather than a mix of
traits and "blessed" std types.


## [v0.5.0] - 2017-08-05
[v0.5.0]: https://github.com/open-i18n/rust-unic/compare/v0.4.0...v0.5.0

### Added

- `unic-ucd-category`: Support *General_Category* Unicode (UCD) character
property, implemented as `enum GeneralCategory`.

- `unic-ucd-nomal`: Support *Decomposition_Type* Unicode (UCD) character
property, implemented as `enum DecompositionType`.

### Changed

- `unic-ucd-normal`: Update *Canonical_Combining_Class* implementation to *tuple
struct* and add update API accordingly.

- `unic-ucd-age`: Update *Age* property implementation to not cause API breakage
on new Unicode versions.

- `unic-utils`: Rename from `unic-ucd-utils`, to contain all data-less utility
functionalities.
[[GH-50](https://github.com/open-i18n/rust-unic/issues/50)]

- Expand character property API in implementations, in the process of defining
trait-based contracts for all (UCD and other) character properties.
[[GH-66](https://github.com/open-i18n/rust-unic/issues/66)]
[[GH-34](https://github.com/open-i18n/rust-unic/issues/34)]

- Reorganize code structure to make room for dev packages, like new `unic-gen`
crate—which is going to replace the Python implementation for data table
generation.

- `unic-ucd`: Expand cross-component and conformance tests.
[[GH-18](https://github.com/open-i18n/rust-unic/issues/18)]
[[GH-43](https://github.com/open-i18n/rust-unic/issues/43)]

### Removed

- Drop data-dependent integration tests from packaging, allowing all tests pass
for downloaded packages.
[[GH-34](https://github.com/open-i18n/rust-unic/issues/34)]

- Drop dependency on `rustc_test` in favor of default integration test harness.
[[GH-76](https://github.com/open-i18n/rust-unic/issues/76)]


## [v0.4.0] - 2017-06-23
[v0.4.0]: https://github.com/open-i18n/rust-unic/compare/v0.3.0...v0.4.0

### Added

- `UnicodeVersion` type, and use in all components for `UNICODE_VERSION`, and
allow conversion to/from `Age` character property.

### Changed

- `unic-ucd`: Create common API for UCD character properties (`Prop::of(ch: char)`).

- `unic-idna`: Use standard `binary_search_by()`.

- Split IDNA Mapping data into `unic-idna-mapping` and leave the process
algorithms in `unic-idna`.

- Pass in `bench_it` feature to components supporting it.
(Only `unic-bidi` at the moment.)


## [v0.3.0] - 2017-06-22
[v0.3.0]: https://github.com/open-i18n/rust-unic/compare/v0.2.0...v0.3.0


### Added

- `unic-ucd-age` component.


## [v0.2.0] - 2017-06-20
[v0.2.0]: https://github.com/open-i18n/rust-unic/compare/v0.1.2...v0.2.0

### Changed

- Update UCD and IDNA data to Unicode 10.0.0, as released on 2017-06-20.


## [v0.1.2] - 2017-06-20
[v0.1.2]: https://github.com/open-i18n/rust-unic/compare/v0.1.1...v0.1.2

### Added

- A bunch of missing documentations.

- A script to publish all crates, in order of dependency.


## [v0.1.1] - 2017-06-20
[v0.1.1]: https://github.com/open-i18n/rust-unic/compare/v0.1.0...v0.1.1

Initial release with UCD, Bidi, IDNA, and Normalization components.


## [v0.1.0] - 2017-06-20
[v0.1.0]: https://github.com/open-i18n/rust-unic/tree/7a1ce408ae58be7553c916dddc5617f1be104252

Initial source release.


[//]: # (----------------------------------------------------------------)
[//]: # (The format of this file is based on https://keepachangelog.com/)
[//]: # ()
[//]: # (Sections:)
[//]: # (### Added)
[//]: # (### Changed)
[//]: # (### Deprecated)
[//]: # (### Removed)
[//]: # (### Fixed)
[//]: # (### Security)
[//]: # (### Misc)
12 changes: 11 additions & 1 deletion README.md
Expand Up @@ -4,7 +4,7 @@

[![Travis](https://img.shields.io/travis/open-i18n/rust-unic/master.svg?label=Linux%20build)](https://travis-ci.org/open-i18n/rust-unic/)
[![AppVeyor](https://img.shields.io/appveyor/ci/open-i18n/rust-unic/master.svg?label=Windows%20build)](https://ci.appveyor.com/project/open-i18n/rust-unic)
[![Rust-1.31.0+](https://img.shields.io/badge/rustc-1.28+-red.svg#MIN_RUST_VERSION)](https://www.rust-lang.org/)
[![Rust-1.31.0+](https://img.shields.io/badge/rustc-1.31+-red.svg#MIN_RUST_VERSION)](https://www.rust-lang.org/)
[![Unicode-10.0.0](https://img.shields.io/badge/unicode-10.0.0-red.svg)](https://www.unicode.org/versions/Unicode10.0.0/)
[![Release](https://img.shields.io/github/release/open-i18n/rust-unic.svg)](https://github.com/open-i18n/rust-unic/)
[![Crates.io](https://img.shields.io/crates/v/unic.svg)](https://crates.io/crates/unic/)
Expand All @@ -20,6 +20,9 @@ and Internationalization data and algorithms. In other words, it's like
in *safe* mode, but also benefiting from performance gains of *unsafe* mode when
possible.

See [UNIC Changelog](CHANGELOG.md) for latest release details.


## Project Goal

The goal for UNIC is to provide access to all levels of Unicode and
Expand All @@ -30,6 +33,7 @@ properties, to Unicode algorithms for processing text, and more advanced
Other standards and best practices, like IETF RFCs, are also implemented, as
needed by Unicode/CLDR components, or common demand.


## Project Status

At the moment UNIC is under heavy development: the API is updated frequently on
Expand All @@ -41,6 +45,7 @@ We expect to have the `1.0` version released in 2018 and maintain a stable API
afterwards, with possibly one or two API updates per year for the first couple
of years.


## Design Goals

1. Primary goal of UNIC is to provide reliable functionality by way of
Expand All @@ -59,6 +64,7 @@ of years.
inconsistency between implementations, without slowing down development
processes.


## Components and their Organization

UNIC *Components* have a hierarchical organization, starting from the
Expand Down Expand Up @@ -117,6 +123,7 @@ this crate.
- [`unic-cli`](apps/cli): UNIC Command-Line Tools
[![Crates.io](https://img.shields.io/crates/v/unic-cli.svg)](https://crates.io/crates/unic-cli/)


## Code Organization: Combined Repository

Some of the reasons to have a combined repository these components are:
Expand Down Expand Up @@ -144,6 +151,7 @@ Some of the reasons to have a combined repository these components are:
repository, it's easier to maintain these bootstrapping tools, expand
coverage, and use better data structures for more efficiency.


## Documentation

* [Unicode and Rust](docs/Unicode_and_Rust.md)
Expand Down Expand Up @@ -298,6 +306,7 @@ fn main() {
You can find more examples under [`examples`](examples/) and [`tests`](tests/)
directories. (And more to be added as UNIC expands...)


## License

Licensed under either of
Expand All @@ -315,6 +324,7 @@ Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.


## Code of Conduct

UNIC project follows **The Rust Code of Conduct**. You can find a copy of it in
Expand Down

0 comments on commit df8d194

Please sign in to comment.