(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{"84Hj":function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return i})),n.d(t,"default",(function(){return b}));var a=n("k1TG"),r=n("8o2o"),o=(n("q1tI"),n("7ljp")),s=n("hhGP"),i=(n("qKvR"),{});void 0!==i&&i&&i===Object(i)&&Object.isExtensible(i)&&!i.hasOwnProperty("__filemeta")&&Object.defineProperty(i,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/version-one-page.mdx"}});var l={_frontmatter:i},c=s.a;function b(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(o.b)(c,Object(a.a)({},l,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"superset-10"},"Superset 1.0"),Object(o.b)("p",null,"Apache Superset 1.0 is a major milestone that the community has been working towards since the\nvery first commit at a hackathon at Airbnb back in 2015. Superset 1.0 packs a lot of new features,\nuplevels usability, holds a higher quality standard, and raises the bar for releases to come."),Object(o.b)("p",null,"This page chronicles the key advancements that our community has been building up towards this release."),Object(o.b)("p",null,"While growing fast over the past four years, Superset had accumulated a certain amount of technical debt,\ndesign debt, bugs, and idiosyncrasies. For this release, we wanted to pay the bulk of that debt off,\nstreamlining the core user flows, refreshing the overall look and feel, taking off some of the\nscaffolding that was left standing around, and more generally, leveling up the user experience."),Object(o.b)("h2",{id:"user-experience"},"User Experience"),Object(o.b)("p",null,"Visually, Superset 1.0 is stunning, introducing card layouts with thumbnails throughout the application,\nstreamlining navigation and content discovery with a new home page, redesigned menus,\nand generally enriching existing pages."),Object(o.b)("img",{src:"/images/dashboard_card_view.jpg"}),Object(o.b)("p",null,"Behind the scenes, we moved away from Bootstrap 2x in favor of building a\nproper design system on top of Ant Design.\nWe also redesigned all of our CRUD (Create Read Update Delete), moving away\nfrom the rigid scaffolding “auto-magic” provided by FAB (Flask App Builder),\nto our own React-based solution that enables us to build richer experiences."),Object(o.b)("img",{src:"/images/explore_ui.jpg"}),Object(o.b)("p",null,"More generally,\nmany rough edges got buffed, the whole product got polished,\nand we managed to get our core user flows to, well, flow nicely."),Object(o.b)("h2",{id:"api"},"API"),Object(o.b)("p",null,"For engineers and hackers, we’ve made Superset much more modular,\nextensible and integratable. We’re now exposing the building blocks of Superset\nfor engineers to extend or use in other projects. It’s now easier than ever to\ncreate new visualization plugins for Superset and to share those plugins back with the community."),Object(o.b)("p",null," We’re excited by the possibilities that this opens and excited to observe a growing ecosystem of\nplugins take life. We’ve also formalized a ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/rest-api"}),"public REST API")," that enables engineers to essentially\ndo everything that users can do in Superset, programmatically."),Object(o.b)("h2",{id:"honorable-mentions"},"Honorable Mentions"),Object(o.b)("p",null,"With 1680 PRs merged and 25+ SIPs (Superset Improvement Proposals) over 2020, it’s hard\nto summarize what went into this release. Improvements happened in all aspects\nof the project, from infrastructure to design, through backend and frontend, to community and\ngovernance. Here are some honorable mentions that we haven’t been covered above,\nbut deserve a mention in this post:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Asynchronous backend improvements"),Object(o.b)("li",{parentName:"ul"},"Metadata and data pane in explorer view"),Object(o.b)("li",{parentName:"ul"},"Toolbars redesign (SQL Lab, dashboard, explore)"),Object(o.b)("li",{parentName:"ul"},"Date range picker redesign"),Object(o.b)("li",{parentName:"ul"},"Various Docker / Helm improvements"),Object(o.b)("li",{parentName:"ul"},"Migration of key visualization to plugins using Echarts"),Object(o.b)("li",{parentName:"ul"},"Time series forecasting leveraging the Prophet library"),Object(o.b)("li",{parentName:"ul"},"Improvements to and extensive use of our feature flag framework"),Object(o.b)("li",{parentName:"ul"},"Improved analytics logging, capturing more events more consistently"),Object(o.b)("li",{parentName:"ul"},"Exploration control panels improvements"),Object(o.b)("li",{parentName:"ul"},"Improved SQL-to-explore flows")),Object(o.b)("h2",{id:"start-using-superset-10"},"Start Using Superset 1.0"),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Release Notes")),Object(o.b)("p",null,"To digest the full set of changes in 1.0, we recommend reading the\n",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/apache/superset/tree/master/RELEASING/release-notes-1-0"}),"full Release Notes"),"\non Github."),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Source Code")),Object(o.b)("p",null,"You can download the official ASF release for 1.0 from\ntheir ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/apache/superset/tree/master/superset"}),"website here"),"."))}void 0!==b&&b&&b===Object(b)&&Object.isExtensible(b)&&!b.hasOwnProperty("__filemeta")&&Object.defineProperty(b,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/version-one-page.mdx"}}),b.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-version-one-page-mdx-afc86396fbbc74d49733.js.map