| # Go Text | |
| This repository holds supplementary Go libraries for text processing, many involving Unicode. | |
| ## Semantic Versioning | |
| This repo uses Semantic versioning (http://semver.org/), so | |
| 1. MAJOR version when you make incompatible API changes, | |
| 1. MINOR version when you add functionality in a backwards-compatible manner, | |
| and | |
| 1. PATCH version when you make backwards-compatible bug fixes. | |
| Until version 1.0.0 of x/text is reached, the minor version is considered a | |
| major version. So going from 0.1.0 to 0.2.0 is considered to be a major version | |
| bump. | |
| A major new CLDR version is mapped to a minor version increase in x/text. | |
| Any other new CLDR version is mapped to a patch version increase in x/text. | |
| It is important that the Unicode version used in `x/text` matches the one used | |
| by your Go compiler. The `x/text` repository supports multiple versions of | |
| Unicode and will match the version of Unicode to that of the Go compiler. At the | |
| moment this is supported for Go compilers from version 1.7. | |
| ## Download/Install | |
| The easiest way to install is to run `go get -u golang.org/x/text`. You can | |
| also manually git clone the repository to `$GOPATH/src/golang.org/x/text`. | |
| ## Contribute | |
| To submit changes to this repository, see http://golang.org/doc/contribute.html. | |
| To generate the tables in this repository (except for the encoding tables), | |
| run go generate from this directory. By default tables are generated for the | |
| Unicode version in core and the CLDR version defined in | |
| golang.org/x/text/unicode/cldr. | |
| Running go generate will as a side effect create a DATA subdirectory in this | |
| directory, which holds all files that are used as a source for generating the | |
| tables. This directory will also serve as a cache. | |
| ## Testing | |
| Run | |
| go test ./... | |
| from this directory to run all tests. Add the "-tags icu" flag to also run | |
| ICU conformance tests (if available). This requires that you have the correct | |
| ICU version installed on your system. | |
| TODO: | |
| - updating unversioned source files. | |
| ## Generating Tables | |
| To generate the tables in this repository (except for the encoding | |
| tables), run `go generate` from this directory. By default tables are | |
| generated for the Unicode version in core and the CLDR version defined in | |
| golang.org/x/text/unicode/cldr. | |
| Running go generate will as a side effect create a DATA subdirectory in this | |
| directory which holds all files that are used as a source for generating the | |
| tables. This directory will also serve as a cache. | |
| ## Versions | |
| To update a Unicode version run | |
| UNICODE_VERSION=x.x.x go generate | |
| where `x.x.x` must correspond to a directory in http://www.unicode.org/Public/. | |
| If this version is newer than the version in core it will also update the | |
| relevant packages there. The idna package in x/net will always be updated. | |
| To update a CLDR version run | |
| CLDR_VERSION=version go generate | |
| where `version` must correspond to a directory in | |
| http://www.unicode.org/Public/cldr/. | |
| Note that the code gets adapted over time to changes in the data and that | |
| backwards compatibility is not maintained. | |
| So updating to a different version may not work. | |
| The files in DATA/{iana|icu|w3|whatwg} are currently not versioned. | |
| ## Report Issues / Send Patches | |
| This repository uses Gerrit for code changes. To learn how to submit changes to | |
| this repository, see https://golang.org/doc/contribute.html. | |
| The main issue tracker for the image repository is located at | |
| https://github.com/golang/go/issues. Prefix your issue with "x/image:" in the | |
| subject line, so it is easy to find. |