3.0 KiB
3.0 KiB
Agrarian 2.0 Development Roadmap
This file tracks the 2.0 line before it becomes the main Agrarian codebase.
Current Release Goal
Agrarian 2.0 should be the modern, buildable baseline for the coin:
- Ubuntu daemon builds
- Ubuntu Qt wallet builds
- Windows daemon cross-builds
- Windows Qt wallet cross-builds
- ARM64 daemon builds for server nodes
- clean enough docs and scripts for repeatable fresh-server builds
- stable network behavior with existing Agrarian nodes
Validation Before Promoting 2.0 To Main
- Linux daemon: validated on Ubuntu with
contrib/build-linux.sh. - Linux Qt wallet: validated on Ubuntu with
contrib/build-linux-wallet.sh. - Daemon smoke test: validated with
contrib/smoke-test-daemon.sh. - Wallet smoke test: validated with
contrib/smoke-test-wallet.sh. - Qt smoke test: validated with
contrib/smoke-test-qt.sh. - Windows daemon: validated with the build menu on x86_64 Ubuntu.
- Windows Qt wallet: validated with the build menu on x86_64 Ubuntu.
- Linux ARM64 daemon: validated with the build menu cross-build from x86_64 Ubuntu.
- Linux ARM64 Qt wallet: native ARM64 build only for now; x86_64 menu guard validated.
Build Script Targets
The build menu is the preferred entry point:
./contrib/agrarian-build-menu.sh
Supported targets:
- Linux daemon and CLI tools
- Linux Qt GUI wallet
- Windows daemon and CLI tools
- Windows Qt GUI wallet
- Linux ARM64 daemon and CLI tools
- Linux ARM64 Qt GUI wallet, native ARM64 host only
The script should:
- clone or fast-forward the selected branch
- install Ubuntu packages needed for the selected target
- refuse unsafe root execution unless explicitly overridden for controlled CI/root environments
- stop a running user daemon gracefully before replacing binaries
- refuse to force-close the GUI wallet
- restore a daemon it stopped when the build completes
Dependency Policy
Already modernized in the 2.0 line:
- OpenSSL LTS path
- Boost current modern path
- Qt 6.8 LTS path
- expat
- freetype
- zlib
- libevent
- zeromq
- qrencode
- miniupnpc
- GMP
- protobuf
Berkeley DB stays on 4.8.30 for the 2.0 release to preserve wallet compatibility. Do not jump to BDB 18.x in 2.0. A future wallet database migration should be a planned project, likely toward SQLite, with explicit wallet backup and migration tooling.
Known Follow-Up Work
- Re-run Windows daemon and Windows Qt wallet validation after every dependency change.
- Keep ARM64 Qt wallet as native-only until a reliable cross-Qt path is designed.
- Reduce remaining compiler warning noise where it affects correctness.
- Replace deprecated
std::random_shuffleusage. - Audit old Boost and LevelDB warning areas without changing consensus behavior casually.
- Build a formal release packaging process for Linux and Windows artifacts.
- Add repeatable clean-machine CI once the local build menu is stable.
- Plan the SQLite wallet migration as a post-2.0 milestone.
- Continue wallet UX modernization after the 2.0 build baseline is promoted.