release-roadmap
% FLOSS Release Roadmap
Reviewed 2021-04-15 by japhb
This doc puts forward a roadmap for major FLOSS releases leading up to an eventual MUGS 1.0 release. Pre-public versions were all early 0.0.x; MUGS was initially announced publicly at 0.0.5. The first public roadmapped release was 0.1.0, the "Proof of Concept" release. Work on 0.2.0 is well under way, and further roadmapped releases will follow when their respective key deliverables are completed.
0.1 Proof of Concept (released 2021-03-21)
There are a great many TODO tasks already identified for MUGS, but a smaller number needed before the initial proof-of-concept FLOSS release. Most of these are just getting things cleaned up enough that people can reasonably try it out and give feedback other than "It's completely broken for me."
This list is COMPLETE!
ā Core functionality
ā Content tags
ā Genre tags
ā Game descriptions
ā Hooks for start-game and stop-game
ā Start or stop game depending on participant count
ā Docs
ā READMEs rewritten (or pointing to a Getting Started doc)
ā Simple contributing instructions written
ā Code style documented in coding-standards doc
ā All TODO docs cleaned up
ā Draft release guide
ā All design docs marked with implementation status (unless complete)
ā All docs marked with latest review date
ā Add Changes files for all repos
ā Games
ā Guessing
ā Snowman supported as default word-guessing game
ā Multi-round Snowman
ā Organizational
ā Create Raku-MUGS GitHub org
ā Create 'mugs'
Freenodegroup and #mugs IRC channel (UPDATE: MOVED TO Libera.Chat !)
ā Packaging
ā File extensions changed to current Raku standards
ā Support for plugging UIs and games
ā Meta files checked and updated
ā MUGS-Core separated from MUGS-Games and MUGS-UI-*'s
ā
cro runsupport restoredā Docker support restored
ā Automate easiest parts of release process
ā Testing
ā All README info tested on fresh install
ā MUGS::Util::* fully tested
ā UIs
ā All games exist in at least 2 UIs
ā CLI and WebSimple UIs approximately equivalent
ā Turn-based games tested with a screen reader
ā in CLI
ā in web browser
ā UX
ā Game selection interfaces show genre tags and description
0.2 Prototype (Current WIP)
The first major release after the Proof of Concept will need to support a much wider set of games and enough functionality to prove the value proposition.
This list is about 60% solid:
Cleanups
git grep 'XXXX\|WIP\|NYI\|TODO'in each repoSimple items addressed
Larger items filed as TODOs
⦠Core functionality
ā DB schema management
ā Track schema version and state in
mugs_schema_statetableā Support schema update in
mugs-adminā Draft of schema bootstrap, repair, and update in storage driver
ā Draft of deconfused identity names
ā All identities in a universe share the same (deconfused) namespace
ā Names folded by spacing, case, marks, and compatibility
ā Names limited to PRECIS-compatible codepoints and 63 characters max
⦠Support for more multiplayer game play
ā
GameEvents andgame-updates pushed to game participantsā Game startup push messages tracked and handled
ā Allow override of game start and stop conditions
⦠Support both PvP and co-op play, and per-participant
winlossstatus
Achievements/Awards/Accomplishments
Game config menus
Teams
Invites
create account
join game
join team
Messaging
"nearby" messaging (e.g. say/shout in map-based games)
team messaging
persona messaging
offline messaging
server notices
⦠Docs
⦠New docs
⦠Game Classes
Life of a Request
Life of a UI
Message Flow diagram
Game class method override diagram(s?)
⦠Release guide tested and tuned
Review pass
⦠Error handling
ā Include client username in server connection debug info
ā Refactor/unify behavior of turn validation, submission, and error handling
⦠Error testing "game"
All bare die converted to X::MUGS::Request::AdHoc or other appropriate X::MUGS
All ad hoc exceptions converted to proper X::MUGS subtypes
Sad paths explored
Client and Server independent of each other's failures
Separate error messages for debug logs and user-visible messages
⦠Games
Action
Arcade2D
Two multi-player 2D arcade games
⦠TurnBased
⦠BoardGame
⦠RectangularBoard
ā MNKGame
ā TicTacToe
⦠Checkerboard
Draughts
EnglishDraughts (AKA American Checkers)
⦠CardGame
⦠Standard52CardDeck
A shedding-type game
Poker of some form
Guessing
FourDigits
Interactive Fiction
At least one basic IF playable
Social
Chat Room
Packaging
Docker packages uploaded to GitHub org
Automate more (all?) of release process
Reliability
Limit max active games
Server load shedding
Client able to forget old requests with no response (or whose game is gone)
Protocol details: protocol version, sequence numbers, security, etc.
Testing
Core roles fully tested
⦠UIs
⦠CLI improvements
ā Show active game list and allow joining games started by other players
ā Simplify
MAINand allow users to specify arbitrary game-typeā Handle expanded server push and game event semantics
⦠Support more Readline-style bindings in input module
⦠Cleanups and refactoring
⦠At least one new UI added
⦠TUI
GTK?
Pop?
Added UI(s) support login and game choice
All games tested on at least one UI working with multiple assistive technologies
⦠UX
⦠List of active games shows which are available to join
0.3 Alpha 1
With the basic value proposition shown in the prototype, the first alpha pivots to tackling internationalization and manageability, along with more depth in each of the major work themes.
This list is about 40% solid:
Cleanups
XXXX review pass
Core functionality
DB management
Improved schema bootstrap, repair, and update
Data migration management
Data backup/restore
Names Unicode confusable-folded
Challenge level
Skill ratings
Skill matching?
Bots
Server-side
Client-side
Gateway
Bot invites
Bot autofill
Docs
Review pass
Error handling
Testability
Fault injection
Latency injection
Games
Arcade
Side-scroller shmup
Side-scroller platformer
BoardGame
Checkerboard
Chess
Goban
Go
MNKGame
Gomoku
CardGame
Klondike Solitaire
Roguelike or CRPG
I18N
Basic multi-language support (LTR-only in this release)
Various testing "translations" such as double-wide
Manageability
Logging much more complete
Monitoring support
Testing
Storage drivers fully tested
UIs
Review AT support for all games
0.4 Alpha 2
The second alpha follows the first with easier onramps for users and developers.
This list is about 20% solid:
Cleanups
XXXX review pass
Docs
Comprehensive Getting Started
Review pass
Games
MUD/MUSH
I18N
Deeper locale support
RTL support, with "180 degree rotated" testing "translation"
Hooks for using a translation service for messages
Manageability
Fleet management
Universe management
Testing
Entire MUGS-Core fully tested
UIs
Review AT support for all games
0.5 Alpha 3
At this point the following is more aspirational and directional than solid:
Cleanups
XXXX review pass
Docs
Review pass
I18N and L10N
Getting Started translated into multiple languages
All UI and error messages translated into multiple languages
Manageability
Schema rollouts
Server rollouts
Testing
Client/Server pairs for each genre fully tested
UIs
Review AT support for all games
0.6 Alpha 4
Cleanups
XXXX review pass
Docs
Review pass
Testing
Client/Server pairs for every game fully tested
UIs
Review AT support for all games
???
IRC gateway?