### Replacement for pipenv's environment setup
First of all, there's a new Make recipe for all devs and contributors on both Windows and Posix, `make setupenv`, which is kind of a replacement for `pipenv install --dev`. It creates a virtual environment in `.venv` using the inbuilt `venv` module, clearing out any existing virtual environment if needed first. Then it installs all dev dependencies using our new `dev-requirements.txt` file. `CONTRIBUTING.md` has been updated to reflect all of this.
### Dependency version bumping tool
Secondly, I've added a python script, `tools/bumpdeps.py` to help with bumping dependency versions. It has its own Make recipe too, `make bumpdeps`. This script won't work on Windows (yet). It reads the `tools/primary_deps.ini` file, which contains the primary requirements of Red and its extras with loose version specifiers, and outputs all pinned dependencies, in `setup.cfg` format. It's not a foolproof dependency resolver, it's quite simple, but it's bound to help out a lot. It'll try to give warnings if there might be a version conflict, but updating `setup.cfg` with its output and then doing `pip install -r dev-requirements.txt` will allow pip to issue warnings if something is conflicting.
So to add a new dependency, add it to `tools/primary_deps.ini` in the appropriate place, and either use `make bumpdeps` to completely update all dependencies, or simply add it to `setup.cfg` manually with its sub-dependencies, and all versions pinned.
### Sphinx 2.1.2 (docs changes)
The sphinx update brought along the ability to disable type annotations being rendered in function and method signatures, and I have gladly gone and done that. Type annotations should already be specified under the "Parameters" section, and the way sphinx renders them in function signatures makes them much harder to read.
Also, documented classes will now display what classes they inherit from.
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* [i18n] Use redgettext over pygettext
* Clear out autogenerated `messages.pot` files
* Remove redundant `regen_messages.py` files
* Refactor `generate_strings.py` to use redgettext
* Install redgettext in Travis Crowdin job
* Clean up some problematic usages of gettext function
* Reformat
* Replace generate_strings.py with Makefile argument
* Update to redgettext 2.1, use exclusion pattern
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* [V3] Ignore .idea folder entirely
Since we're not including anything from it currently, so there's no reason not to ignore it.
* Ignore IDEA project files
* Rewritten basic settings
* Ported to V3
* Will saves the dicts
* TriviaSession uses Config
* wait_for is the future
* Out with recursion and redundancy
* Remove typing before first question
* Added payout multiplier setting
* Payout setting uses appropriate check
* Implement actual paying of winner
* Removed trivia lists from repository
* Added payout confirmation message
Also rearranged the order of methods in TriviaSession to better represent the sequential order of running trivia
* Contestant count fixed
Also fixed error when lists folder is missing
* Support for multiple categories per session
* Extra error handling
* Update from rebase
* Use of task cancel
* Nicer docstrings
* Oops
* Better imports
* YAML lists
* Using the trivia list repo (YAY)
* Cast all answers to string since YAML is dumb
* session.stop() is not an async function
* Remove redundant attribute from session
* Sessions manage their own tasks
* Add `redbot/trivia` to .gitignore
* Add PyYAML to requirements.txt
* Parse answers properly before checking
* Add Red-Trivia to reqs
* Better task management and some optimisations
Sessions now just use a flat dict for settings instead of config. This means the settings can't be changed after the session is started, but it removes the need for config to be read for every question.
* Allow lists to override settings
* Fix config logic
* Iteration fixes, config override fixes, task management fixes
* Don't hide dict abuse
* Stats tracking
* Leaderboard implemented
* [leaderboard] ignore self and reverse list
* [leaderboard] Handle empty score counter
* Only count win when max score is reached
* Initial commit
* Beginning of working i18n
* Add some translation files
* Add more strings to translate
* Update and add some more translations
* Update spanish translation
* Update french translation
* Add alias translation templates
* Add bank translations
* Add economy translations
* Add general translations
* Add image translations
* Add core translations