Bessy-1.0.0

Below is a rough plan to hit Eli Kinney-Lang roadmap for Bessy. Items are listed in roughly chronological order, although there will be parallelization. The Bessy-1.0.0 release is focused on stability and usability of existing features. There won’t be a focus on adding new features. Walk before you run kind of thing.

Requirement Status Notes
- Understand deployment and use cases
- Who uses it, what for?
- How to support use cases
done Personas and Use Cases
- Establish development environment for Python / Unity
- How to build, test, change, package, release
- Change management process / tooling to support (ex: PR build)
- Documentation specifically for development team
done Established is a better term, this will always evolve, but we have a way of working now. Unity is a bit weak, but we can address as the team works on using Bessy for various projects/studies.
- Establish deployment plan for Python / Unity
- Developers work from GitHub repo
- Developers publish to repositories
- Technical users install packages from repositories (python and unity)
- Non-technical users can follow instructions to set up Bessy for their use case
done Basic idea is shown here: Using Bessy

Not going to focus on non-technical user installs, 95% of the time they will have their hands held by a technical user.
- Formal release
- Acceptance testing
- Publish packages
done Done for small values of done anyway. Unit tests / acceptance tests will be built up over time.
- Establish python / unity APIs
- Identify the parts of Bessy that are “public” versus “private” (aka internal)
- Technical user documentation for API (generated from code)
done Bessy side is documented - https://kirtonbcilab.github.io/APIdocs-for-bci-essentials-python/bci_essentials.html

Unity side in documented - https://kirtonbcilab.github.io/APIdocs-for-bci-essentials-unity/html/index.html
- Establish tests for APIs
- Start with a smoke test
- Test that APIs do what we expect
- Acceptance tests (may just be the API tests)
- This will be a source of many improvement tasks
stalled We have an automated smoke test, which checks a big portion of Bessy Python. Unit tests on Bessy Unity side exist.

Creating more tests is a big job. It might be better to add tests when the occasion arrises, ex: fixing bugs. That will help the team learn skills like TDD.
- Start code improvement
- Static checks (linting)
- Enforce static typing
- Organization, ex: one class per file
- Coding style
- This will be a source of many refactoring tasks
in progress The dev environment checks are nearly in there, just waiting on static type checks.

Additional cleanup should be done when needing to change the code. We don’t have a lot of idle resources that can be thrown into “clean up” tasks.
- Getting started documentation
- Technical users have “getting started docs” to begin their projects (offline / online)
in progress https://github.com/kirtonBCIlab/bci-essentials-python

https://github.com/kirtonBCIlab/bci-essentials-unity

Specific examples are being worked on, but main docs are there now.