diff --git a/.github/ISSUE_TEMPLATE/bug-report-develop.md b/.github/ISSUE_TEMPLATE/bug-report-develop.md index 6bb020edbb..835632ce15 100644 --- a/.github/ISSUE_TEMPLATE/bug-report-develop.md +++ b/.github/ISSUE_TEMPLATE/bug-report-develop.md @@ -8,7 +8,7 @@ assignees: '' --- #### Describe the bug -(This is for bugs in the develop-branch only. Make sure you test with the latest version.) + #### To Reproduce Steps to reproduce the behavior: @@ -18,10 +18,10 @@ Steps to reproduce the behavior: 4. See error #### Expected behavior -(Replace with a clear and concise description of what you expected to happen.) +) #### Develop-branch commit -(The commit-hash. If unsure, run `evennia -v` or get the first few lines of the `about` command in-game.) + #### Additional context -(Replace with any other context about the problem, or ideas on how to solve.) + diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index e7d0990a31..1880cc899f 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -8,20 +8,20 @@ assignees: '' --- #### Describe the bug -(Replace with a clear and concise description of what the bug is.) + #### To Reproduce Steps to reproduce the behavior: -1. +1. 2. 3. 4. See error #### Expected behavior -(Replace with a clear and concise description of what you expected to happen.) + #### Environment, Evennia version, OS etc -(Replace with info. If unsure, run `evennia -v` or get the first few lines of the `about` command in-game.) + #### Additional context -(Replace with 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 index f72656ca20..753da92f2e 100644 --- a/.github/ISSUE_TEMPLATE/documentation-issue.md +++ b/.github/ISSUE_TEMPLATE/documentation-issue.md @@ -8,10 +8,10 @@ assignees: '' --- #### Existing page / new -(Link to existing documentation page or proposed name of new page) + #### Documentation issue -(Replace with the description of what the issue is or motivate a changes/additions) + #### Suggested change -(Enter the suggested change here) + diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md index 7dc702cfad..b71a43c736 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -8,13 +8,13 @@ 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/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index 3376737a62..43bd78036c 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -107,7 +107,6 @@ jobs: pip install psycopg2-binary==2.8.6 # fix issue for Django 2.2 pip install mysqlclient pip install coveralls - pip install codacy-coverage pip install tblib pip install -e . @@ -122,6 +121,8 @@ jobs: evennia migrate evennia collectstatic --noinput + # OBS - it's important to not run the coverage tests with --parallel, it messes up the coverage + # calculation! - name: Run test suite with coverage if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == '3.10' working-directory: testing_mygame @@ -131,12 +132,13 @@ jobs: --omit=*/migrations/*,*/urls.py,*/test*.py,*.sh,*.txt,*.md,*.pyc,*.service \ ../bin/unix/evennia test \ --settings=settings \ - --keepdb \ - --parallel 4 \ --timing \ evennia coverage xml + coverage --version + coverage report | grep TOTAL + # For other runs, run tests in parallel - name: Run test suite if: matrix.TESTING_DB != 'sqlite3' || matrix.python-version != '3.10' working-directory: testing_mygame @@ -148,7 +150,7 @@ jobs: --timing \ evennia - # we only want to run coverall/codacy once, so we only do it for one of the matrix combinations + # we only want to run coverall once, so we only do it for one of the matrix combinations # it's also not critical if pushing to either service fails (happens for PRs since env is not # available outside of the evennia org) - name: Send data to Coveralls @@ -160,27 +162,19 @@ jobs: cd testing_mygame coveralls - - name: Send data to Codacy - if: ${{ matrix.TESTING_DB == 'sqlite3' && matrix.python-version == '3.10' }} - continue-on-error: true - uses: codacy/codacy-coverage-reporter-action@master - with: - project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} - coverage-reports: ./testing_mygame/coverage.xml - # docker setup and push - name: Set up QEMU if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == '3.10' - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == '3.10' - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == '3.10' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop') - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -188,7 +182,7 @@ jobs: name: Build and push for master if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == '3.9' && github.ref == 'refs/heads/master' id: docker_build_master - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: push: true tags: evennia/evennia:latest @@ -196,7 +190,7 @@ jobs: name: Build and push for develop if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == '3.10' && github.ref == 'refs/heads/develop' id: docker_build_develop - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: push: true tags: evennia/evennia:develop diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e27e93ed5..bc4144d0b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -205,6 +205,8 @@ Up requirements to Django 4.0+, Twisted 22+, Python 3.9 or 3.10 - Make setting `MAX_NR_CHARACTERS` interact better with the new settings above. - Allow `$search` funcparser func to search tags and to accept kwargs for more powerful searches passed into the regular search functions. +- `spawner.spawn` and linked methods now has a kwarg `protfunc_raise_errors` + (default True) to disable strict errors on malformed/not-found protfuncs ## Evennia 0.9.5 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 299ad5d241..ef731d5e22 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -2,11 +2,17 @@ ## Our Pledge -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of +experience, nationality, personal appearance, race, religion, or sexual identity +and orientation. ## Our Standards -Examples of behavior that contributes to creating a positive environment include: +Examples of behavior that contributes to creating a positive environment +include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences @@ -16,31 +22,54 @@ Examples of behavior that contributes to creating a positive environment include Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or advances +* The use of sexualized language or imagery and unwelcome sexual attention or + advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting ## Our Responsibilities -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, +offensive, or harmful. ## Scope -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. ## Enforcement -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting griatch AT gmail DOT com or Griatch in the #evennia channel on irc.freenode.net. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting griatch AT gmail DOT com or Griatch in the #evennia +channel on irc.freenode.net. The project team will review and investigate all +complaints, and will respond in a way that it deems appropriate to the +circumstances. The project team is obligated to maintain confidentiality with +regard to the reporter of an incident. Further details of specific enforcement +policies may be posted separately. -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. ## Attribution -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.4, available at [http://contributor-covenant.org/version/1/4][version] [homepage]: http://contributor-covenant.org [version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 192d9c8ca0..5f0d5bfdb7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,17 @@ # Contributing to Evennia -Evennia utilizes GitHub for issue tracking and contributions: +There are many ways you can contribute to Evennia development: - - Reporting Issues issues/bugs and making feature requests can be done [in the issue tracker](https://github.com/evennia/evennia/issues). - - Evennia's documentation is a [wiki](https://github.com/evennia/evennia/wiki) that everyone can contribute to. Further - instructions and details about contributing are found [here](https://github.com/evennia/evennia/wiki/Contributing). + - You can help a lot by being active in the community. You can spread + the word - by writing, talking, blogging etc about Evennia. Let + others know text-based gaming is still a thing! + - You can help by reporting any issues/bugs you find, and tell us of your + feature requests [as an issue on github][issues]. This is also where you + report typos or errors in the [the Evennia documentation][docs]. + - To help fixing (or expand) our docs, check out [how to contribute to docs][contribute-docs]. + - To contribute to Evennia itself, check out how to [help with code][helping-code]. + +[issues]: https://github.com/evennia/evennia/issues/new/choose +[docs]: https://www.evennia.com/docs/1.0-dev/index.html +[contribute-docs]: https://www.evennia.com/docs/1.0-dev/Contributing-Docs.html +[helping-code]: https://www.evennia.com/docs/1.0-dev/Contributing.html#helping-with-code diff --git a/INSTALL.md b/INSTALL.md index 926785ee5f..2516eaae96 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,5 +1,6 @@ # Evennia installation -You can find the latest updated installation instructions and -requirements [here](https://github.com/evennia/evennia/wiki/Getting-Started). +You can find the latest updated installation instructions and +requirements +[here](https://www.evennia.com/docs/1.0-dev/Setup/Installation.html) diff --git a/docs/source/Coding/Changelog.md b/docs/source/Coding/Changelog.md index 5b5f2c62b9..2e27e93ed5 100644 --- a/docs/source/Coding/Changelog.md +++ b/docs/source/Coding/Changelog.md @@ -203,6 +203,8 @@ Up requirements to Django 4.0+, Twisted 22+, Python 3.9 or 3.10 - Add new setting `MAX_NR_SIMULTANEUS_PUPPETS` - how many puppets the account can run at the same time. Used to limit multi-playing. - Make setting `MAX_NR_CHARACTERS` interact better with the new settings above. +- Allow `$search` funcparser func to search tags and to accept kwargs for more + powerful searches passed into the regular search functions. ## Evennia 0.9.5 diff --git a/docs/source/Components/Scripts.md b/docs/source/Components/Scripts.md index a351dca368..283ecbe80e 100644 --- a/docs/source/Components/Scripts.md +++ b/docs/source/Components/Scripts.md @@ -377,7 +377,7 @@ Here's how to tell Evennia to manage the script in settings: GLOBAL_SCRIPTS = { "my_script": { - "typeclass": "scripts.Weather", + "typeclass": "typeclasses.scripts.Weather", "repeats": -1, "interval": 50, "desc": "Weather script" diff --git a/docs/source/Concepts/Internationalization.md b/docs/source/Concepts/Internationalization.md index feb1ec4867..68d6f6a55d 100644 --- a/docs/source/Concepts/Internationalization.md +++ b/docs/source/Concepts/Internationalization.md @@ -19,7 +19,7 @@ updated after Sept 2022 will be missing some translations. +---------------+----------------------+--------------+ | fr | French | Mar 2022 | +---------------+----------------------+--------------+ -| it | Italian | Feb 2015 | +| it | Italian | Oct 2022 | +---------------+----------------------+--------------+ | ko | Korean (simplified) | Sep 2019 | +---------------+----------------------+--------------+ diff --git a/docs/source/Contribs/Contrib-Custom-Gametime.md b/docs/source/Contribs/Contrib-Custom-Gametime.md index 309ea9370b..3314b4b9e1 100644 --- a/docs/source/Contribs/Contrib-Custom-Gametime.md +++ b/docs/source/Contribs/Contrib-Custom-Gametime.md @@ -1,4 +1,4 @@ -# Custom gameime +# Custom gametime Contrib by vlgeoff, 2017 - based on Griatch's core original diff --git a/docs/source/Contribs/Contrib-Evadventure.md b/docs/source/Contribs/Contrib-Evadventure.md index edadac1c39..8e17091baa 100644 --- a/docs/source/Contribs/Contrib-Evadventure.md +++ b/docs/source/Contribs/Contrib-Evadventure.md @@ -2,6 +2,13 @@ Contrib by Griatch 2022 + +```{warning} +NOTE - this tutorial is WIP and NOT complete! It was put on hold to focus on +releasing Evennia 1.0. You will still learn things from it, but don't expect +perfection. +``` + A complete example MUD using Evennia. This is the final result of what is implemented if you follow the Getting-Started tutorial. It's recommended that you follow the tutorial step by step and write your own code. But if diff --git a/docs/source/Contribs/Contrib-Git-Integration.md b/docs/source/Contribs/Contrib-Git-Integration.md new file mode 100644 index 0000000000..eb679df31f --- /dev/null +++ b/docs/source/Contribs/Contrib-Git-Integration.md @@ -0,0 +1,73 @@ +# In-game Git Integration + +Contribution by helpme (2022) + +A module to integrate a stripped-down version of git within the game, allowing developers to view their git status, change branches, and pull updated code of both their local mygame repo and Evennia core. After a successful pull or checkout, the git command will reload the game: Manual restarts may be required to to apply certain changes that would impact persistent scripts etc. + +Once the contrib is set up, integrating remote changes is as simple as entering the following into your game: + +``` +git pull +``` + +The repositories you want to work with, be it only your local mygame repo, only Evennia core, or both, must be git directories for the command to function. If you are only interested in using this to get upstream Evennia changes, only the Evennia repository needs to be a git repository. [Get started with version control here.](https://www.evennia.com/docs/1.0-dev/Coding/Version-Control.html) + +## Dependencies + +This package requires the dependency "gitpython", a python library used to interact with git repositories. To install, it's easiest to install Evennia's extra requirements: + +- Activate your `virtualenv` +- `cd` to the root of the Evennia repository. There should be an `requirements_extra.txt` file here. +- `pip install -r requirements_extra.txt` + +## Installation + +This utility adds a simple assortment of 'git' commands. Import the module into your commands and add it to your command set to make it available. + +Specifically, in `mygame/commands/default_cmdsets.py`: + +```python +... +from evennia.contrib.utils.git_integration import GitCmdSet # <--- + +class CharacterCmdset(default_cmds.Character_CmdSet): + ... + def at_cmdset_creation(self): + ... + self.add(GitCmdSet) # <--- + +``` + +Then `reload` to make the git command available. + +## Usage + +This utility will only work if the directory you wish to work with is a git directory. If they are not, you will be prompted to initiate your directory as a git repository using the following commands in your terminal: + +``` +git init +git remote add origin 'link to your repository' +``` + +By default, the git commands are only available to those with Developer permissions and higher. You can change this by overriding the command and setting its locks from "cmd:pperm(Developer)" to the lock of your choice. + +The supported commands are: +* git status: An overview of your git repository, which files have been changed locally, and the commit you're on. +* git branch: What branches are available for you to check out. +* git checkout 'branch': Checkout a branch. +* git pull: Pull the latest code from your current branch. + +* All of these commands are also available with 'evennia', to serve the same functionality related to your Evennia directory. So: +* git evennia status +* git evennia branch +* git evennia checkout 'branch' +* git evennia pull: Pull the latest Evennia code. + +## Settings Used + +The utility uses the existing GAME_DIR and EVENNIA_DIR settings from settings.py. You should not need to alter these if you have a standard directory setup, they ought to exist without any setup required from you. + +---- + +This document page is generated from `evennia/contrib/utils/git_integration/README.md`. Changes to this +file will be overwritten, so edit that file rather than this one. diff --git a/docs/source/Contribs/Contrib-XYZGrid.md b/docs/source/Contribs/Contrib-XYZGrid.md index ab87a7fdaf..879b146336 100644 --- a/docs/source/Contribs/Contrib-XYZGrid.md +++ b/docs/source/Contribs/Contrib-XYZGrid.md @@ -53,28 +53,31 @@ Exits: northeast and east (then go back to your mygame/ folder) This will install all optional requirements of Evennia. -2. Import and add the `evennia.contrib.commands.XYZGridCmdSet` to the +2. Import and [add] the `evennia.contrib.grid.xyzgrid.commands.XYZGridCmdSet` to the `CharacterCmdset` cmdset in `mygame/commands.default_cmds.py`. Reload the server. This makes the `map`, `goto/path` and the modified `teleport` and `open` commands available in-game. + +[add]: ../Components/Command-Sets + 3. Edit `mygame/server/conf/settings.py` and add - EXTRA_LAUNCHER_COMMANDS['xyzgrid'] = 'evennia.contrib.launchcmd.xyzcommand' - - and - - PROTOTYPE_MODULES += [’evennia.contrib.grid.xyzgrid.prototypes’] + EXTRA_LAUNCHER_COMMANDS['xyzgrid'] = 'evennia.contrib.grid.xyzgrid.launchcmd.xyzcommand' + PROTOTYPE_MODULES += ['evennia.contrib.grid.xyzgrid.prototypes'] This will add the new ability to enter `evennia xyzgrid