You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Component names/slugs must respect DB limits while staying unique. Supported doc types should follow Weblate’s FILE_FORMATS. Scanning and in-memory configs must be consistent and filterable by extension.
Acceptance Criteria
Length limits for component name/slug align with COMPONENT_NAME_LENGTH; truncation uses deterministic hash suffixes within those limits.
_submodule_slug normalizes submodule names to URL-safe slugs.
get_supported_extensions returns all supported extensions, or the intersection with the request’s extensions list when provided (normalized with leading dot, lower case).
scan_documentation_files walks the cloned repo, skips root-only files and translation stems (_*{lang_code}), and only includes extensions from get_supported_extensions.
Problem
Component names/slugs must respect DB limits while staying unique. Supported doc types should follow Weblate’s
FILE_FORMATS. Scanning and in-memory configs must be consistent and filterable by extension.Acceptance Criteria
COMPONENT_NAME_LENGTH; truncation uses deterministic hash suffixes within those limits._submodule_slugnormalizes submodule names to URL-safe slugs._build_extension_to_formatmaps file extensions (from*.extautoload patterns) to Weblateformat_idvalues.get_supported_extensionsreturns all supported extensions, or the intersection with the request’sextensionslist when provided (normalized with leading dot, lower case).scan_documentation_fileswalks the cloned repo, skips root-only files and translation stems (_*{lang_code}), and only includes extensions fromget_supported_extensions.generate_component_configbuilds in-memory dicts: name, slug, filemask, template,new_base,file_format,file_path(no temp JSON files).Implementation Notes
LOGGER/report_errorfor failures in clone/scan paths.References
src/boost_weblate/endpoint/services.py