lichess.org
Donate
Jja: Jin, Jîyan, Azadî

Can Ferman Gülmez

Introducing JJA 0.5.0

Software DevelopmentChess botChess engineAnalysis
Bridging the gap between tradition and innovation in the world of chess analysis

We're excited to announce that JJA has reached another milestone with the release of version 0.5.0! Following our previous version 0.4.0, this latest update brings substantial enhancements, critical fixes, and notable new features that are sure to make your chess analysis even more powerful.

Download

To install from source, use cargo install jja.

Core Fixes and Upgrades

The heart of JJA 0.5.0 is a series of important fixes and upgrades. Notably, we've resolved an encoding issue for castling in polyglot books. Previously, we encoded castling as e1g1, e1c1, e8g8, and e8c8, but the correct encoding is actually e1h1, e1a1, e8h8, and e8a8. This fix will undoubtedly make JJA more accurate and consistent in handling game data.

Moreover, in this version, for Git builds, the --version argument will prioritize the Git version over the package version. This feature brings more transparency for users tracking our repository.

Dependency and Crate Upgrades

Keeping pace with the ever-evolving Rust ecosystem, we've upgraded various crates such as 'clap' (from 4.2 to 4.3), 'ctrlc' (from 3.2 to 3.3), and the 'rocksdb' crate to 0.21.0 which bundles RocksDB-8.1.1.

Documentation and Linting

With our commitment to quality and usability, we've documented all the public code and enabled the lint #[deny(missing_docs)]. This will make it easier for users and contributors to understand and interact with our codebase.

New Features and Enhancements

A significant addition in JJA 0.5.0 is the introduction of enhanced functionality to the edit, and find commands. edit can now export opening books in PGN format and findcan display lines from the opening book as a table of opening variations reverse-sorted by cumulative weight using the -l or --line option.

We have also refined the m̀ake command with various factors for score calculation, including --win-factor, --draw-factor, and --loss-factor. With defaults set to 2, 1, and 0 respectively, it now closely resembles the original polyglot tool.

The newly introduced merge command allows users to combine book entries using various strategies such as avg, wavg, max, min, ours, and sum. This feature is quite versatile; for instance, the ours strategy is functionally identical to the merge-book command in the Polyglot tool.

Internationalization (i18n) and Crowd-Sourced Translation

In a bid to make JJA more accessible to users worldwide, we've initiated translations into Turkish and German and embedded gettext for i18n. Moreover, i18n support is now a default feature that can be turned off for static linking as needed.

In our commitment to fostering a global community, we're thrilled to announce that the JJA project has been registered on Crowdin. Now, people from all around the world can contribute to translating JJA into their native languages. Your contribution would be invaluable in making JJA more globally accessible.

Conclusion

With these enhancements, fixes, and additions, JJA 0.5.0 is another significant leap towards a more powerful, user-friendly, and globally accessible chess analysis tool. We look forward to your feedback, contributions, and especially, your translations on Crowdin. As always, we're eager to see how you use JJA in your chess analysis. Stay tuned for more updates and keep playing the beautiful game of chess!