This is an automated email from the ASF dual-hosted git repository. rusackas pushed a commit to branch fix/readme-database-logos in repository https://gitbox.apache.org/repos/asf/superset.git
commit 26b5ca9a64db268519c14bda64a8c4269492ffd8 Author: Evan Rusackas <[email protected]> AuthorDate: Tue Jan 27 15:19:02 2026 -0800 fix(docs): replace identicon logos and deduplicate README database wall - Replace cratedb.png and risingwave.png (GitHub identicon avatars) with actual logos sourced from the official CrateDB and RisingWave GitHub repos (SVG format) - Update engine spec metadata to reference .svg files - Add deduplication to generateReadmeLogos() in the docs script to match the docs homepage behavior (filters by unique logo filename) - Removes 4 duplicate entries: Databricks Interactive Cluster (same logo as Apache Hive), IBM Db2 for i (same as IBM Db2), MySQL (same as Aurora MySQL), PostgreSQL (same as Aurora PostgreSQL) - README now shows 61 unique database logos, matching the docs homepage Co-Authored-By: Claude Opus 4.5 <[email protected]> --- README.md | 12 ++++-------- docs/scripts/generate-database-docs.mjs | 19 ++++++++++++++----- docs/src/data/databases.json | 6 +++--- docs/static/img/databases/cratedb.png | Bin 1534 -> 0 bytes docs/static/img/databases/cratedb.svg | Bin 0 -> 2999 bytes docs/static/img/databases/risingwave.png | Bin 1548 -> 0 bytes docs/static/img/databases/risingwave.svg | Bin 0 -> 14392 bytes superset/db_engine_specs/crate.py | 2 +- superset/db_engine_specs/risingwave.py | 2 +- 9 files changed, 23 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index d12a7d066cb..55421b80e44 100644 --- a/README.md +++ b/README.md @@ -120,18 +120,17 @@ Here are some of the major database solutions that are supported: <img src="https://superset.apache.org/img/databases/apache-solr.png" alt="apache-solr" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/apache-spark.png" alt="apache-spark-sql" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/ascend.webp" alt="ascend" border="0" width="80" height="40" class="database-logo" /> - <img src="https://superset.apache.org/img/databases/mysql.png" alt="aurora-mysql-(data-api)" border="0" width="80" height="40" class="database-logo" /> - <img src="https://superset.apache.org/img/databases/postgresql.svg" alt="aurora-postgresql-(data-api)" border="0" width="80" height="40" class="database-logo" /> + <img src="https://superset.apache.org/img/databases/mysql.png" alt="aurora-mysql-data-api" border="0" width="80" height="40" class="database-logo" /> + <img src="https://superset.apache.org/img/databases/postgresql.svg" alt="aurora-postgresql-data-api" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/kusto.png" alt="azure-data-explorer" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/azure.svg" alt="azure-synapse" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/clickhouse.png" alt="clickhouse" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/cloudflare.png" alt="cloudflare-d1" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/cockroachdb.png" alt="cockroachdb" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/couchbase.svg" alt="couchbase" border="0" width="80" height="40" class="database-logo" /> - <img src="https://superset.apache.org/img/databases/cratedb.png" alt="cratedb" border="0" width="80" height="40" class="database-logo" /> + <img src="https://superset.apache.org/img/databases/cratedb.svg" alt="cratedb" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/databend.png" alt="databend" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/databricks.png" alt="databricks" border="0" width="80" height="40" class="database-logo" /> - <img src="https://superset.apache.org/img/databases/apache-hive.svg" alt="databricks-interactive-cluster" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/denodo.png" alt="denodo" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/dremio.png" alt="dremio" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/duckdb.png" alt="duckdb" border="0" width="80" height="40" class="database-logo" /> @@ -144,19 +143,16 @@ Here are some of the major database solutions that are supported: <img src="https://superset.apache.org/img/databases/greenplum.png" alt="greenplum" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/hologres.png" alt="hologres" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/ibm-db2.svg" alt="ibm-db2" border="0" width="80" height="40" class="database-logo" /> - <img src="https://superset.apache.org/img/databases/ibm-db2.svg" alt="ibm-db2-for-i" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/netezza.png" alt="ibm-netezza-performance-server" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/mariadb.png" alt="mariadb" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/msql.png" alt="microsoft-sql-server" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/monet-db.png" alt="monetdb" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/mongodb.png" alt="mongodb" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/motherduck.png" alt="motherduck" border="0" width="80" height="40" class="database-logo" /> - <img src="https://superset.apache.org/img/databases/mysql.png" alt="mysql" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/oceanbase.svg" alt="oceanbase" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/oraclelogo.png" alt="oracle" border="0" width="80" height="40" class="database-logo" /> - <img src="https://superset.apache.org/img/databases/postgresql.svg" alt="postgresql" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/presto-og.png" alt="presto" border="0" width="80" height="40" class="database-logo" /> - <img src="https://superset.apache.org/img/databases/risingwave.png" alt="risingwave" border="0" width="80" height="40" class="database-logo" /> + <img src="https://superset.apache.org/img/databases/risingwave.svg" alt="risingwave" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/sap-hana.png" alt="sap-hana" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/sybase.png" alt="sap-sybase" border="0" width="80" height="40" class="database-logo" /> <img src="https://superset.apache.org/img/databases/shillelagh.png" alt="shillelagh" border="0" width="80" height="40" class="database-logo" /> diff --git a/docs/scripts/generate-database-docs.mjs b/docs/scripts/generate-database-docs.mjs index 04980f24f83..985fba74101 100644 --- a/docs/scripts/generate-database-docs.mjs +++ b/docs/scripts/generate-database-docs.mjs @@ -609,13 +609,22 @@ const README_END_MARKER = '<!-- SUPPORTED_DATABASES_END -->'; /** * Generate the database logos HTML for README.md - * Only includes databases that have logos defined + * Only includes databases that have logos and homepage URLs. + * Deduplicates by logo filename to match the docs homepage behavior. */ function generateReadmeLogos(databases) { - // Get databases with logos, sorted alphabetically + // Get databases with logos and homepage URLs, sorted alphabetically, + // deduplicated by logo filename (matches docs homepage logic in index.tsx) + const seenLogos = new Set(); const dbsWithLogos = Object.entries(databases) - .filter(([, db]) => db.documentation?.logo) - .sort(([a], [b]) => a.localeCompare(b)); + .filter(([, db]) => db.documentation?.logo && db.documentation?.homepage_url) + .sort(([a], [b]) => a.localeCompare(b)) + .filter(([, db]) => { + const logo = db.documentation.logo; + if (seenLogos.has(logo)) return false; + seenLogos.add(logo); + return true; + }); if (dbsWithLogos.length === 0) { return ''; @@ -624,7 +633,7 @@ function generateReadmeLogos(databases) { // Generate HTML img tags const logoTags = dbsWithLogos.map(([name, db]) => { const logo = db.documentation.logo; - const alt = name.toLowerCase().replace(/\s+/g, '-'); + const alt = name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, ''); // Use docs site URL for logos return ` <img src="https://superset.apache.org/img/databases/${logo}" alt="${alt}" border="0" width="80" height="40" class="database-logo" />`; }); diff --git a/docs/src/data/databases.json b/docs/src/data/databases.json index d8aaa76e6c9..4a64d016760 100644 --- a/docs/src/data/databases.json +++ b/docs/src/data/databases.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-27T06:14:03.276Z", + "generated": "2026-01-27T23:17:43.310Z", "statistics": { "totalDatabases": 68, "withDocumentation": 68, @@ -876,7 +876,7 @@ "module": "crate", "documentation": { "description": "CrateDB is a distributed SQL database for machine data and IoT workloads.", - "logo": "cratedb.png", + "logo": "cratedb.svg", "homepage_url": "https://crate.io/", "categories": [ "TIME_SERIES", @@ -4577,7 +4577,7 @@ "module": "risingwave", "documentation": { "description": "RisingWave is a distributed streaming database.", - "logo": "risingwave.png", + "logo": "risingwave.svg", "homepage_url": "https://risingwave.com/", "pypi_packages": [ "psycopg2", diff --git a/docs/static/img/databases/cratedb.png b/docs/static/img/databases/cratedb.png deleted file mode 100644 index dedef2414c8..00000000000 Binary files a/docs/static/img/databases/cratedb.png and /dev/null differ diff --git a/docs/static/img/databases/cratedb.svg b/docs/static/img/databases/cratedb.svg new file mode 100644 index 00000000000..21e1ef12ce7 Binary files /dev/null and b/docs/static/img/databases/cratedb.svg differ diff --git a/docs/static/img/databases/risingwave.png b/docs/static/img/databases/risingwave.png deleted file mode 100644 index a5db27a527f..00000000000 Binary files a/docs/static/img/databases/risingwave.png and /dev/null differ diff --git a/docs/static/img/databases/risingwave.svg b/docs/static/img/databases/risingwave.svg new file mode 100644 index 00000000000..5614269b8e4 Binary files /dev/null and b/docs/static/img/databases/risingwave.svg differ diff --git a/superset/db_engine_specs/crate.py b/superset/db_engine_specs/crate.py index f23ccb4dcee..916f98f3f01 100644 --- a/superset/db_engine_specs/crate.py +++ b/superset/db_engine_specs/crate.py @@ -36,7 +36,7 @@ class CrateEngineSpec(BaseEngineSpec): "description": ( "CrateDB is a distributed SQL database for machine data and IoT workloads." ), - "logo": "cratedb.png", + "logo": "cratedb.svg", "homepage_url": "https://crate.io/", "categories": [DatabaseCategory.TIME_SERIES, DatabaseCategory.OPEN_SOURCE], "pypi_packages": ["crate", "sqlalchemy-cratedb"], diff --git a/superset/db_engine_specs/risingwave.py b/superset/db_engine_specs/risingwave.py index 1a4c9cfe91b..899a9f4c834 100644 --- a/superset/db_engine_specs/risingwave.py +++ b/superset/db_engine_specs/risingwave.py @@ -28,7 +28,7 @@ class RisingWaveDbEngineSpec(PostgresEngineSpec): metadata = { "description": "RisingWave is a distributed streaming database.", - "logo": "risingwave.png", + "logo": "risingwave.svg", "homepage_url": "https://risingwave.com/", "categories": [ DatabaseCategory.ANALYTICAL_DATABASES,
