Releases: BerkeleyAutomation/malasakit
Releases · BerkeleyAutomation/malasakit
Stable Release (Feature Phone)
Fixes, Sphinx docs (#205) * Fixed response lifetime being way too short * Added warning * Documentation update * Added updated Makefile and built documentation * Fixed feature phone * Updated docstrings for feature phone qualitative views * Trigger Travis to rebuild (weird MySQL socket failing) * Fixed line too long
Unstable Release
The purpose of this release is to record the state of the project after the first year. Do not use in production.
Malasakit with Feature Phone Integration (Beta)
This release of Malasakit contains the base feature phone and automatic speech recognition (ASR) framework.
Malasakit Stable Release (Patch)
This release contains documentation, bug fixes, and internal improvements added since v1.25
.
Changelog:
- Added some Tagalog translations
- Generated online documentation from docstrings
- Added a page with resources for developers
- Expanded the default bloom icon, changed the color from black to gold, and made icons scale as a function of page width
- Added a suite of client-side tests using Selenium
- Various bug fixes and internal improvements
- Data export for many selected rows
- Optimizations for statistics calculations
- Added graceful handling for lack of content (e.g. no comments)
Malasakit Stable Release
This release of Malasakit is stable and production-ready.
Changelog:
- Refactored the user interface (per the PH team's suggestions)
- Completed the suite of unit tests
- Added configuration and statistics pages to the admin panel
- Added autocomplete for location fields
- Adding model validation
Malasakit Beta Pre-release
This release of Malasakit is ready for deployment to the production server for testing purposes.
Changelog:
- Model redesign: The structure of the models has undergone significant changes. In particular, redundant state has been eliminated (i.e., fields one could derive dynamically), models take advantage of abstract inheritance, and the database was made insert-only from the admin panel. In production, MySQL has replaced SQLite to allow for concurrent writes.
- Translation: Translations are now handled using Django's built-in localization library, which allows the application to scale with minimal overhead.
- AJAX and local storage: Responses are stored entirely locally until the participant finishes the survey, allowing the site to run offline and reducing the volume of web traffic between the client and server, which is a bottleneck. Completed responses are pushed to the server using AJAX whenever a connection is available. Similarly, client-side scripts provide infrastructure for storing data from the server client-side using the local storage API and asynchronous requests.
- User interface redesign: The UI is now mobile-aware, supports a wider variety of input types, and, hopefully, is less confusing and arbitrary for participants. However, the UI can be easily extended, so the design decisions that have been made are easily reversible.
- Service workers: This web technology allows code to run independently of any page. Here, we use service workers to cache pages and static assets so that they can be served offline.
- Admin panel: There is now a web interface for browsing and editing model instances.
- Testing, style, and documentation: To support development, every commit pushed is now checked for code style compliance and run against a suite of tests through Travis CI. All nontrivial code now has docstring documentation and conforms to a variant of PEP8.
Caveats:
- The technology that enables offline functionality, service workers, requires HTTPS to work. At this time, the production server does not use HTTPS.
- As of the time of this writing, service workers may not be supported on all browsers. However, Google Chrome is known to be one of the browsers that reliably implements the service worker API on both mobile and desktop systems.
- There is still quite a bit of testing that needs to be done, especially on the client-side and between abstraction layers.