diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1502d9e29..07f1d5805 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -78,9 +78,9 @@ review_docs: - apt-get install -y graphviz git - pip install poetry - poetry install - - git switch develop - - git switch stable - - git switch $CI_COMMIT_BRANCH + - git switch develop && git pull + - git switch stable && git pull + - git switch $CI_COMMIT_BRANCH && git pull script: - poetry run python -m sphinx . $BUILD_PATH cache: @@ -276,8 +276,8 @@ build_front: tags: - docker -pages: - stage: test +build_documentation: + stage: build image: python:3.10 variables: BUILD_PATH: "../public" @@ -287,9 +287,9 @@ pages: - apt-get install -y graphviz git - pip install poetry - poetry install - - git switch develop - - git switch stable - - git switch $CI_COMMIT_BRANCH + - git switch develop && git pull + - git switch stable && git pull + - git switch $CI_COMMIT_BRANCH && git pull script: - ./build_docs.sh cache: @@ -304,6 +304,24 @@ pages: tags: - docker +deploy_documentation: + stage: deploy + image: alpine + dependencies: + - build_documentation + before_script: + - apk add openssh-client rsync + - mkdir -p ~/.ssh + - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - eval `ssh-agent -s` + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + script: + - rsync -r -e "ssh -p 2282" $CI_PROJECT_DIR/public/ docs@docs.funkwhale.audio:/htdocs/ + only: + - stable + + .docker_publish: stage: deploy image: egon0/docker-with-buildx-and-git:bash diff --git a/CHANGELOG b/CHANGELOG index 5b19d4dbf..9483b5a54 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,52 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog. .. towncrier +1.2.4 (2022-04-23) +------------------ + +Upgrade instructions are available at +https://docs.funkwhale.audio/admin/upgrading.html + +Enhancements: + +- Hand cursor now displayed over artist and album cards + + +Bugfixes: + +- Fixes docs' SMTP URI configuration (#1749) (1749) + + +Documentation: + +- The documentation is now available in two versions: Develop and Stable + +Contributors to our Issues: + +- Beto Dealmeida +- Cam Sweeney +- Ciarán Ainsworth +- Georg Krause +- JuniorJPDJ +- Marcos Peña +- Mathieu Jourdan +- Micha Gläß-Stöcker +- petitminion + +Contributors to our Merge Requests: + +- Georg Krause +- JuniorJPDJ +- Marcos Peña +- petitminion + +Committers: + +- Georg Krause +- Marcos Peña +- MattDHarding + + 1.2.3 (2022-03-18) ------------------ diff --git a/api/config/settings/common.py b/api/config/settings/common.py index 179c01be4..9f2237e68 100644 --- a/api/config/settings/common.py +++ b/api/config/settings/common.py @@ -335,9 +335,9 @@ SMTP configuration for sending e-mails. Possible values: On a production instance, you'll usually want to use an external SMTP server: -- ``EMAIL_CONFIG=smtp://user@:password@youremail.host:25`` -- ``EMAIL_CONFIG=smtp+ssl://user@:password@youremail.host:465`` -- ``EMAIL_CONFIG=smtp+tls://user@:password@youremail.host:587`` +- ``EMAIL_CONFIG=smtp://user:password@youremail.host:25`` +- ``EMAIL_CONFIG=smtp+ssl://user:password@youremail.host:465`` +- ``EMAIL_CONFIG=smtp+tls://user:password@youremail.host:587`` .. note:: diff --git a/api/funkwhale_api/__init__.py b/api/funkwhale_api/__init__.py index 4e7305fdd..1e618c71a 100644 --- a/api/funkwhale_api/__init__.py +++ b/api/funkwhale_api/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -__version__ = "1.2.3" +__version__ = "1.2.4" __version_info__ = tuple( [ int(num) if num.isdigit() else num diff --git a/changes/changelog.d/multi-version.doc b/changes/changelog.d/multi-version.doc deleted file mode 100644 index 84330d6ef..000000000 --- a/changes/changelog.d/multi-version.doc +++ /dev/null @@ -1 +0,0 @@ -The documentation is now available in two versions: Develop and Stable diff --git a/changes/template.rst b/changes/template.rst index 6dcd63461..6db6631dc 100644 --- a/changes/template.rst +++ b/changes/template.rst @@ -1,5 +1,5 @@ - ------------------- +{{ versiondata.version }} ({{ versiondata.date }}) +{{ top_underline * ((versiondata.version + versiondata.date)|length + 3)}} Upgrade instructions are available at https://docs.funkwhale.audio/admin/upgrading.html diff --git a/deploy/env.prod.sample b/deploy/env.prod.sample index 9c3f0d764..1e8a913a9 100644 --- a/deploy/env.prod.sample +++ b/deploy/env.prod.sample @@ -58,9 +58,9 @@ LOGLEVEL=error # `python3 -c 'import urllib.parse; print(urllib.parse.quote_plus # ("noreply@youremail.host"))'` # (returns `noreply%40youremail.host`) -# EMAIL_CONFIG=smtp://user@:password@youremail.host:25 -# EMAIL_CONFIG=smtp+ssl://user@:password@youremail.host:465 -# EMAIL_CONFIG=smtp+tls://user@:password@youremail.host:587 +# EMAIL_CONFIG=smtp://user:password@youremail.host:25 +# EMAIL_CONFIG=smtp+ssl://user:password@youremail.host:465 +# EMAIL_CONFIG=smtp+tls://user:password@youremail.host:587 # Make e-mail verification mandatory before using the service # Doesn't apply to admins. diff --git a/docs/poetry.lock b/docs/poetry.lock index 3743b9cb1..95c19a52b 100644 --- a/docs/poetry.lock +++ b/docs/poetry.lock @@ -17,27 +17,13 @@ python-versions = ">=3.7" [package.extras] tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"] -[[package]] -name = "attrs" -version = "21.4.0" -description = "Classes Without Boilerplate" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] - [[package]] name = "babel" -version = "2.9.1" +version = "2.10.1" description = "Internationalization utilities" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" [package.dependencies] pytz = ">=2015.7" @@ -125,11 +111,11 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "jinja2" -version = "3.0.3" +version = "3.1.1" description = "A very fast and expressive template engine." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] MarkupSafe = ">=2.0" @@ -139,23 +125,23 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "markdown-it-py" -version = "2.0.1" +version = "2.1.0" description = "Python port of markdown-it. Markdown parsing, done right!" category = "main" optional = false -python-versions = "~=3.6" +python-versions = ">=3.7" [package.dependencies] -attrs = ">=19,<22" mdurl = ">=0.1,<1.0" [package.extras] benchmarking = ["psutil", "pytest", "pytest-benchmark (>=3.2,<4.0)"] code_style = ["pre-commit (==2.6)"] -compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.2.2,<3.3.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "mistune (>=0.8.4,<0.9.0)", "panflute (>=1.12,<2.0)"] +compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.3.6,<3.4.0)", "mistletoe (>=0.8.1,<0.9.0)", "mistune (>=2.0.2,<2.1.0)", "panflute (>=2.1.3,<2.2.0)"] linkify = ["linkify-it-py (>=1.0,<2.0)"] plugins = ["mdit-py-plugins"] -rtd = ["myst-nb (==0.13.0a1)", "pyyaml", "sphinx (>=2,<4)", "sphinx-copybutton", "sphinx-panels (>=0.4.0,<0.5.0)", "sphinx-book-theme"] +profiling = ["gprof2dot"] +rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx-book-theme"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] @@ -184,11 +170,11 @@ testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] [[package]] name = "mdurl" -version = "0.1.0" +version = "0.1.1" description = "Markdown URL utilities" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [[package]] name = "myst-parser" @@ -234,18 +220,18 @@ python-versions = ">=3.5" [[package]] name = "pyparsing" -version = "3.0.7" -description = "Python parsing module" +version = "3.0.8" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.6.8" [package.extras] -diagrams = ["jinja2", "railroad-diagrams"] +diagrams = ["railroad-diagrams", "jinja2"] [[package]] name = "pytz" -version = "2021.3" +version = "2022.1" description = "World timezone definitions, modern and historical" category = "main" optional = false @@ -441,11 +427,11 @@ python-versions = ">=3.5" [[package]] name = "typing-extensions" -version = "4.1.1" -description = "Backported and Experimental Type Hints for Python 3.6+" +version = "4.2.0" +description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [[package]] name = "tzdata" @@ -482,13 +468,9 @@ asgiref = [ {file = "asgiref-3.5.0-py3-none-any.whl", hash = "sha256:88d59c13d634dcffe0510be048210188edd79aeccb6a6c9028cdad6f31d730a9"}, {file = "asgiref-3.5.0.tar.gz", hash = "sha256:2f8abc20f7248433085eda803936d98992f1343ddb022065779f37c5da0181d0"}, ] -attrs = [ - {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, - {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, -] babel = [ - {file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"}, - {file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"}, + {file = "Babel-2.10.1-py3-none-any.whl", hash = "sha256:3f349e85ad3154559ac4930c3918247d319f21910d5ce4b25d439ed8693b98d2"}, + {file = "Babel-2.10.1.tar.gz", hash = "sha256:98aeaca086133efb3e1e2aad0396987490c8425929ddbcfe0550184fdc54cd13"}, ] certifi = [ {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, @@ -523,12 +505,12 @@ imagesize = [ {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"}, ] jinja2 = [ - {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, - {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, + {file = "Jinja2-3.1.1-py3-none-any.whl", hash = "sha256:539835f51a74a69f41b848a9645dbdc35b4f20a3b601e2d9a7e22947b15ff119"}, + {file = "Jinja2-3.1.1.tar.gz", hash = "sha256:640bed4bb501cbd17194b3cace1dc2126f5b619cf068a726b98192a0fde74ae9"}, ] markdown-it-py = [ - {file = "markdown-it-py-2.0.1.tar.gz", hash = "sha256:7b5c153ae1ab2cde00a33938bce68f3ad5d68fbe363f946de7d28555bed4e08a"}, - {file = "markdown_it_py-2.0.1-py3-none-any.whl", hash = "sha256:31974138ca8cafbcb62213f4974b29571b940e78364584729233f59b8dfdb8bd"}, + {file = "markdown-it-py-2.1.0.tar.gz", hash = "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"}, + {file = "markdown_it_py-2.1.0-py3-none-any.whl", hash = "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27"}, ] markupsafe = [ {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, @@ -577,8 +559,8 @@ mdit-py-plugins = [ {file = "mdit_py_plugins-0.3.0-py3-none-any.whl", hash = "sha256:b1279701cee2dbf50e188d3da5f51fee8d78d038cdf99be57c6b9d1aa93b4073"}, ] mdurl = [ - {file = "mdurl-0.1.0-py3-none-any.whl", hash = "sha256:40654d6dcb8d21501ed13c21cc0bd6fc42ff07ceb8be30029e5ae63ebc2ecfda"}, - {file = "mdurl-0.1.0.tar.gz", hash = "sha256:94873a969008ee48880fb21bad7de0349fef529f3be178969af5817239e9b990"}, + {file = "mdurl-0.1.1-py3-none-any.whl", hash = "sha256:6a8f6804087b7128040b2fb2ebe242bdc2affaeaa034d5fc9feeed30b443651b"}, + {file = "mdurl-0.1.1.tar.gz", hash = "sha256:f79c9709944df218a4cdb0fcc0b0c7ead2f44594e3e84dc566606f04ad749c20"}, ] myst-parser = [ {file = "myst-parser-0.17.0.tar.gz", hash = "sha256:d412347a5cacb77ebc03d7f7ffef050cd61957d46f234313d350e84e24972260"}, @@ -593,12 +575,12 @@ pygments = [ {file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"}, ] pyparsing = [ - {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, - {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, + {file = "pyparsing-3.0.8-py3-none-any.whl", hash = "sha256:ef7b523f6356f763771559412c0d7134753f037822dad1b16945b7b846f7ad06"}, + {file = "pyparsing-3.0.8.tar.gz", hash = "sha256:7bf433498c016c4314268d95df76c81b842a4cb2b276fa3312cfb1e1d85f6954"}, ] pytz = [ - {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"}, - {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"}, + {file = "pytz-2022.1-py2.py3-none-any.whl", hash = "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"}, + {file = "pytz-2022.1.tar.gz", hash = "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7"}, ] pyyaml = [ {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, @@ -688,8 +670,8 @@ sqlparse = [ {file = "sqlparse-0.4.2.tar.gz", hash = "sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae"}, ] typing-extensions = [ - {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"}, - {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"}, + {file = "typing_extensions-4.2.0-py3-none-any.whl", hash = "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708"}, + {file = "typing_extensions-4.2.0.tar.gz", hash = "sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376"}, ] tzdata = [ {file = "tzdata-2022.1-py2.py3-none-any.whl", hash = "sha256:238e70234214138ed7b4e8a0fab0e5e13872edab3be586ab8198c407620e2ab9"}, diff --git a/front/src/components/audio/album/Card.vue b/front/src/components/audio/album/Card.vue index 381d39613..154ef4ec1 100644 --- a/front/src/components/audio/album/Card.vue +++ b/front/src/components/audio/album/Card.vue @@ -1,17 +1,21 @@