Commit Graph

173 Commits

Author SHA1 Message Date
Amin Ghadersohi
e495903506 chore(i18n): annotate DO_NOT_TRANSLATE_REGISTRY constant type
Per review, add the explicit `Path` annotation on the module-level registry
path constant, matching the sibling constants.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 21:15:34 -07:00
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