There was a near complete re-write of the entire repo between version 5.9.3 and 6.0.0. The repo version as of this document is v6.4.5. These instructions help you migrate to the new format.
Don't want to migrate? See Not Migrating for how to stay on the older versions.
The repository structure has been completely reorganized with proper Go module versioning. You'll need to update all import paths and go.mod dependencies as follows:
Old import path:
github.com/TrueBlocks/trueblocks-core/chifraNew import path:
github.com/TrueBlocks/trueblocks-chifra/v6Update this in all locations including:
- Go source file imports
go.modfiles- Any scripts or configuration that reference the old path
Old import path:
github.com/TrueBlocks/trueblocks-sdk/v5New import path:
github.com/TrueBlocks/trueblocks-sdk/v6Old import path:
github.com/TrueBlocks/trueblocks-khedra/v5New import path:
github.com/TrueBlocks/trueblocks-khedra/v6The development tools (goMaker, testRunner, etc.) were internal-only tools and are now managed as separate repositories. We recommend using them at your own risk. We do not provide migration paths for internal-use-only tools.
If you have a go.mod file that looks like this:
module your-project
go 1.21
require (
github.com/TrueBlocks/trueblocks-core/chifra v0.0.0
github.com/TrueBlocks/trueblocks-sdk/v5 v5.9.3
)Update it to:
module your-project
go 1.21
require (
github.com/TrueBlocks/trueblocks-chifra/v6 v6.4.5
github.com/TrueBlocks/trueblocks-sdk/v6 v6.4.5
)And then make sure to update the import paths in your .go files.
The radical modifications to the codebase between version 5.9.3 and 6.4.5 were driven by three fundamental issues that required breaking changes:
Chifra was previously unversioned, which made proper management of the repositories nearly impossible, especially when used in the mini-dApps. We always knew that at some point we would have to make this radical a change. We tried to implement a lesser change initially, but it became impossible at a certain point, thus necessitating the major breaking changes.
The 5.9.3 and earlier releases used master as the main branch. They now use main as most other modern repos do. This was a long-ago naming convention that we knew we would one day have to fix to align with modern Git practices. Rather than making incremental changes, we decided to break everything all at once and migrate to main as the default branch.
This repo was originally born as a C++ project. The new format is much more idiomatic GoLang. Our hope is to spend much less time managing what was essentially borken. All our development tools (testRunner, goMaker, scripts) are now much easier to manage, and our CI/CD processes are significantly improved.
If you prefer not to migrate to the new v6.x.x format, you can continue using the older versions. However, please note that continuing changes and bug fixes will not be back-ported to the older versions.
To avoid migrating, stay with these versions:
- TrueBlocks Core: Use version
v5.9.3 - TrueBlocks SDK: Use
github.com/TrueBlocks/trueblocks-sdk/v5 - TrueBlocks Khedra: Use
github.com/TrueBlocks/trueblocks-khedra/v5
module your-project
go 1.21
require (
github.com/TrueBlocks/trueblocks-core/chifra v5.9.3
github.com/TrueBlocks/trueblocks-sdk/v5 v5.9.3
github.com/TrueBlocks/trueblocks-khedra/v5 v5.9.3
)Important: By choosing not to migrate, you will miss out on:
- New features and improvements
- Security updates
- Bug fixes
- Performance optimizations
- Community support for newer versions