Amin Ghadersohi
8a8533a91d
chore(i18n): harden apply_do_not_translate per review
...
Addresses code-review feedback on apply_do_not_translate.py:
- Strip each registry line before the blank/comment check, so trailing
whitespace or an indented comment can't yield a msgid that fails to match the
.pot (Critical).
- Fail fast with a non-zero exit when the registry file is missing, rather than
silently producing catalogs without do-not-translate markers; an existing but
empty registry remains a valid no-op (Major).
- Add explicit type annotations to the module-level constants.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-02 21:14:10 -07:00
Amin Ghadersohi
def156df51
feat(i18n): standardize do-not-translate via registry + .pot marker
...
Replace the hardcoded DO_NOT_TRANSLATE set with a canonical registry file
(superset/translations/do-not-translate.txt) and a propagating, gettext-native
marker, so do-not-translate status is consistent across every catalog and
maintained in one place.
- superset/translations/do-not-translate.txt: the msgid registry.
- scripts/translations/apply_do_not_translate.py: stamps each registry msgid in
messages.pot with a `#. MACHINE_READ-DO_NOT_TRANSLATE` extracted comment via
format-preserving text edit (idempotent). Wired into babel_update.sh after
extraction; `pybabel update` then propagates the marker into every .po.
- backfill_po.py: loads the registry (single source of truth) and honors the
`#. MACHINE_READ-DO_NOT_TRANSLATE` marker (extracted comment) as well as the
legacy `# Не переводить` translator comment, in the extracted OR translator
comment.
- UPDATING.md + howtos: document the new standard.
There is no official gettext "do not translate" flag; an extracted comment
propagated from the .pot is the closest native, cross-language mechanism.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-02 10:50:11 -07:00
Evan
68186a0485
test(i18n): add end-to-end DNT skip test; annotate DNT vars
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-02 10:13:23 -07:00
Amin Ghadersohi
fb8af9caec
feat(i18n): skip do-not-translate entries in backfill_po
...
The backfill only checked for an empty msgstr, so it filled entries a human
translator had deliberately left blank — e.g. the ru catalog's "# Не переводить"
(do-not-translate) markers on literal tokens. This translated strings that must
stay identical to the source: icon names (`bolt` -> the ⚡ Explore control
icon), d3 enum values (`step-after`/`step-before`), API field names
(`error_message`), SQL keywords, code constants, and example placeholders.
Add `_is_do_not_translate`, consulted when collecting untranslated entries. An
entry is skipped if its msgid is in the curated `DO_NOT_TRANSLATE` set (seeded
from the ru translator's markers; language-independent) or if it carries an
explicit do-not-translate translator comment in any catalog. Skipped entries are
reported and left untranslated (source-token fallback).
Adds unit tests for the curated set, translator-comment honoring (incl. the
Cyrillic marker), and the normal-entry pass-through.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-01 18:24:21 -07:00
Evan Rusackas
8be255de40
chore(i18n): harden backfill_po — full language-name map + resilient batch translation ( #41644 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-01 16:28:19 -07:00
Evan Rusackas
35194fe4d5
fix(i18n): key translation-regression check on per-msgid transitions ( #41596 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-30 16:54:39 -07:00
Evan Rusackas
16a3405e3c
fix(i18n): skip unparseable catalogs when building translation index ( #41465 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-29 10:11:20 -07:00
Hans Yu
c49391ab08
refactor: update Connection.execute() to use queries with text() ( #40277 )
2026-06-22 15:36:15 -07:00
rijekaDrina
79cfe4d9bc
feat(i18n): add Serbian translations (Cyrillic + Latin) ( #41137 )
...
Signed-off-by: Aleksije Micic <aleksije.micic1997@gmail.com >
Co-authored-by: Aleksije Micic <aleksije.micic1997@gmail.com >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-06-18 17:45:04 -07:00
Evan Rusackas
76f334f252
fix(i18n): stop fuzzy-matching new strings so adding one doesn't fail babel-extract ( #40909 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-10 00:40:48 +07:00
Evan Rusackas
9d1bc6b2cc
fix(i18n): don't flag intentional string deletions as translation regressions ( #40716 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 14:47:31 -07:00
Evan Rusackas
c914df5a67
ci: harden CI against Docker Hub registry flakes (retries + auth) ( #40700 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 19:53:24 +07:00
Ville Brofeldt
74d1c83ec5
ci: preserve PR translation updates during regression checks ( #40581 )
2026-06-01 15:54:20 -07:00
Evan Rusackas
dab628c13a
fix(i18n): auto-add ASF license header in backfill_po.py ( #40395 )
...
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 11:53:35 -07:00
Ville Brofeldt
a621520387
fix(ci): repair Python version extraction in uv-pip-compile.sh ( #40565 )
2026-06-01 00:30:07 +07:00
Kasia
4d95a8d034
feat(listview): compact filter pills with popover for CRUD views ( #40169 )
2026-05-30 10:30:40 +02:00
Joe Li
c9136af8b6
fix(ci): trigger python dep check when pyproject.toml changes ( #39792 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-05-29 21:13:56 -07:00
Amin Ghadersohi
952a6f3a23
fix(mcp): prevent encoding error on tools/list when middleware raises ( #40446 )
2026-05-26 12:50:31 -04:00
Evan Rusackas
9c90a6854c
ci(translations): hard-block translation regressions in CI ( #39443 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com >
2026-05-23 16:30:14 -07:00
Evan Rusackas
af6ac4d09c
feat(i18n): AI-assisted translation backfill tooling + Spanish translations ( #39448 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
Co-authored-by: Superset Dev <dev@superset.apache.org >
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com >
Co-authored-by: Claude <claude@anthropic.com >
2026-05-22 21:07:27 -07:00
Evan Rusackas
e56883baef
fix(ci): handle schedule event in change_detector and actually trigger all-changed ( #40105 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-14 21:39:07 +07:00
Michael S. Molina
6ce3885f2e
chore(build): remove thread-loader from webpack build ( #39763 )
2026-04-29 15:04:34 -03:00
Michael S. Molina
6cb3cea960
feat(extensions): Allow replacing editors using extensions ( #37499 )
2026-01-29 08:22:32 -03:00
Evan Rusackas
d2907b2577
docs: federate scattered markdown files into centralized docs ( #36756 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-21 13:00:54 -08:00
Evan Rusackas
dee063a4c5
feat(examples): Modernize example data loading with Parquet and YAML configs ( #36538 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-21 12:42:15 -08:00
Evan Rusackas
1949d1bb96
feat(dev): add make ports and make open commands ( #36906 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-06 10:52:00 -08:00
Evan Rusackas
91539f77aa
feat(docker): support running multiple Superset instances simultaneously ( #36751 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 17:04:58 -08:00
Joe Li
979d385eea
fix: recompile dependencies with linux and update generate dependency script ( #36194 )
2025-11-20 13:42:42 -05:00
Evan Rusackas
8ccdf3b32b
feat(frontend): Replace ESLint with OXC hybrid linting architecture ( #35506 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-30 09:26:21 -07:00
Michael S. Molina
bcf156c969
fix: Rename apache-superset-cli to apache-superset-extensions-cli ( #34883 )
2025-08-28 14:40:09 -03:00
Michael S. Molina
a8be5a5a0c
chore: Extensions architecture POC ( #31934 )
...
Co-authored-by: Ville Brofeldt <ville.brofeldt@apple.com >
Co-authored-by: Ville Brofeldt <ville@Villes-MacBook-Pro-2024.local >
Co-authored-by: Ville Brofeldt <v_brofeldt@apple.com >
2025-08-22 21:25:52 -03:00
Maxime Beauchemin
cb27d5fe8d
chore: proper current_app.config proxy usage ( #34345 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-31 19:27:42 -07:00
Maxime Beauchemin
9099b0f00d
fix: fix the pre-commit hook for tsc ( #34275 )
...
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me >
2025-07-23 13:21:54 -07:00
Maxime Beauchemin
73dfe57ae2
fix: make flask-cors a core dependency ( #34115 )
2025-07-09 14:54:39 -07:00
Đỗ Trọng Hải
f6f9582186
fix(docs|build): revert docker-compose files rename ( #33883 )
2025-06-24 22:49:58 +07:00
Vladislav Polyakov
a23a4ed054
refactor: rename docker-compose files and update references ( #33790 )
...
Signed-off-by: Vladislav Polyakov <polRk@ydb.tech >
2025-06-20 12:00:34 -07:00
Maxime Beauchemin
05faf2f352
fix: resolve recent merge collisio ( #33110 )
2025-04-12 16:33:00 -07:00
Maxime Beauchemin
ac4df8d06b
fix: CI file change detector to handle large PRs ( #33092 )
2025-04-12 12:08:41 -07:00
Maxime Beauchemin
664047f3fb
chore: fix precommit for eslint ( #32596 )
2025-03-12 11:26:36 -07:00
Evan Rusackas
90651dfe3e
fix(dev/ci): pre-commit fixes galore ( #32352 )
2025-02-24 11:26:45 -07:00
alveifbklsiu259
c583eec4c7
fix(eslint-hook): ensure eslint hook receives arguments ( #32333 )
2025-02-24 08:57:48 -08:00
alveifbklsiu259
e422e3c620
feat(type-checking): Add type-checking pre-commit hooks ( #32261 )
2025-02-19 15:12:17 -08:00
Maxime Beauchemin
568f6d958b
fix: Revert "fix: re-enable cypress checks" ( #32045 )
2025-01-30 14:20:55 -03:00
Maxime Beauchemin
b12f515185
fix: re-enable cypress checks ( #32008 )
2025-01-29 23:29:30 -08:00
Maxime Beauchemin
dfb9af36df
chore: cypress set up tweaks ( #31926 )
2025-01-21 12:06:19 -08:00
Maxime Beauchemin
840773e626
feat: get docker-compose to work as the backend for Cypress tests ( #31796 )
2025-01-17 16:19:39 -08:00
Maxime Beauchemin
ee36cf058c
fix: docker-compose-image-tag fails to start ( #31606 )
2025-01-06 11:21:58 -08:00
Maxime Beauchemin
e51b95ffa8
chore: enforce more ruff rules ( #31447 )
...
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
2024-12-18 17:41:34 -08:00
Maxime Beauchemin
9da65d6bfd
chore: deprecate pip-compile-multi in favor or uv ( #31313 )
2024-12-18 17:40:58 -08:00
Maxime Beauchemin
fd9d3301f6
chore: deprecate tox in favor of act ( #29382 )
2024-11-26 13:27:37 -08:00