Milestone planning

(see Github milestones)

Id depends on title description deliverable
[_] NOD001 Daedalus IPC complete Inter process communication, Daedalus uses this to perform initial configuration agreements between wallet and also for clean shutdowns (node or wallet). Wallet team needs this in order to communicate with Daedalus - full Daedalus integration IPC implementation and documentation
[_] E1.1 IPC implementation IPC implementation
[_] T1.1.1 Requirements for integration from Wallet BE team; from existing solution requirements
[_] T1.1.2 T1.1.1 Support for integration to Wallet BE team integration complete
[x] E1.2 T1.1.2 QuickCheck state machine tests Tests for IPC
[x] T1.2.1 QuickCheck state machine tests needs state machine tests
[x] E1.3 T1.2.1 Documentation Documentation
[x] T1.3.1 Documentation
Id depends on title description deliverable
[x] NOD002 Configuration complete for batch mode block validation Prove that the cofiguration system is valid for the needs. This is a design (configuration subsystem in node shell) validation point. (25/03 - Dev is in progress). Could be demoed if compelte. Valid configuration for batch mode block validation
[x] T2.1.1 Assist ledger team with integration (#46) dependency: cardano-ledger cardano-ledger integrated with cardano-shell
Id depends on title description deliverable
[_] NOD003 Node shell as a library "Design validation for features, configuration and is used for wallet and node
(useable for more than one applications) " Node shell as library
[_] T3.1.1 requirements gathering: wallet BE, ledger team if they pop up requirements
[_] T3.1.2 T3.1.1 QuickCheck state machine tests needs state machine tests Test for shell
[_] T3.1.3 T3.1.1 Redesign modules, define API only expose functions, types in API cardano-shell as a library
[x] T3.1.4 T3.1.3 Documentation Documentation for the shell
Id depends on title description deliverable
[_] NOD004 NOD003 Miminal integration with wallet BE - Wallet BE team & Node Shell No Daedalus IPC, minimal logging output, partial configuration is complete, completed features framework wallet BE integrated with shell
[_] E4.1 Assist with integration dependency: cardano-wallet cardano-wallet integrated with shell
[_] T4.1.1 Assist with integration (#78) dependency: cardano-wallet
Id depends on title description deliverable
[_] NOD005 NOD002, NOD003 Minimal integration with Node - Ledger, Consensus & Node Shell No Daedalus IPC, minimal logging output, partial configuration is complete, completed features framework Ledger, consensus integrated with node shell
[_] E5.1 Assist with integration
[x] T5.1.1 Assist with integration dependency: cardano-ledger
[_] T5.1.2 Assist with integration dependency: consensus
[_] T5.1.3 Assist with integration dependency: network
Id depends on title description deliverable
[_] NOD006 NOD004 Maximum integration with wallet BE - Wallet BE team & Node Shell Minimal + full configuration, full logging coverage for components Working Wallet backend that is being run by Node Shell
[_] E6.1 Requirements
[_] T6.1.1 Requirements The specification what the wallet team needs
[_] E6.2 T6.1.1 Integration Working wallet backend that is being run by Node Shell
[_] T6.2.1 Integrating required configuration Configuration that the Wallet BE needs
[_] T6.2.2 Integrating required launcher functionality Launcher options that the Wallet BE needs
[_] E6.3 T6.2.2 QA Testing Tested working wallet with backend
[_] T6.3.1 Testing configuration Correect configuration that the Wallet BE needs
[_] T6.3.2 Testing launcher functionality Correct launcher options that the Wallet BE needs
Id depends on title description deliverable
[_] NOD007 NOD005 Maximum integration with Node - Ledger, Consensus & Node Shell Minimal + full configuration, full logging coverage for components for node Working Ledger that is being run by Node Shell
[_] E7.1 Requirements
[_] T7.1.1 Requirements The specification what the ledger team needs
[_] E7.2 T7.1.1 Integration Working Ledger that is being run by Node Shell
[_] T7.2.1 Integrating required configuration Configuration that the Ledger needs
[_] T7.2.2 Integrating required launcher functionality Launcher options that the Ledger needs
[_] E7.3 E7.2 QA Testing Tested working wallet with ledger
[_] T7.3.1 Testing configuration Correect configuration that the ledger needs
[_] T7.3.2 Testing launcher functionality Correct launcher options that the ledger needs
Id depends on title description deliverable
[_] NOD008 NOD006, NOD007 Integration with 'Update system' - with Daedalus, Wallet BE & Node. Launcher and update mechansim complete Launcher now functions with rest of the 'update system'. Launcher component which is used as part of the 'update system' - cross cutting across all major components Full wallet/node working. Update system that returns and installs updates and fully working Daedalus with Wallet, and Node on the other side.
[_] E8.1 Launcher update system impl. (#50, but this is slightly ill-defined as this was created when I thought that the launcher's main part is the update system. It isn't.) The update system implementation The update system which can update the version of the wallet/node
[_] T8.1.1 Requirements
[_] T8.1.2 Documentation (#57)
[_] E8.2 T8.1.1 QuickCheck state machine tests Tests for update system
[_] T8.2.1 QuickCheck state machine tests needs state machine tests
[_] E8.3 T8.1.1 Initial implementation The initial version of the update system
[_] T8.3.1 Implementation of the update system
[_] E8.4 T8.3.1 Integration launcher, Daedalus Fully working wallet and node
[_] T8.4.1 Integration of Daedalus and launcher
[_] E8.5 T8.3.1 Integration launcher, wallet BE Fully working wallet and node
[_] T8.5.1 Integration of Wallet BE and launcher
Id depends on title description deliverable
[_] NOD009 NOD008, NOD003, NOD001 Formal methods, model verification (TLA+) this milestone is not on the "critical path"; can be done after a release
[_] E9.1 Installation, get familiar
[_] T9.1.1 setup TLA+ locally, get familiar TLA+ installation
[_] E9.2 E9.1 TLA+ model of shell TLA+ model of node-shell
[_] T9.2.1 find example, adapt to our needs template/example
[_] T9.2.2 TLA+ model of shell TLA+ model for shell
[_] E9.3 E9.1 TLA+ model of IPC TLA+ model for IPC
[_] T9.3.1 find example, adapt to our needs template/example
[_] T9.3.2 complete IPC model TLA+ model
[_] E9.4 E9.1 TLA+ model of launcher update system TLA+ model of update system
[_] T9.4.1 find example, adapt to our needs template/example
[_] T9.4.2 complete launcher update system model TLA+ model