3
0
Fork 0

Compare commits

...

2 commits

Author SHA1 Message Date
77c9d00eb9 bump: version 0.27.2 → 0.27.3 2026-02-07 09:29:33 -06:00
5fdba539a0 fix: prefer new setting name for buefy_css liburl
old setting name is still supported for now, with deprecation
warnings.

this change was necessary due to ambiguity of the buefy setting, when
buefy.css setting was set
2026-02-07 09:28:37 -06:00
6 changed files with 136 additions and 9 deletions

View file

@ -5,6 +5,12 @@ All notable changes to wuttaweb will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## v0.27.3 (2026-02-07)
### Fix
- prefer new setting name for buefy_css liburl
## v0.27.2 (2026-02-04)
### Fix

View file

@ -6,7 +6,7 @@ build-backend = "hatchling.build"
[project]
name = "WuttaWeb"
version = "0.27.2"
version = "0.27.3"
description = "Web App for Wutta Framework"
readme = "README.md"
authors = [{name = "Lance Edgar", email = "lance@wuttaproject.org"}]

View file

@ -113,7 +113,7 @@
</%def>
<%def name="buefy_styles()">
${h.stylesheet_link(h.get_liburl(request, 'buefy.css'))}
${h.stylesheet_link(h.get_liburl(request, 'buefy_css'))}
</%def>
<%def name="base_styles()">

View file

@ -188,6 +188,14 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
"""
config = request.wutta_config
if key == "buefy.css":
warnings.warn(
"libver key 'buefy.css' is deprecated; please use 'buefy_css' instead",
DeprecationWarning,
stacklevel=2,
)
key = "buefy_css"
# nb. we prefer a setting to be named like: wuttaweb.libver.vue
# but for back-compat this also can work: tailbone.libver.vue
# and for more back-compat this can work: wuttaweb.vue_version
@ -200,6 +208,17 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
if version:
return version
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get("wuttaweb.libver.buefy.css")
if version:
warnings.warn(
"config for wuttaweb.libver.buefy.css is deprecated; "
"please set wuttaweb.libver.buefy_css instead",
DeprecationWarning,
)
return version
# fallback to caller-specified prefix
if prefix != "wuttaweb":
version = config.get(f"{prefix}.libver.{key}")
@ -211,6 +230,17 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
)
return version
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get(f"{prefix}.libver.buefy.css")
if version:
warnings.warn(
f"config for {prefix}.libver.buefy.css is deprecated; "
"please set wuttaweb.libver.buefy_css instead",
DeprecationWarning,
)
return version
if key == "buefy":
if not default_only:
# nb. old/legacy setting
@ -225,7 +255,7 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
if not configured_only:
return "0.9.25"
elif key == "buefy.css":
elif key == "buefy_css":
# nb. this always returns something
return get_libver(
request, "buefy", default_only=default_only, configured_only=configured_only
@ -280,13 +310,13 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
return None
def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
def get_liburl(
request,
key,
configured_only=False,
default_only=False,
prefix="wuttaweb",
):
): # pylint: disable=too-many-return-statements,too-many-branches,too-many-statements
"""
Return the appropriate URL for the web resource library identified
by ``key``.
@ -321,7 +351,7 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
* ``vue``
* ``vue_resource``
* ``buefy``
* ``buefy.css``
* ``buefy_css``
* ``fontawesome``
Vue 3 + Oruga
@ -353,6 +383,14 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
"""
config = request.wutta_config
if key == "buefy.css":
warnings.warn(
"liburl key 'buefy.css' is deprecated; please use 'buefy_css' instead",
DeprecationWarning,
stacklevel=2,
)
key = "buefy_css"
if not default_only:
# nb. new/preferred setting
@ -360,6 +398,17 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
if url:
return url
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get("wuttaweb.liburl.buefy.css")
if version:
warnings.warn(
"config for wuttaweb.liburl.buefy.css is deprecated; "
"please set wuttaweb.liburl.buefy_css instead",
DeprecationWarning,
)
return version
# fallback to caller-specified prefix
url = config.get(f"{prefix}.liburl.{key}")
if url:
@ -370,6 +419,17 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
)
return url
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get(f"{prefix}.liburl.buefy.css")
if version:
warnings.warn(
f"config for {prefix}.liburl.buefy.css is deprecated; "
"please set wuttaweb.liburl.buefy_css instead",
DeprecationWarning,
)
return version
if configured_only:
return None
@ -400,7 +460,7 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
return liburl + static.buefy_js.relpath
return f"https://unpkg.com/buefy@{version}/dist/buefy.min.js"
if key == "buefy.css":
if key == "buefy_css":
if static and hasattr(static, "buefy_css"):
return liburl + static.buefy_css.relpath
return f"https://unpkg.com/buefy@{version}/dist/buefy.min.css"

View file

@ -115,7 +115,7 @@ class AppInfoView(MasterView): # pylint: disable=abstract-method
("vue", "(Vue2) Vue"),
("vue_resource", "(Vue2) vue-resource"),
("buefy", "(Vue2) Buefy"),
("buefy.css", "(Vue2) Buefy CSS"),
("buefy_css", "(Vue2) Buefy CSS"),
("fontawesome", "(Vue2) FontAwesome"),
("bb_vue", "(Vue3) vue"),
("bb_oruga", "(Vue3) @oruga-ui/oruga-next"),

View file

@ -95,27 +95,73 @@ class TestGetLibVer(TestCase):
self.assertEqual(version, "0.9.25")
def test_buefy_css_default(self):
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.25")
version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.25")
def test_buefy_css_custom_old(self):
# nb. this uses same setting as buefy (js)
self.config.setdefault("wuttaweb.buefy_version", "0.9.29")
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.29")
def test_buefy_css_custom_new(self):
# nb. this uses same setting as buefy (js)
self.config.setdefault("wuttaweb.libver.buefy", "0.9.29")
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.29")
def test_buefy_css_configured_only(self):
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertIsNone(version)
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertIsNone(version)
# legacy prefix + deprecated setting name
self.config.setdefault("tailbone.libver.buefy.css", "0.9.23")
version = mod.get_libver(
self.request, "buefy_css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.23")
version = mod.get_libver(
self.request, "buefy.css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.23")
# legacy prefix + preferred setting name
self.config.setdefault("tailbone.libver.buefy_css", "0.9.22")
version = mod.get_libver(
self.request, "buefy_css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.22")
version = mod.get_libver(
self.request, "buefy.css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.22")
# deprecated setting name
self.config.setdefault("wuttaweb.libver.buefy.css", "0.9.29")
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertEqual(version, "0.9.29")
# preferred setting name
self.config.setdefault("wuttaweb.libver.buefy_css", "0.9.27")
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertEqual(version, "0.9.27")
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertEqual(version, "0.9.27")
def test_buefy_css_default_only(self):
self.config.setdefault("wuttaweb.libver.buefy", "0.9.29")
version = mod.get_libver(self.request, "buefy_css", default_only=True)
self.assertEqual(version, "0.9.25")
version = mod.get_libver(self.request, "buefy.css", default_only=True)
self.assertEqual(version, "0.9.25")
@ -291,16 +337,31 @@ class TestGetLibUrl(TestCase):
self.assertEqual(url, "/wutta/fanstatic/buefy.js")
def test_buefy_css_default(self):
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css")
def test_buefy_css_custom(self):
self.config.setdefault("wuttaweb.liburl.buefy.css", "/lib/buefy.css")
# deprecated setting name
self.config.setdefault("wuttaweb.liburl.buefy.css", "/lib/deprecated-buefy.css")
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/lib/deprecated-buefy.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/lib/deprecated-buefy.css")
# preferred setting name
self.config.setdefault("wuttaweb.liburl.buefy_css", "/lib/buefy.css")
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/lib/buefy.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/lib/buefy.css")
def test_buefy_css_fanstatic(self):
self.setup_fanstatic()
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/wutta/fanstatic/buefy.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/wutta/fanstatic/buefy.css")