Version Naming Convention
Stable builds: 0.5.#a where # is an even integer.
Beta builds: 0.5.#b where # is an odd integer.
Stable and beta builds are incremented with a letter, indicating minor releases. Typically, stable build increments will increase when bugs are found in stable and the fix is ready for production use. It is encouraged to "Update and Use Stable" as often as is convenient.
Beta builds are all operational builds. This means that the beta update meets the baseline functionality of the most recent stable build and can be used full-time. Beta builds, however, are reserved for changes to the codebase that are substantial or affect a critical functionality. In other words, the new cutting-edge features show up in the beta builds only (until fully tested), and are recommended only for those who a) aren't afraid of a red-colored popup in the web-ui and b) know how to utilize and share mineos.log. Beta channel may be my play sandbox, but it still adheres to my high standards of safe, non-volatile coding.
Note, users often have a wary outlook on beta versions, but often beta will be more hardened, secure, and safe than the stable counterpart. Under all circumstances, however, the higher the version number, the better (e.g., stable 0.5.4a > beta 0.5.3f).
New web-ui and new scripts Majority changes listed here: 0.5.0
First versioned release, now using Knockout.js
- Adding reverse-compatibility code to work with 0.4.x style crontabs
- made values and command syntax case-insensitive
- Corrected 'restore on [on]reboot' bug
- Corrected added rsync commands (added) to ensure mineos.config does not get overwritten on update
- Added 'Archive logs' to web-ui
- Consolidated 'restore' into 'restore table' button (renamed 'increments table)
- Minor tweaks to visible elements when dropdown options not selected
- Properly catches error when attempting to archive_log a server with an absent log
- Added a working 'donate' button to the webui!
- Corrected bug where empty attributes couldn't be clicked via webui.
- Corrected bug where certain profile combinations didn't match UI form
- Removed crontab remnants in server.config regarding defunct c10t
- Removed crontab remnants also for pigmap until implemented
- Rewrote pid-checking code for better efficiency (list_pids + list_server_pids > list_java_pid)
- Added new list_proc functions for uptime, loadavg, and meminfo
- Added System Health page to web-ui for uptime & chart of live-streaming loadavg
Corrected issue where 'live server logs' would continue even if off-page
- Changed sanitization to allow periods and underscores in server names, but may not start with a period
- Corrected issue where 'live server logs' would continue even if off-page
- Added notice on 'modify config' page to let users know they can change values from the page by clicking them.
- Corrected issue where updating channel/switch channel overwrote mineos.config
- Corrected issue where empty values in 0.4.x mineos servers couldn't upgrade
- Created logparser.py, a sql-based parser for the server.log
- Added as new page /admin/logparser.html
- Corrected various instances of hardcoded references to sp and sc not using .env
- Corrected issue where clicking the 'save' button in 'modify config' didn't disappear after saving.
- Modified uptime to be HH:MM:SS
- Cleaned up try/catches for update_file
- Added class SmartRedirectHandler to handle mean webservers
- Reversed order of xmx/xms values and java_tweak to allow java_tweak to take precedence.
- Fitted 0.5.0h fixes
- Corrected issue PermissionsFailure "stat is not defined"
- Created execute_profile functionality
- Corrected issue with shell script updating
- Added pigmap functionality
- Fitted 0.5.0i functionality
- 0.5.1c re-branded 0.5.2; new 0.5.3 will reflect next large script changes
- Link added to server consoles page to reach logparser utility
- Corrected issue where starting multiple servers at boot caused congestion and only one server started (added 1.5sec delay)
- Corrected issue where console-rw tried operating on javapid rather than screenpid
- Cleaned up pigmap code
- Corrected issue where [onreboot] restore wasn't working because live space was empty
- Corrected issue where 'start server on boot' wasn't filling 'true' to server.config
- Added 'execute_profile' to web-ui if profile is a script
- Added more logging, e.g., sanitization
- Corrected issue where ConfigParser was passed upper-case and did not lower() them, as ConfigParser expects
- Sanitization changes
- Corrected typo in 'clean->cleaned' for _sanitize
- Allowing '=+:,' as valid characters for _sanitize
- Relocated all sanitization strings to mc() statics for easier custom.py overwriting and general updating
- Corrected issue where valid server names (incl. "._") were not being detected by list_pids
- Adjusted ping() to not fail with non-standard \xff responses, e.g., spout
- Known issue: mineos can start and stop spout servers, but the motd/online players/max players is not accurate
- spout compatibility will be developed in the beta channel from here on.
- Optimized ping() and updated ping protocol to reduce lost connection spam
- Greatly reduced certain mineos_console.py execution times
- Standarized _sanitize() function
- Created new SANITIZED_CHARS['chat'] for separate chat filtering
- Fixed critical issue with 0.5.2g because bukkit does not use the modern ping protocol and all pings with a running bukkit server failed.
- Additional code route added to accommodate non-standard bukkit protocol
- walked backward on ping() code to 0.5.2f
- Implemented most recent minecraft protocol for ping()
- Added ip_address() and updated ping() to use 'server-ip' from server.properties instead of 127.0.0.1 if specified
- Added new_config() to update mineos.config with new attributes
- adds 'admin' attribute to default '/var/www/hiawatha/admin'
- adds 'script' attribute to default '/usr/games/minecraft'
- update_stable() and update_beta() now reference above mentioned 'admin' and 'script' to allow custom locations.
- Cleaned up some code for hdd health page
- Added Total/free/used mb for root filesystem
- Renamed PermissionsFailure -> PermissionsFailureError
- Wrote more thorough documentation
- Auto-genned python documentation http://minecraft.codeemo.com/pydocs/
- Removed propogate_profiles, list_profiles_to_update
- updated game_macro execute
- Corrected issue where servers which were substrings to longer server names would cause list_server_pid failure:
- screen would find 'mc-one' and 'mc-onetwo' ambigious and fail--screen -S now references screenpid
- Changes to vm_profiles
Corrected issue where mineos_console.py restart didn't work
- Rewrite of scriptin.js
- consolidated logparser.html into main page
- filtered out 127.0.0.1 spam
- system health page opens more quickly
- Updated logparser.py to accept log entries FINE/FINER/FINEST from commandblock
- Added notice to refresh page/clear cache after updating scripts.
- Corrected issue where certain non-unicode chars in motd prevented web-ui server listing
- Corrected issue where restart() didn't function.
- Refitted prune() to allow all valid rdiff-backup strings
- Corrected issue where regex for pruning/restore failed because of string padding.
- Cleaned up PermissionsFailureError code; should now log failed attempts at changing permissions and display in webui
- Updated shebang on mineos, server, and mineos_console for greater portability by using env. shebang now references /usr/bin/env python2.7 since the scripts require 2.7 anyway.
- Added update_versions(), added buttons to web-ui
- Renamed versions buttons to 'CHECK FOR NEWER VERSIONS', 'USE STABLE' and 'USE BETA'
- Adjusted ping() to return -1 players online on socket.error
- Colorized memory usage if in-use memory exceeds allocated memory
- Added 'Reached end of stream' to spam_filter; corrected spam_filter bug where js would not properly iterate an array len > 1
- Corrected bug where web-ui would incorrectly report stalled servers as 'down' and thus not be killable. Now, they are listed as DENY (-1 players) and will respond to kill (but not stop)
- Added '%' character to URL whitelist
- Added new exception path for unicode errors in ping() found by tekkit_lite
- Creates /home/mc/import if doesn't exist (for turnkey release)
- Made constant PROC_PATH/S, which should auto detect proper /proc fs between /proc and /usr/compat/linux/proc
- Added 1.6.1 protocol support
- Fixed import_world which would make many import attempts fail
- Added '^' to the URL sanitization whitelist
- Updated ping() to work with unicode motd's