diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 00000000000..580225a96a5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,27 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG] Enter a brief description here" +labels: bug +assignees: '' + +--- + +#### Describe the bug +A clear and concise description of what the bug is. + +#### To Reproduce +Steps to reproduce the behavior: +1. +2. +3. +4. See error + +#### Expected behavior +A clear and concise description of what you expected to happen. + +#### Environment, Evennia version, OS etc +If unsure, run `evennia -v` or get the first few lines of the `about` command in-game. + +#### Additional context +Any other context about the problem, or ideas on how to solve. diff --git a/.github/ISSUE_TEMPLATE/documentation-issue.md b/.github/ISSUE_TEMPLATE/documentation-issue.md new file mode 100644 index 00000000000..bffee8dfb5b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation-issue.md @@ -0,0 +1,14 @@ +--- +name: Documentation issue +about: Documentation problems and suggestions +title: '[Documentation] Enter a brief description here' +labels: documentation +assignees: '' + +--- + +#### Documentation issue +Describe what the issue is and where it can/should be found. + +#### Suggested change +The suggested change. diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 00000000000..7dc702cfad1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[Feature Request] Enter a brief description here" +labels: feature-request +assignees: '' + +--- + +#### Is your feature request related to a problem? Please describe. +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +#### Describe the solution you'd like +A clear and concise description of what you want to happen. + +#### Describe alternatives you've considered +A clear and concise description of any alternative solutions or features you've considered. + +#### Additional context +Add any other context or screenshots about the feature request here. diff --git a/.travis.yml b/.travis.yml index 275b39a119a..34288574ae9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,7 @@ install: - pip install -e . before_script: + - make format - evennia --init testing_mygame - cp .travis/${TESTING_DB}_settings.py testing_mygame/server/conf/settings.py - cd testing_mygame diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f185d9dfa0..a865a4569bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,38 @@ ## Evennia 1.0 (2019-) (WIP) -### Already in master +- new `drop:holds()` lock default to limit dropping nonsensical things. Access check + defaults to True for backwards-compatibility in 0.9, will be False in 1.0 + +### Already in master - `py` command now reroutes stdout to output results in-game client. `py` -without arguments starts a full interactive Python console. +without arguments starts a full interactive Python console. +- Webclient default to a single input pane instead of two. Now defaults to no help-popup. +- Webclient fix of prompt display +- Webclient multimedia support for relaying images, video and sounds via + `.msg(image=URL)`, `.msg(video=URL)` + and `.msg(audio=URL)` +- Add Spanish translation (fermuch) +- Expand `GLOBAL_SCRIPTS` container to always start scripts and to include all + global scripts regardless of how they were created. +- Change settings to always use lists instead of tuples, to make mutable + settings easier to add to. (#1912) +- Make new `CHANNEL_MUDINFO` setting for specifying the mudinfo channel +- Make `CHANNEL_CONNECTINFO` take full channel definition +- Make `DEFAULT_CHANNELS` list auto-create channels missing at reload +- Webclient `ANSI->HTML` parser updated. Webclient line width changed from 1.6em to 1.1em + to better make ANSI graphics look the same as for third-party clients +- `AttributeHandler.get(return_list=True)` will return `[]` if there are no + Attributes instead of `[None]`. +- Remove `pillow` requirement (install especially if using imagefield) +- Add Simplified Korean translation (user aceamro) +- Show warning on `start -l` if settings contains values unsafe for production. +- Make code auto-formatted with Black. +- Make default `set` command able to edit nested structures (PR by Aaron McMillan) +- Allow running Evennia test suite from core repo with `make test`. +- Return `store_key` from `TickerHandler.add` and add `store_key` as a kwarg to + the `TickerHandler.remove` method. This makes it easier to manage tickers. ## Evennia 0.9 (2018-2019) @@ -44,12 +72,12 @@ without arguments starts a full interactive Python console. - Change webclient from old txws version to use more supported/feature-rich Autobahn websocket library -#### Evennia game index +#### Evennia game index - Made Evennia game index client a part of core - now configured from settings file (old configs need to be moved) - The `evennia connections` command starts a wizard that helps you connect your game to the game index. -- The game index now accepts games with no public telnet/webclient info (for early prototypes). +- The game index now accepts games with no public telnet/webclient info (for early prototypes). #### New golden-layout based Webclient UI (@friarzen) - Features @@ -184,9 +212,9 @@ without arguments starts a full interactive Python console. ### Contribs -- Evscaperoom - a full puzzle engine for making multiplayer escape rooms in Evennia. Used to make - the entry for the MUD-Coder's Guild's 2019 Game Jam with the theme "One Room", where it ranked #1. -- Evennia game-index client no longer a contrib - moved into server core and configured with new +- Evscaperoom - a full puzzle engine for making multiplayer escape rooms in Evennia. Used to make + the entry for the MUD-Coder's Guild's 2019 Game Jam with the theme "One Room", where it ranked #1. +- Evennia game-index client no longer a contrib - moved into server core and configured with new setting `GAME_INDEX_ENABLED`. - The `extended_room` contrib saw some backwards-incompatible refactoring: + All commands now begin with `CmdExtendedRoom`. So before it was `CmdExtendedLook`, now diff --git a/Dockerfile b/Dockerfile index 697cd2ef643..b45bae03adf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,15 +13,16 @@ # folder). # # You will end up in a shell where the `evennia` command is available. From here you -# can install and run the game normally. Use Ctrl-D to exit the evennia docker container. +# can initialize and/or run the game normally. Use Ctrl-D to exit the evennia docker container. +# For more info see: https://github.com/evennia/evennia/wiki/Getting-Started#quick-start # # You can also start evennia directly by passing arguments to the folder: # # docker run -it --rm -p 4000:4000 -p 4001:4001 -p 4002:4002 -v $PWD:/usr/src/game evennia/evennia evennia start -l # # This will start Evennia running as the core process of the container. Note that you *must* use -l -# or one of the foreground modes (like evennia ipstart) since otherwise the container will immediately -# die since no foreground process keeps it up. +# or one of the foreground modes (like evennia ipstart), since otherwise the container will immediately +# die because of having no foreground process. # # The evennia/evennia base image is found on DockerHub and can also be used # as a base for creating your own custom containerized Evennia game. For more @@ -65,6 +66,13 @@ WORKDIR /usr/src/game # set bash prompt ENV PS1 "evennia|docker \w $ " +# create and switch to a non-root user for runtime security +# -D - do not set a password +# -H - do not create a home directory +# -s /bin/false - set login shell to /bin/false +RUN adduser -D -H -s /bin/false evennia +USER evennia + # startup a shell when we start the container ENTRYPOINT ["/usr/src/evennia/bin/unix/evennia-docker-start.sh"] diff --git a/Makefile b/Makefile new file mode 100644 index 00000000000..23a578c27e2 --- /dev/null +++ b/Makefile @@ -0,0 +1,38 @@ +# This is used with `make