1# Go Text 2 3[![Go Reference](https://pkg.go.dev/badge/golang.org/x/text.svg)](https://pkg.go.dev/golang.org/x/text) 4 5This repository holds supplementary Go libraries for text processing, many involving Unicode. 6 7## Semantic Versioning 8This repo uses Semantic versioning (http://semver.org/), so 91. MAJOR version when you make incompatible API changes, 101. MINOR version when you add functionality in a backwards-compatible manner, 11 and 121. PATCH version when you make backwards-compatible bug fixes. 13 14Until version 1.0.0 of x/text is reached, the minor version is considered a 15major version. So going from 0.1.0 to 0.2.0 is considered to be a major version 16bump. 17 18A major new CLDR version is mapped to a minor version increase in x/text. 19Any other new CLDR version is mapped to a patch version increase in x/text. 20 21It is important that the Unicode version used in `x/text` matches the one used 22by your Go compiler. The `x/text` repository supports multiple versions of 23Unicode and will match the version of Unicode to that of the Go compiler. At the 24moment this is supported for Go compilers from version 1.7. 25 26## Download/Install 27 28The easiest way to install is to run `go get -u golang.org/x/text`. You can 29also manually git clone the repository to `$GOPATH/src/golang.org/x/text`. 30 31## Contribute 32To submit changes to this repository, see http://golang.org/doc/contribute.html. 33 34To generate the tables in this repository (except for the encoding tables), 35run go generate from this directory. By default tables are generated for the 36Unicode version in core and the CLDR version defined in 37golang.org/x/text/unicode/cldr. 38 39Running go generate will as a side effect create a DATA subdirectory in this 40directory, which holds all files that are used as a source for generating the 41tables. This directory will also serve as a cache. 42 43## Testing 44Run 45 46 go test ./... 47 48from this directory to run all tests. Add the "-tags icu" flag to also run 49ICU conformance tests (if available). This requires that you have the correct 50ICU version installed on your system. 51 52TODO: 53- updating unversioned source files. 54 55## Generating Tables 56 57To generate the tables in this repository (except for the encoding 58tables), run `go generate` from this directory. By default tables are 59generated for the Unicode version in core and the CLDR version defined in 60golang.org/x/text/unicode/cldr. 61 62Running go generate will as a side effect create a DATA subdirectory in this 63directory which holds all files that are used as a source for generating the 64tables. This directory will also serve as a cache. 65 66## Versions 67To update a Unicode version run 68 69 UNICODE_VERSION=x.x.x go generate 70 71where `x.x.x` must correspond to a directory in https://www.unicode.org/Public/. 72If this version is newer than the version in core it will also update the 73relevant packages there. The idna package in x/net will always be updated. 74 75To update a CLDR version run 76 77 CLDR_VERSION=version go generate 78 79where `version` must correspond to a directory in 80https://www.unicode.org/Public/cldr/. 81 82Note that the code gets adapted over time to changes in the data and that 83backwards compatibility is not maintained. 84So updating to a different version may not work. 85 86The files in DATA/{iana|icu|w3|whatwg} are currently not versioned. 87 88## Report Issues / Send Patches 89 90This repository uses Gerrit for code changes. To learn how to submit changes to 91this repository, see https://golang.org/doc/contribute.html. 92 93The main issue tracker for the image repository is located at 94https://github.com/golang/go/issues. Prefix your issue with "x/text:" in the 95subject line, so it is easy to find. 96