changelog¶
0.5.1¶
Move SetupTools metadata into pyproject.toml
Force testing with newer pip and friends
Update warning filters for Python 3.11.0b1 etc
0.5.0¶
Various tox.ini improvements and cleanup
Force UTF-8 mode for testing
Drop unnecessary wheel build dependency
Ignore deprecation warnings for Python 3.11.0a7
Clarify log message about missing data files
Drop support for Python 3.6
Drop warning filter for filelock poll_intervall
Use PBR as a PEP 517 build backend
Update warning filter for pip’s vendored libs
Stop relying on usedevelop in tox
Update warning filter for SetupTools and filelock
Switch back to normal PyYAML releases
Add preliminary support for Python 3.11
Strip specifiers in dependency version strings
Adjust warning exclusions for Python 3.10
Drop redundant license_files package metadata
0.4.1¶
Update the copyright year in the LICENSE file
Fail selftest if anything is written to stderr
Close included files after reading
Close data files after reading
Adjust Telnet echo state on connection replacement
Ignore warnings building PyYAML wheels on 3.10.0b4
Update copyright year in built documentation
Use build instead of setup.py
Update test warnings for Python 3.10.0b2
Update test warnings for Python 3.9.5 and 3.10.0b1
Alphabetize entries in command data file
0.4.0¶
Be more robust with elapsed time counter
Retry client connections in selftest
Don’t wait during selftest process cleanup
Don’t leave dangling file descriptor in selftest
Make dist checking directory-agnostic
Get more granular with Python warnings in tests
Use consistent spacing in tox variables and lists
Stop setting a default install command for tox
Don’t check spelling in data directory
Lint autogenerated YAML
Use twine’s strict mode
Stop trying to use PYTHONWARNINGS=error for now
Add descriptions to tox testenvs
Stop using the tox-venv plugin
Correct package metadata
Bind to loopback interface by default
Use released codespell
Switch the selftest dialogue to a normal dict
Use PosixPath arguments with os.remove()
Always use ModuleNotFoundError
Drop support for Python 3.5
Move debug warning from setup to load
Incorporate pending logs from load during reloads
Reorder loglines fields
0.3.0¶
Recast is_restricted() to a bool
The del and return statements aren’t functions
Support Python 3.10
Don’t fail dist or docs builds on deprecations
Replace show result with debug evaluate command
Run different selftests when debug mode is engaged
Add warnings about debugging mode
Add restricted debug mode
Make selftest dialogue mutable
Skip spellcheck on logfiles
Add is_restricted boolean check for commands
Add is_admin method to Element and User classes
Streamline can_run access control method
0.2.1¶
Check for warnings in the to dist env
Explicitly close files opened by selftest
Handle early wrapping in test_show_result
Drop redundant master_doc setting from Sphinx conf
Switch tox to use allowlist_externals
Start checking codebase with the codespell tool
0.2.0¶
Revert “No longer run setup.py in docs builds”
Ratchet down Python warnings in tox
No longer run setup.py in docs builds
Set python_requires
Correct package metadata
Report if service does not start under selftest
Prefer importlib over pkg_resources
Record the reported rows from NAWS negotiation
Obtain terminal type (RFC 1091)
Overhaul coder guide, add commands and misc
Start the install guide
Add the beginnings of an admin guide
Collapse redundant exceptions
Indicate support for Python 3.9
Link the ChangeLog from package metadata
Drop section numbering from documentation builds
0.1.1¶
Make sure all command functions return True
0.1.0¶
Increase timer resolution in test config
Use call_hook_function() in handler_active()
Preserve loglines on reload
Set bandit to error on risks of any severity
Whitelist uses of stdlib random module for bandit
Clean up function names in menu definitions
Ratchet bandit checking down to medium severity
Replace eval() and exec() use for menu functions
Relocate main_utility menu functions
Relocate delete_avatar menu functions
Relocate delete_account menu function
Relocate choose_name menu functions
Relocate choose_gender menu function
Relocate checking_new_account_name menu functions
Relocate activate_avatar menu functions
Add a mudpy.menu module to hold menu functions
Move selected menu item into the User object
Rename state variable in get_menu_choices()
Remove exec() from handle_user_input() function
Eliminate exec() in Universe.new()
More thoroughly test account and avatar menus
Properly escape punctuation in test patterns
Tighten up eval() scope in show result subcommand
Replace uses of exec() in module loader
Use generic authors for copyright shown in docs
Update copyright for files edited in 2019
Satisfy yamllint checking of .yamllint
0.0.2¶
Log User object ID even when account is an admin
Log starting directory during initialization
Separate listening port in startup logging
Disable usedevelop for some tox testenvs
Correct reference to main config in walk-through
0.0.1¶
Add info on what’s missing and included
Add a demo walk-through to the coder guide
Recommend the tox-venv plug-in
Link API documentation in the coder guide
Drop Python 3.4 and add 3.8
Update minimum PBR for setup_requires
Improve preferences display
Support abbreviating portal names when moving
Provide normal error if command raises exception
Safely log when a command error cannot be sent
Correct data type for see_also command facets
Show possible abbreviations in help list
Correct logged error for missing action function
Make command actions implicit
Dereference command action functions
Test the show result command
Correct a TypeError in the show time command
Always pass parameters in commands
Don’t allow abbreviating administrative commands
Show full command name in help output
Implicitly support abbreviating commands
Allow including time in the active state prompt
Escape replacement macros in preferences
Test that macros are escaped in communication
Use the active state prompt as the default prompt
Add a prompt generator method
Fix selftest telopt callback for Python 3.4
Use ISO 8601 time in logs
Test for high-severity vulnerabilities with bandit
Test with the bugbear plugin for flake8
Fix comparisons for pyflakes 2.1
Safely log unknown Telnet options and commands
Be explicit about test requirements in tox.ini
Switch to passlib.PasswordHash.hash
Add support for user preferences
Add 2019 to copyright for docs and license
Rename command.set to command.c_set
Support using tox-venv for testing
Rename debug testenv to demo and use sample config
Use yamllint –strict when called from tox
Move commands into a separate command module
Update admin command help for new data model
Alphabetize the `help show` subcommand entries
Don’t LBYL when creating missing data directories
Try to make missing pidfile and logfile parent dir
Update copyright dates for files changed in 2018
Add navigation links to Sphinx config
Reorganize Sphinx config
Clarify Python version support in README
Generalize copyright headers in files
Add AUTHORS file to wheel
Remove docutils dep in tox dist testenv
Switch to `twine check` in tox testenv:dist
Add debug logging for Telnet protocol negotiation
Expand logging for User class methods
Support clients using CR+NUL to signal EOL
Add a “debug” testenv
Streamline selftest output
Clean up leading space typo in test title
Drop Python 3.3 support
Add signed artifact URL to Python package metadata
Clean up tox.ini
Apply correct Python version in tox base envs
Test the default example config
Add py3 to the default tox env list
Run the selftest in base tox testenvs
Optionally manage a daemon during selftest runs
Resolve included files only once
Fix deprecated regex pattern syntax in selftests
Clean up at the end of every selftest run
Overhaul data reloading
Include “docs” in default tox envs list
Check readme suitability for PyPI
Rename “initial” state to “telopt_negotiation”
Test that ANSI input is filtered
Only wrap on actual spaces
Filter non-ASCII input when not in binary mode
Retool word wrapping
Include show version in help
Clean dist directory in tox dist environment
Add version command and diagnostic logging
Provide a dist environment for tox
Indicate Python3.7 support
Note platform in package metadata
Add keywords to Python package metadata
Include license info in Python packages
Update URLs in package metadata
Correct metadata entry for README
Clean build directory in tox docs environment
Update copyright year in LICENSE
Add copyright to api.rst
Add copyright to .yamllint
Add a docs tox env
Track doc building dependencies
Add Sphinx configuration
Include a documentation index
Include license text in documentation
Include generated changelog in docs
Basic API documentation
Include the mudpy logo
Add client configuration notes
Document the data model
Add configuration guide
Update coder guide for new site redirects
Standardize formatting for the coder guide
Switch to extensionless README and LICENSE files
Reformat README.rst
Test that unknown telnet commands are filtered
Fix TypeError with IAC escaping
Trim readme file
Update login and banner art
Test sample data style with yamllint
Indent block sequences in emitted files
Convert mappings and sequences from flow to block
Disconnect user on ConnectionResetError
Be careful about marking facets modified
Use “group” instead of “category”
Drop old-style Element support
Convert sample data to new style
Use new style for menu definitions
Convert command Elements to new-style
Switch archetypes to new-style Elements
Switch internal counters to new-style Element
Switch actors to new-style elements
Handle connection reset in selftest
Make new-style facet deletion more robust
Catch Exception when necessary
Clearer selftest errors on disconnection
Use new-style elements for accounts
Fix unhandled exception in show file command
Display flags in show files output
Clean up a stray comment in find_file
Add descriptions to sample datafiles
Move sample datafile copyrights into metadata
Data nodes starting with “_” are metadata
Interpret a “.” prefix as the startdir
Overhaul data management to get rid of __control__
Error if set command is used on read-only element
Refuse to alter read-only elements at runtime
Track whether loading is underway
Test the set command
Use writeable element in show element test
Update copyright dates for files changed this year
Rename internal:storage to .mudpy.filing
Stop unnecessarily stripping quote marks
Explicitly configure the root_path in examples
Log missing file inclusions as more severe
Fix file pathing in daemon mode
Rename internal:time to .mudpy.timing
Switch example listening port from 6669 to 4000
Fix facets method to give new-style relative names
Use importlib in place of imp
Reduce the log message priority for reload calls
Exercise the reload command in tests
Switch quoting styles to reduce escaped quotes
Use raw strings when escape sequences are needed
Correct name of the custom loglevel test
Handle ValueError when setting incorrect type
Coerce loglevel facet to int when updating
Clear vestigial ord() calls in telopt negotiation
Stop using vary_rounds with passlib
Guard against KeyError on universe.contents index
Enable initial admin account in example config
Ignore unpacked *.egg directories
Modernize coder documentation
Add a generic tox env for sdist generation et al
Add a suitable test config for the daemon
Package the self-test script as an entrypoint
Correct filesystem permissions on daemon module
Make the self-test script importable
Add missing copyright/license notices
Support running flake8 under tox
Package the daemon executable as an entrypoint
Make the executable importable
Create a Python package
Appease style checks
Clean up trailing whitespace in documentation
Move documentation files for packaging preparation
Move lib/mudpy to mudpy for packaging preparation
Rename internal:process to .mudpy.process
Rename internal:network to .mudpy.network
Rename internal:directions to .mudpy.movement.*
Rename internal:logging: to .mudpy.log
Update README for recent development
Rename internal:limits element to .mudpy.limit
Strip extra separators in show element command
Fix 8-bit Telnet with Py3K
Rename internal:language: to .mudpy.linguistic
Implement new style element support
Test the show element command
Simplify multiline matching in functional tests
Fix show element command for Py3K
Make escape_macros no-op on nontext values
Check that functional tests log no errors
Test that the show log command works
Fix show log command for Py3K
Fix recursive BrokenPipeException on disconnect
Switch basic data loader unit from element to node
Explicitly invoke Python 3.x in shebang lines
Test admin account restrictions
More thorough match on chat mode test
Test actor movement
Mention test session capture log file names
Add timing data to test output
Test chat mode
Add troubleshooting note to test failure output
Break outer loop of functional tests on failure
Be more explicit with periods in test matches
Modularize functional testing
Test sentence capitalization
Test typo replacements
Test implicit punctuation
Read pending bytes before proceeding with test
Fix punctuation match order and add tests
Test interaction between multiple connections
Lay groundwork for more thorough functional tests
Switch to yaml.safe_load for better security
Be more strict about file permission masks
Accumulate logs if necessary while loading data
Remove stray non-generic references in sample data
Switch password handler to passlib’s PBKDF2
Write files directly from yaml.dump
Remove UTF-8 encoding header from Python files
Fix type mismatches in save file rotation
Correct avatar inheritance
Log missing avatars
Accumulate logs during setup
Add a .gitignore file
Finalize INI to YAML conversion
Remove the git2gch utility
Clean up parenthetical spacing in bin/mudpy
Mark unused import false positives
Convert sample data directory index to YAML
Support data directory indices in YAML
Convert sample prop data file to YAML
File read-only check supports YAML
Convert sample area data file to YAML
Don’t unnecessarily recast lists and dicts
Initialize data file contents on creation
Convert menu data file to YAML
Catch exceptions in YAML menus
Convert command data file to YAML
Convert archetype data file to YAML
Begin the transition from INI to YAML
Correct stray use of location
Clean up rendering in coder documentation
Use area instead of location or room
Simplify coder documentation
Make exception logging failures more robust
Be explicit when show result raises an exception
Tighten exceptions for new sockets and reads
Fix log spamming on premature socket disconnect
Stop trying to rename the daemon process
Wrap long lines without using backslashes
Clean up docstrings
Fix reload to use a copy of datafile keys
Remove unused event code
Correct copyright date for changelog
Drop support for Python 2.x
Clean up imports
Fix an incorrect TODO comment line
Recast to unicode when normalizing on Python 2.x
Byte type comparisons on the output queue
Import a correct configparser for the interpreter
Correct byte types and encoding in test script
Use chr instead of unichr
Use bytes in process table manipulation
Use byte type for passwords hash encoding
Handle byte type on sockets
Use new 0o notation for octal constants
The reload function is in the imp module
Use int type instead of long
Correct copyright years for change log
Recast filters when comparing
Work around lack of dict_keys index in catch-all
Work around lack of dict_keys index in data loader
Use range instead of xrange
Use absolute imports in telnet service module
Use absolute imports in catch-all module
Use absolute imports in data handler module
Use absolute imports in package init module
Use strings not unicode in telnet service module
Use strings not unicode in password module
Use strings not unicode in catch-all module
Use strings not unicode in data handler module
Use strings not unicode in package init module
Use strings not unicode in functional test script
Use strings not unicode in daemon executable
Use strings not unicode in changelog generator
Additional style cleanup
PEP 8 conformance for package init library
PEP 8 conformance for monolithic library
PEP 8 conformance for password management library
PEP 8 conformance for telnet server library
PEP 8 conformance for data handling library
PEP 8 conformance for daemon executable script
PEP 8 conformance for ChangeLog writer script
PEP 8 conformance for test script
Back end data storage separation
Inline literals are more readable in source form
ASCII Scrub
Correcting docstring format
Correcting minor docstring typos
Secure, extensible, forward-compatable passwords
Reformatted README for 72 columns
Change README for new on-line documentation link
New coder guide document
Script to generate ChangeLog file from commit log
Regression testing script
Cosmetic adjustment to disconnect message
Proper RFC 1143 Telnet option negotiation queue
Clarification in README file
New top-level README file
Reformat license
Annual copyright update
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive
Imported from archive