Files
Dmitry Verkhoturov 07c7926453 Update backend dependencies to latest
Update all Go modules in backend/ and backend/_example/memory_store/ to
their latest versions (chroma 2.27, go-redis 9.21, bbolt 1.5, slack 0.27,
golang.org/x/* and others); re-tidy and re-vendor, keep the example module
in sync.

Hold github.com/go-chi/chi/v5 at v5.2.5: v5.3.0 deprecates
middleware.RealIP (IP-spoofing advisories). Switching off RealIP changes
how the client IP is derived for rate limiting and votes, which is a
security decision better made on its own rather than inside a dependency
bump.

go test -race, go vet, golangci-lint and govulncheck all clean on both
modules.
2026-06-30 18:35:31 +01:00
..
2024-04-10 19:33:20 -05:00
2026-06-30 18:35:31 +01:00
2026-06-30 18:35:31 +01:00
2026-06-30 18:35:31 +01:00
2023-08-07 13:03:16 -05:00

Chroma lexers

All lexers in Chroma should now be defined in XML unless they require custom code.

Lexer tests

The tests in this directory feed a known input testdata/<name>.actual into the parser for <name> and check that its output matches <name>.expected.

It is also possible to perform several tests on a same parser <name>, by placing know inputs *.actual into a directory testdata/<name>/.

Running the tests

Run the tests as normal:

go test ./lexers

Update existing tests

When you add a new test data file (*.actual), you need to regenerate all tests. That's how Chroma creates the *.expected test file based on the corresponding lexer.

To regenerate all tests, type in your terminal:

RECORD=true go test ./lexers

This first sets the RECORD environment variable to true. Then it runs go test on the ./lexers directory of the Chroma project.

(That environment variable tells Chroma it needs to output test data. After running go test ./lexers you can remove or reset that variable.)

Windows users

Windows users will find that the RECORD=true go test ./lexers command fails in both the standard command prompt terminal and in PowerShell.

Instead we have to perform both steps separately:

  • Set the RECORD environment variable to true.
    • In the regular command prompt window, the set command sets an environment variable for the current session: set RECORD=true. See this page for more.
    • In PowerShell, you can use the $env:RECORD = 'true' command for that. See this article for more.
    • You can also make a persistent environment variable by hand in the Windows computer settings. See this article for how.
  • When the environment variable is set, run go test ./lexers.

Chroma will now regenerate the test files and print its results to the console window.