* switch database to postgres
* modify kitsune/dashboards/readouts.py to work with postgres
* modify dashboards/models.py to work with postgres
* modify cache_most_unhelpful_kb_articles.py to work with postgres
* modify wiki/views.py to work with postgres
* modify kpi/api.py to work with postgres
* modify auto_archive_old_questions.py to work with postgres
* ignore email when falsy in FXAAuthBackend.update_user
* fix NotificationsTests.test_solution_notification
* account for postgres ordering of num_visits
* fix question num_votes_past_week when no votes
* fix order_by within the fix_current_revisions command
* improve performance of usernames API
* ensure null values are ordered as expected (1464)
* ensure postgres uses index for helpful votes query (1485)
* ensure announcement query uses timestamp indexes (1492)
* ensure HelpfulVote.created queries use DB index (1492)
* ensure forums.Post.created queries use DB index (1492)
* ensure Question.created queries use DB index (1492)
* ensure QuestionVote.created queries use DB index (1492)
* ensure Question.updated queries use DB index (1492)
* ensure Answer.created/Revision.created queries use DB index (1492)
* limit expensive KPI queries to the last 365 days
* update all non-dev deps except bleach & py-wikimarkup
* remove pip from deps & update version in Dockerfile
* update poetry to the latest version
* replace pytz with built-in code
* remove pytz package
* move to Python 3.11
* update to just-released pip 23.0
* update bleach and py-wikimarkup
* update all dev dependencies
* update to django 4.1.6 (released today)
* remove python as a dependency of itself
this avoids vscode creating various files and folders in our source
directory when using a devcontainer
this also fixes pylance maxing out a cpu core when using a devcontainer
additionally, set vscode itself as the editor when commands (such as
git) are opened from its integrated terminal in a devcontainer
- store synonyms in files
- add reload synonyms option to es7_init
- use non-oss kibana and elasticsearch images to get the reload analyzer api
- add command to create an elastic cloud bundle out of synonym files
- protect specific stop-word containing phrases from tokenization with char mappings
- add docs
https://github.com/mozilla/sumo-project/issues/721https://github.com/mozilla/sumo-project/issues/748
remove typing (now part of stdlib)
re-order venv and pip install commands to ensure consistent pip version across circle and local dev
update pip, pip-tools and pip-compile-multi to latest
If user has low bandwidth, they may get a timeout error while
downloading Python packages from PyPi repository. This happens because
default timeout of pip is set to 60 seconds, which is very less for
large batch process; and it can be changed using "PIP_DEFAULT_TIMEOUT"
environment variable or by passing --default-timeout as an argument to
pip command[1].
[1]: https://pip.pypa.io/en/stable/user_guide/#environment-variables
Docker's "ARG" instruction allows us to pass variable's value at build
time using the `--build-arg <varname>=<value>` flag to `docker
build`[2][3] and `docker-compose build`[4] command. Default value of
"PIP_DEFAULT_TIMEOUT" variable is still set to 60 seconds because bogus
value may increase production built time which we want to fail pretty
fast, if we're not able to fetch something from PyPi. We can set it to 5
mins by running `docker build --build-arg PIP_DEFAULT_TIMEOUT=300` and
`docker-compose build --build-arg PIP_DEFAULT_TIMEOUT=300` for `docker`
and `docker-compose` command respectively.
[2]: https://vsupalov.com/docker-build-time-env-values/
[3]: https://docs.docker.com/engine/reference/builder/#arg
[4]: https://docs.docker.com/compose/reference/build/
Now we can change default timeout value of pip, by pass PIP_TIMEOUT as
an argument[1]. For example, if we want to set timeout value to 5
minutes, run `make build PIP_TIMEOUT=300` or `make build-ci
PIP_TIMEOUT=300` command; default value of PIP_TIMEOUT is 60 which also
the default timeout value of pip, itself.
[5]: https://stackoverflow.com/a/2826178
We only need to use 'PIP_TIMEOUT' variable, where 'base' image is
building because only 'base' image is fetching a lots of Python packages
from PyPi.
And add instruction about, how user can change default timeout value of
pip in the documentation.
Resolves: #4511
* Remove yarn.lock
* Install npm packages that are compatible with Node 12
* Workaround mocha-jsdom incompatibility
* Ensure that mocha tests are still running