diff --git a/CHANGELOG.md b/CHANGELOG.md index 265a77981dc43..982da34c6fcb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,311 @@ under the License. --> ## Change Log +### 1.1 (Wed Feb 24 12:08:28 2021 +0200) + +**Database Migrations** +- [#13111](https://github.com/apache/superset/pull/13111) feat: add Echarts Graph chart (@mayurnewase) +- [#13262](https://github.com/apache/superset/pull/13262) fix: migration script message formatting issue (@ktmud) +- [#13216](https://github.com/apache/superset/pull/13216) fix: add missing columns (@betodealmeida) +- [#12960](https://github.com/apache/superset/pull/12960) fix: Retroactively add granularity param to charts (@etr2460) +- [#13052](https://github.com/apache/superset/pull/13052) fix(explore): pie chart label bugs (@villebro) +- [#13015](https://github.com/apache/superset/pull/13015) fix: time filter db migration optimization (@ktmud) +- [#12950](https://github.com/apache/superset/pull/12950) chore: rename revision to match naming scheme (@etr2460) +- [#12680](https://github.com/apache/superset/pull/12680) feat(dashboard-rbac): dashboard lists (@amitmiran137) +- [#12552](https://github.com/apache/superset/pull/12552) fix(explore): deprecated x periods pattern in new time picker value (@zhaoyongjie) +- [#12336](https://github.com/apache/superset/pull/12336) chore: remove additional incubator references (@amitmiran137) + +**Features** +- [#13271](https://github.com/apache/superset/pull/13271) feat(chart-data): add rowcount, timegrain and column result types (@villebro) +- [#13214](https://github.com/apache/superset/pull/13214) feat(presto): add support for user impersonation (@rijojoseph07) +- [#13049](https://github.com/apache/superset/pull/13049) feat: Add sort by for dist bar chart (@maloun96) +- [#13057](https://github.com/apache/superset/pull/13057) feat: Add sort by metric for charts with multiple metrics (@maloun96) +- [#13182](https://github.com/apache/superset/pull/13182) feat: Move SQLAlchemy url reference to config (@hughhhh) +- [#13130](https://github.com/apache/superset/pull/13130) feat(helm): Evaluate configOverrides as templates (@Yann-J) +- [#13205](https://github.com/apache/superset/pull/13205) feat(filter-sets): Saving filter sets in metadata (@simcha90) +- [#13037](https://github.com/apache/superset/pull/13037) feat: add autocopy functionality to CopyToClipboard (#10328) (@michael-s-molina) +- [#13031](https://github.com/apache/superset/pull/13031) feat(filters-set): basic implementation for managing user filter sets (@simcha90) +- [#13150](https://github.com/apache/superset/pull/13150) feat(alerts): apply SQL limit to all alerts (@dpgaspar) +- [#13116](https://github.com/apache/superset/pull/13116) feat(helm): Helm template for Celery beat (for reporting and alerting) (@Yann-J) +- [#13114](https://github.com/apache/superset/pull/13114) feat: Added annotations and loadBalancerIP option in helm service.yaml (@cheunhong) +- [#13148](https://github.com/apache/superset/pull/13148) feat(native-filters): enable filter indicator and make datasource optional (@simcha90) +- [#12978](https://github.com/apache/superset/pull/12978) feat(dashboard): API to get a dashboard's charts (@suddjian) +- [#13105](https://github.com/apache/superset/pull/13105) feat: first step native support Trino (@dungdm93) +- [#13058](https://github.com/apache/superset/pull/13058) feat: add sort_by_metric for charts with single metric (@maloun96) +- [#13035](https://github.com/apache/superset/pull/13035) feat(dashboard_rbac): add support for related roles (@amitmiran137) +- [#13108](https://github.com/apache/superset/pull/13108) feat(native-filters): hide filterBar and toggle icon when in editMode (@amitmiran137) +- [#13096](https://github.com/apache/superset/pull/13096) feat: Custom superset_config.py + secret envs (@Yann-J) +- [#13005](https://github.com/apache/superset/pull/13005) feat(native-filters): add storybook entry for select filter (@simcha90) +- [#12992](https://github.com/apache/superset/pull/12992) feat(native-filters): Time native filter (@simcha90) +- [#13056](https://github.com/apache/superset/pull/13056) feat: Force pod restart on config changes (@Yann-J) +- [#12662](https://github.com/apache/superset/pull/12662) feat(cross-filters): add cross filters (@simcha90) +- [#12918](https://github.com/apache/superset/pull/12918) feat(style): hide dashboard header by url parameter (@simcha90) +- [#12602](https://github.com/apache/superset/pull/12602) feat(db engines): add support for Opendistro Elasticsearch (AWS ES) (@dpgaspar) +- [#12996](https://github.com/apache/superset/pull/12996) feat: Save datapanel state in local storage (@kgabryje) +- [#12865](https://github.com/apache/superset/pull/12865) feat(dashboard_rbac): dashboards API support for roles create/update + roles validation (@amitmiran137) +- [#12782](https://github.com/apache/superset/pull/12782) feat: reset metrics on dataset change (@pkdotson) +- [#12875](https://github.com/apache/superset/pull/12875) feat(dashboard_rbac): dashboard_view access enforcement (@amitmiran137) +- [#12887](https://github.com/apache/superset/pull/12887) feat(time-table): add row limit control for timeseries table (@maloun96) +- [#12909](https://github.com/apache/superset/pull/12909) feat: clear search on dataset change (@pkdotson) +- [#12840](https://github.com/apache/superset/pull/12840) feat: add separate endpoint to fetch function names for autocomplete (@betodealmeida) +- [#12858](https://github.com/apache/superset/pull/12858) feat(style-theme): add support for custom superset themes (@simcha90) +- [#12199](https://github.com/apache/superset/pull/12199) feat(native-filters): Add defaultValue for Native filters modal (@simcha90) +- [#12663](https://github.com/apache/superset/pull/12663) feat: request ids on API related endpoints (@dpgaspar) +- [#12716](https://github.com/apache/superset/pull/12716) feat(native-filters): apply scoping of native filters to dashboard (@simcha90) +- [#12609](https://github.com/apache/superset/pull/12609) feat: default timepicker to last week when dataset is changed (@pkdotson) +- [#12740](https://github.com/apache/superset/pull/12740) feat: Adding option to set_database_uri CLI command (@craig-rueda) +- [#12635](https://github.com/apache/superset/pull/12635) feat: add decorator to guard public APIs (@betodealmeida) +- [#12581](https://github.com/apache/superset/pull/12581) feat(bigquery): implement custom minute time grains (@villebro) +- [#11720](https://github.com/apache/superset/pull/11720) feat(db-engine-specs): add support for Postgres root cert (@villebro) +- [#12415](https://github.com/apache/superset/pull/12415) feat: new Slack dashboard (@betodealmeida) + +**Fixes** +- [#13300](https://github.com/apache/superset/pull/13300) fix: exception when saving dash (@amitmiran137) +- [#13284](https://github.com/apache/superset/pull/13284) fix(listview): preserve bulk selections when view mode is changed (@nytai) +- [#13289](https://github.com/apache/superset/pull/13289) fix(alerts): Handle None on results (@dpgaspar) +- [#12937](https://github.com/apache/superset/pull/12937) fix: chart keys in MultiLineViz (@rwspielman) +- [#13254](https://github.com/apache/superset/pull/13254) fix: style tweaks for inconsistent button spacing (@rusackas) +- [#13291](https://github.com/apache/superset/pull/13291) fix(home): missing key and invalid dates in Recents cards (@ktmud) +- [#12926](https://github.com/apache/superset/pull/12926) fix: add alert report timeout limits (@riahk) +- [#13283](https://github.com/apache/superset/pull/13283) fix(menu): links that result in 404s (@nytai) +- [#13245](https://github.com/apache/superset/pull/13245) fix: bulk select on card view (@lilykuang) +- [#13233](https://github.com/apache/superset/pull/13233) fix(viz): calendar heatmap granularity (@maloun96) +- [#13186](https://github.com/apache/superset/pull/13186) fix: SqlEditor_spec tests (@michael-s-molina) +- [#13222](https://github.com/apache/superset/pull/13222) fix(alert/report): alert modal loading dropdown options (@lilykuang) +- [#13122](https://github.com/apache/superset/pull/13122) fix: TimeTable average with nulls calculations (@pavlozt) +- [#13181](https://github.com/apache/superset/pull/13181) fix(explore): Fix downloading as image charts which use Mapbox (@kgabryje) +- [#13163](https://github.com/apache/superset/pull/13163) fix: Fixing pinot query generation for date format conversion from python datetime format to java simple date format (@fx19880617) +- [#13123](https://github.com/apache/superset/pull/13123) fix: add the untranslated text content of Chart page, Sql Editor page and some dashboard label in messages.pot (@cdmikechen) +- [#13211](https://github.com/apache/superset/pull/13211) fix(explore): Reset values in TextControl only when datasource changes (@kgabryje) +- [#13219](https://github.com/apache/superset/pull/13219) fix: Update display string when sqlalchemy doc config us changed (@hughhhh) +- [#13217](https://github.com/apache/superset/pull/13217) fix(native-filters): uncapitalize filter name (@amitmiran137) +- [#13160](https://github.com/apache/superset/pull/13160) fix: Grab datasets initially onMount (@hughhhh) +- [#13086](https://github.com/apache/superset/pull/13086) fix: accept null groupby in form data for timeseries table viz (@michellethomas) +- [#13173](https://github.com/apache/superset/pull/13173) fix(api): apply dashboard filter to get dash charts API (@dpgaspar) +- [#13178](https://github.com/apache/superset/pull/13178) fix(cross-filters): apply cross filters for all charts (@simcha90) +- [#13141](https://github.com/apache/superset/pull/13141) fix: handle lack of dynamic plugins (@suddjian) +- [#13153](https://github.com/apache/superset/pull/13153) fix: engines that don't support comments (@dpgaspar) +- [#12977](https://github.com/apache/superset/pull/12977) fix(alert/report): bulk select mode should be deactivated (@lilykuang) +- [#13180](https://github.com/apache/superset/pull/13180) fix(sqllab): menu link results in 404 (@nytai) +- [#13164](https://github.com/apache/superset/pull/13164) fix(native-filters): Apply range filter (@simcha90) +- [#13165](https://github.com/apache/superset/pull/13165) fix(native-filters): correct apply of native filter scopes (@simcha90) +- [#13154](https://github.com/apache/superset/pull/13154) fix(explore): Chart panel overflowing (@kgabryje) +- [#13120](https://github.com/apache/superset/pull/13120) fix: misspelling Erik Ritter (@etr2460) +- [#12955](https://github.com/apache/superset/pull/12955) fix(alert/report): add/edit modal issue (@lilykuang) +- [#13133](https://github.com/apache/superset/pull/13133) fix(explore): Certificate icon not displaying for certified metrics (@kgabryje) +- [#13147](https://github.com/apache/superset/pull/13147) fix(database): ensure pk_constraint is JSON serializable (@villebro) +- [#13138](https://github.com/apache/superset/pull/13138) fix(chart-data-api): support numeric temporal columns (@villebro) +- [#13090](https://github.com/apache/superset/pull/13090) fix(alerts): void query with numeric comparison (@dpgaspar) +- [#13109](https://github.com/apache/superset/pull/13109) fix(FilterBox): treat empty defaultValues as null (@ktmud) +- [#13094](https://github.com/apache/superset/pull/13094) fix: Fix switching viz type to and from Filter box (@kgabryje) +- [#13022](https://github.com/apache/superset/pull/13022) fix: Add some missing Chinese translation content, including superset-ui project (@cdmikechen) +- [#13000](https://github.com/apache/superset/pull/13000) fix(native-filters): set currentValue null when empty (@villebro) +- [#13061](https://github.com/apache/superset/pull/13061) fix: Update http error code from 400 to 403 for permission error (@duynguyenhoang) +- [#13029](https://github.com/apache/superset/pull/13029) fix(explore): Enable selecting an option not included in suggestions (@kgabryje) +- [#13076](https://github.com/apache/superset/pull/13076) fix: API tests, make them possible to run independently again (@dpgaspar) +- [#13051](https://github.com/apache/superset/pull/13051) fix: add config to disable dataset ownership on the old api (@dpgaspar) +- [#12931](https://github.com/apache/superset/pull/12931) fix: add required \* indicator to message content/notif method in alert/report modal (@riahk) +- [#13075](https://github.com/apache/superset/pull/13075) fix(ci): multiline regex in change detection (@villebro) +- [#13008](https://github.com/apache/superset/pull/13008) fix: Disabled state button transition time (@AAfghahi) +- [#13059](https://github.com/apache/superset/pull/13059) fix: sorting by saved metric (@villebro) +- [#13041](https://github.com/apache/superset/pull/13041) fix: timeout context manager on Windows (@betodealmeida) +- [#13042](https://github.com/apache/superset/pull/13042) fix: vertical scroll in query history (@betodealmeida) +- [#13026](https://github.com/apache/superset/pull/13026) fix: UI toast typo (@dpgaspar) +- [#13039](https://github.com/apache/superset/pull/13039) fix(build): black failing on master, add to required checks (@robdiciuccio) +- [#13024](https://github.com/apache/superset/pull/13024) fix: fix the untranslated text content of Dashboard page (@cdmikechen) +- [#13034](https://github.com/apache/superset/pull/13034) fix(ci): remove signature requirements for commits to master (@nytai) +- [#12999](https://github.com/apache/superset/pull/12999) fix: add alerts and report to default config (@dpgaspar) +- [#12945](https://github.com/apache/superset/pull/12945) fix: refresh dashboard list after bulk delete (@michael-s-molina) +- [#12923](https://github.com/apache/superset/pull/12923) fix: added text and changed margins (@AAfghahi) +- [#12966](https://github.com/apache/superset/pull/12966) fix: typo to apache/superset (@AAfghahi) +- [#12973](https://github.com/apache/superset/pull/12973) fix: SQL Lab editor height in Safari (@betodealmeida) +- [#12956](https://github.com/apache/superset/pull/12956) fix: SqlLab Run button fix (@AAfghahi) +- [#12953](https://github.com/apache/superset/pull/12953) fix: Detecting top scroll on Dashboard header (@kkucharc) +- [#12933](https://github.com/apache/superset/pull/12933) fix(viz): improve dtype inference logic (@villebro) +- [#12859](https://github.com/apache/superset/pull/12859) fix: Add inclusive and exclusive text for start date and end date (@maloun96) +- [#12930](https://github.com/apache/superset/pull/12930) fix(viz): bump table viz to fix ordering bug (@villebro) +- [#12906](https://github.com/apache/superset/pull/12906) fix: Config for dataset health check (@graceguo-supercat) +- [#12905](https://github.com/apache/superset/pull/12905) fix(chart): allow `null` for optional query object props (@ktmud) +- [#12898](https://github.com/apache/superset/pull/12898) fix: comment typo (@etr2460) +- [#12890](https://github.com/apache/superset/pull/12890) fix(explore): missing select when groupby without metrics (@villebro) +- [#12579](https://github.com/apache/superset/pull/12579) fix: Installing Superset Locally Using Docker Compose (@mephinet) +- [#12841](https://github.com/apache/superset/pull/12841) fix: correct title weights in UPDATING.md (@eschutho) +- [#12836](https://github.com/apache/superset/pull/12836) fix: remove explicit cursor closing for BQ (@betodealmeida) +- [#12625](https://github.com/apache/superset/pull/12625) fix(CI): properly configure cancel duplicates (@ktmud) +- [#12736](https://github.com/apache/superset/pull/12736) fix: Remove double tooltip from metric label (@kgabryje) +- [#12800](https://github.com/apache/superset/pull/12800) fix: rm grace period field for reports modal (@riahk) +- [#12821](https://github.com/apache/superset/pull/12821) fix: don't close cursor before closing connection (@betodealmeida) +- [#12811](https://github.com/apache/superset/pull/12811) fix(reports): handle exceptions properly in scope (@dpgaspar) +- [#12742](https://github.com/apache/superset/pull/12742) fix: Prevent dashboard with filter_values template cause incompatible indicator (@graceguo-supercat) +- [#12219](https://github.com/apache/superset/pull/12219) fix: tests errors and warnings - iteration 3 (#12212) (@michael-s-molina) +- [#12224](https://github.com/apache/superset/pull/12224) fix: tests errors and warnings - iteration 5 (#12212) (@michael-s-molina) +- [#12227](https://github.com/apache/superset/pull/12227) fix: tests errors and warnings - iteration 6 (#12212) (@michael-s-molina) +- [#12223](https://github.com/apache/superset/pull/12223) fix: tests errors and warnings - iteration 4 (#12212) (@michael-s-molina) +- [#12245](https://github.com/apache/superset/pull/12245) fix: tests errors and warnings - iteration 7 (#12212) (@michael-s-molina) +- [#12214](https://github.com/apache/superset/pull/12214) fix: test errors and warnings - iteration 2 (#12212) (@michael-s-molina) +- [#12706](https://github.com/apache/superset/pull/12706) fix: update latest tag action to use set-output (@eschutho) +- [#12658](https://github.com/apache/superset/pull/12658) fix(dashboard): top dropdown indicator in tab moved closer to the bottom edge (@kkucharc) +- [#12519](https://github.com/apache/superset/pull/12519) fix(native-filters): Reset column field for removed dataset (@agatapst) +- [#12524](https://github.com/apache/superset/pull/12524) fix(native-filters): Improve UI for long native filters names (@agatapst) +- [#12687](https://github.com/apache/superset/pull/12687) fix(native-filters): Show incompatible native filters indicator (@agatapst) +- [#12702](https://github.com/apache/superset/pull/12702) fix(load_examples): better fix for load_data (@betodealmeida) +- [#12692](https://github.com/apache/superset/pull/12692) fix: Adding gatsby remove serviceworker (@craig-rueda) +- [#12659](https://github.com/apache/superset/pull/12659) fix(explore): Error message not displayed correctly in Timeseries table chart (@kgabryje) +- [#12627](https://github.com/apache/superset/pull/12627) fix: Stabilize and deprecate legacy alerts module (@robdiciuccio) +- [#12638](https://github.com/apache/superset/pull/12638) fix(CI): remove duplicate hive and presto tests (@ktmud) +- [#12607](https://github.com/apache/superset/pull/12607) fix: save tabs when saving the query bug (@hughhhh) +- [#12240](https://github.com/apache/superset/pull/12240) fix: helm chart to use Bitnami chart (@liamnv) +- [#12567](https://github.com/apache/superset/pull/12567) fix: update helm chart repository (@palindrom615) +- [#12526](https://github.com/apache/superset/pull/12526) fix: ignore system files on import (@betodealmeida) +- [#12182](https://github.com/apache/superset/pull/12182) fix: Add Omnibar Feature Flag (@hughhhh) +- [#12252](https://github.com/apache/superset/pull/12252) fix: Displaying filter indicators (@agatapst) +- [#12360](https://github.com/apache/superset/pull/12360) fix: css templates modal cleanup: keep modal open on error, utilize useEffect (@riahk) +- [#12467](https://github.com/apache/superset/pull/12467) fix(alert/report): remove crontab guru link from add/edit modal (@lilykuang) +- [#12461](https://github.com/apache/superset/pull/12461) fix(releasing): svn dockerfile requirements path (@villebro) +- [#12412](https://github.com/apache/superset/pull/12412) fix: uneven list header padding (#12029) (@michael-s-molina) +- [#12432](https://github.com/apache/superset/pull/12432) fix(explore): fixed table header in chrome (@junlincc) +- [#12433](https://github.com/apache/superset/pull/12433) fix: update savedatasetmodal message (@hughhhh) +- [#12354](https://github.com/apache/superset/pull/12354) fix(api): prefix class names on events actions (@dpgaspar) +- [#12404](https://github.com/apache/superset/pull/12404) fix(explore): Prevent duplicated query by data table (@graceguo-supercat) + +**Others** +- [#13304](https://github.com/apache/superset/pull/13304) test: change data-test-id to data-test in FlashProvider (@yardz) +- [#13171](https://github.com/apache/superset/pull/13171) docs: Connecting to Trino Databases (@dungdm93) +- [#12238](https://github.com/apache/superset/pull/12238) chore: update instructions for Pinot in connecting to databases (@pablo-tech) +- [#12920](https://github.com/apache/superset/pull/12920) refactor: Bootstrap to AntD - Collapse (@michael-s-molina) +- [#13292](https://github.com/apache/superset/pull/13292) test: replace data-test-id with data-test (@ktmud) +- [#13220](https://github.com/apache/superset/pull/13220) test: Switching FlashProvider to function component & creating tests (@yardz) +- [#13235](https://github.com/apache/superset/pull/13235) refactor: Move raise_for_dashboard_access to security manager (@bolkedebruin) +- [#13212](https://github.com/apache/superset/pull/13212) refactor(api): csrf token on the new REST API (@dpgaspar) +- [#12870](https://github.com/apache/superset/pull/12870) test: fix schedules tests (@kstrz) +- [#12864](https://github.com/apache/superset/pull/12864) test: reports/commands_tests (@kstrz) +- [#13241](https://github.com/apache/superset/pull/13241) test: add Tests and Storybook for AsyncAceEditor (@michael-s-molina) +- [#13268](https://github.com/apache/superset/pull/13268) refactor(native-filters): Refactor filters config modal module (@simcha90) +- [#13258](https://github.com/apache/superset/pull/13258) chore(viz): bump superset-ui 0.17.10 (@villebro) +- [#13260](https://github.com/apache/superset/pull/13260) ci: always execute tests on non-PRs (@villebro) +- [#12122](https://github.com/apache/superset/pull/12122) refactor: Bootstrap to AntD - Alert (@michael-s-molina) +- [#13215](https://github.com/apache/superset/pull/13215) chore: bump node.js to v14 (@kgabryje) +- [#13250](https://github.com/apache/superset/pull/13250) refactor: add frontend debounce constants (@ktmud) +- [#13213](https://github.com/apache/superset/pull/13213) test: Tests and Storybook entry for the ModalTrigger Component (@geido) +- [#13176](https://github.com/apache/superset/pull/13176) test: Tests and Storybook entry for the Popover component (@geido) +- [#12773](https://github.com/apache/superset/pull/12773) chore: Tab title to be empty when creating a new tab (@geido) +- [#13002](https://github.com/apache/superset/pull/13002) refactor: Bootstrap to AntD - DropdownButton (@michael-s-molina) +- [#13098](https://github.com/apache/superset/pull/13098) refactor: HighligthedSQL into functional component with Typescript (@AAfghahi) +- [#13143](https://github.com/apache/superset/pull/13143) chore: add non-dev docker-compose workflow (@nytai) +- [#13185](https://github.com/apache/superset/pull/13185) chore: use shillelagh instead of gsheetsdb (@betodealmeida) +- [#13201](https://github.com/apache/superset/pull/13201) docs: Fix typo in pyathena connection string (@ctSkennerton) +- [#13179](https://github.com/apache/superset/pull/13179) test: Adding test and storybook to "Loading" component. (@yardz) +- [#13184](https://github.com/apache/superset/pull/13184) test: creates storybook and tests for Tooltip component (@michael-s-molina) +- [#13136](https://github.com/apache/superset/pull/13136) test(coverage): ignore database migrations on coverage reports (@willbarrett) +- [#13142](https://github.com/apache/superset/pull/13142) refactor: remove deprecated field from frontend usage (@suddjian) +- [#13087](https://github.com/apache/superset/pull/13087) perf: add lazy loading along react-router routes and router links in menu (@nytai) +- [#13139](https://github.com/apache/superset/pull/13139) style(list view): table sort icon alignment (@nytai) +- [#13149](https://github.com/apache/superset/pull/13149) chore: change test environment to jsdom (@michael-s-molina) +- [#13100](https://github.com/apache/superset/pull/13100) chore: upgrade to npm 7 and superset-ui 0.17.9 (@ktmud) +- [#13113](https://github.com/apache/superset/pull/13113) build: add more files to .dockerignore (@ktmud) +- [#13021](https://github.com/apache/superset/pull/13021) refactor(native-filters): decouple params from filter config modal (first phase) (@simcha90) +- [#13079](https://github.com/apache/superset/pull/13079) test(frontend): improves react-testing-library configuration (@michael-s-molina) +- [#13083](https://github.com/apache/superset/pull/13083) docs: Added a note about the ! prefix for breaking changes to CONTRIBUTING.md (@garden-of-delete) +- [#13069](https://github.com/apache/superset/pull/13069) chore: lock down npm to v6 (@ktmud) +- [#13063](https://github.com/apache/superset/pull/13063) style: fix typo in documentation (@dbz10) +- [#12981](https://github.com/apache/superset/pull/12981) docs(changelog): add entries for 1.0.1 (@villebro) +- [#12982](https://github.com/apache/superset/pull/12982) ci: skip cypress if no code changes (@villebro) +- [#12970](https://github.com/apache/superset/pull/12970) chore: add cypress required checks for branch protection (@eschutho) +- [#13014](https://github.com/apache/superset/pull/13014) chore: updates storybook to version 6.1.17 (@michael-s-molina) +- [#13004](https://github.com/apache/superset/pull/13004) chore: Swap Slack Url 2 more places (@srinify) +- [#12889](https://github.com/apache/superset/pull/12889) refactor(native-filters): refactor code of native filters (@simcha90) +- [#12991](https://github.com/apache/superset/pull/12991) docs: typo fix in release notes (@iercan) +- [#12873](https://github.com/apache/superset/pull/12873) refactor: TemplateParamsEditor.jsx converted from class to functional component (@lyndsiWilliams) +- [#12806](https://github.com/apache/superset/pull/12806) refactor: speed up conversion from dataframe to list of records (@TColl) +- [#12980](https://github.com/apache/superset/pull/12980) chore: rename action to docker-build (@eschutho) +- [#12969](https://github.com/apache/superset/pull/12969) chore: add more required checks for branch protection (@eschutho) +- [#12974](https://github.com/apache/superset/pull/12974) chore: swap slack url on ASF docs (@srinify) +- [#12972](https://github.com/apache/superset/pull/12972) chore: cleanup no-op Cypress (chrome) job (@ktmud) +- [#12968](https://github.com/apache/superset/pull/12968) chore: change name of lint action (@eschutho) +- [#12967](https://github.com/apache/superset/pull/12967) chore: remove example token to avoid confusion (@ktmud) +- [#12928](https://github.com/apache/superset/pull/12928) chore: add more required checks (@eschutho) +- [#12583](https://github.com/apache/superset/pull/12583) ci: conditionally skip python and frontend tests (@villebro) +- [#12180](https://github.com/apache/superset/pull/12180) test: Added some Cypress tests for Native Filters (@adam-stasiak) +- [#12936](https://github.com/apache/superset/pull/12936) test: fix table chart sort order E2E tests (@ktmud) +- [#12921](https://github.com/apache/superset/pull/12921) chore: rename duplicate build jobs (@eschutho) +- [#12885](https://github.com/apache/superset/pull/12885) test: speedup celery tests (@kstrz) +- [#12901](https://github.com/apache/superset/pull/12901) build(deps): Bump jinja2 to 2.11.3 (@robdiciuccio) +- [#12848](https://github.com/apache/superset/pull/12848) chore(dashboard_rbac): remove overlapping security tests (@amitmiran137) +- [#12894](https://github.com/apache/superset/pull/12894) chore: remove SIP-38 feature flag (@villebro) +- [#12694](https://github.com/apache/superset/pull/12694) chore: add required review on master (@eschutho) +- [#12738](https://github.com/apache/superset/pull/12738) refactor: Bootstrap to AntD - Radio (@michael-s-molina) +- [#12869](https://github.com/apache/superset/pull/12869) refactor: dbapi exception mapping for dbapi's (@dpgaspar) +- [#12884](https://github.com/apache/superset/pull/12884) chore(lint): fix pre-commit error (@villebro) +- [#12857](https://github.com/apache/superset/pull/12857) refactor(color-schemes): refactor setting of color schemes (@simcha90) +- [#12774](https://github.com/apache/superset/pull/12774) refactor: Bootstrap to AntD - Label (@michael-s-molina) +- [#10771](https://github.com/apache/superset/pull/10771) [Helm] Automate datasource import (@ejianu) +- [#12610](https://github.com/apache/superset/pull/12610) build: Skip loading example data from configs in CI (@robdiciuccio) +- [#12832](https://github.com/apache/superset/pull/12832) refactor: Bootstrap to AntD - Button (@michael-s-molina) +- [#12854](https://github.com/apache/superset/pull/12854) chore: bump superset-ui packages to v0.17.2 and v0.17.3 (@ktmud) +- [#12846](https://github.com/apache/superset/pull/12846) chore: Slight formatting fixes in exploring-data.mdx (@neilsmiller) +- [#12812](https://github.com/apache/superset/pull/12812) chore(native-filters): Connect indicator magnifier with Filter Bar (@agatapst) +- [#12828](https://github.com/apache/superset/pull/12828) chore: update capitalization guideline (@ktmud) +- [#12831](https://github.com/apache/superset/pull/12831) docs: fix config comment (@zsellami) +- [#12778](https://github.com/apache/superset/pull/12778) chore: Added documentation for 1.0 flags (@srinify) +- [#12743](https://github.com/apache/superset/pull/12743) docs: wrong port name in NOTES.txt (@maddyobrienjones) +- [#12816](https://github.com/apache/superset/pull/12816) docs: add Cape Crypto to users list (@leocape) +- [#12833](https://github.com/apache/superset/pull/12833) docs: fix broken link to spark. (@pr-lawrence) +- [#12772](https://github.com/apache/superset/pull/12772) refactor: change Windows new tab shortcut to ctrl + q (@lyndsiWilliams) +- [#10270](https://github.com/apache/superset/pull/10270) refactor: migrate table chart to new API (@ktmud) +- [#12815](https://github.com/apache/superset/pull/12815) chore: Upgrade react-dnd to 11.1.3 (@kgabryje) +- [#12710](https://github.com/apache/superset/pull/12710) docs: Add support for Hologres (@TimothyDing) +- [#12818](https://github.com/apache/superset/pull/12818) docs: add A3Data to users list (@neylsoncrepalde) +- [#12795](https://github.com/apache/superset/pull/12795) refactor: Updated tooltip help text in edit database > SQL Lab settings (@lyndsiWilliams) +- [#12813](https://github.com/apache/superset/pull/12813) chore: adding feature flags v1 documentation in Release Notes (@srinify) +- [#12748](https://github.com/apache/superset/pull/12748) chore(docs): update tox testing run to relevant python env (@amitmiran137) +- [#12754](https://github.com/apache/superset/pull/12754) chore: add breaking change to title regex (@eschutho) +- [#12749](https://github.com/apache/superset/pull/12749) docs: Adding design guidelines to CONTRIBUTING.md (@mihir174) +- [#12792](https://github.com/apache/superset/pull/12792) docs: fix 1.0.0 README images (v2) (@dpgaspar) +- [#12781](https://github.com/apache/superset/pull/12781) docs: 1.0.0 release notes update: media + feature flags (@garden-of-delete) +- [#12777](https://github.com/apache/superset/pull/12777) docs: update changelog for 1.0.0 (@eschutho) +- [#12626](https://github.com/apache/superset/pull/12626) docs: Updates to Superset Site for 1.0 (@srinify) +- [#12655](https://github.com/apache/superset/pull/12655) test(native-filters): scoping tree in native filters modal (@simcha90) +- [#12605](https://github.com/apache/superset/pull/12605) chore: upgrade Cypress to 6.2.1 (@ktmud) +- [#12218](https://github.com/apache/superset/pull/12218) refactor(explore): Enhance Dataset and Control panel Collapse components (@geido) +- [#12739](https://github.com/apache/superset/pull/12739) docs: Fixed typo on line 348 (@lyndsiWilliams) +- [#12693](https://github.com/apache/superset/pull/12693) docs: Remove gatsby-plugin-offline (@robdiciuccio) +- [#12615](https://github.com/apache/superset/pull/12615) test: oracle engine spec (@kstrz) +- [#12520](https://github.com/apache/superset/pull/12520) test: hive db engine spec (@kstrz) +- [#12737](https://github.com/apache/superset/pull/12737) chore: Replace Expired Join Slack Community URL With New One (@srinify) +- [#12718](https://github.com/apache/superset/pull/12718) docs: link fix in CONTRIBUTING.md (@ayanginet) +- [#12709](https://github.com/apache/superset/pull/12709) ci: use git submodules for (securely) using third party Github Actions (@TobKed) +- [#12678](https://github.com/apache/superset/pull/12678) chore: add a note about using Draft PR's importance (@amitmiran137) +- [#12673](https://github.com/apache/superset/pull/12673) docs(db engines): Updade DB2 connection prefix (@cabo40) +- [#12682](https://github.com/apache/superset/pull/12682) docs: updates updating.md with 1.0 (@dpgaspar) +- [#12455](https://github.com/apache/superset/pull/12455) chore: apply capitalization guidelines - iteration 9 (#12343) (@michael-s-molina) +- [#12666](https://github.com/apache/superset/pull/12666) chore: skip CI on draft PR (@amitmiran137) +- [#12594](https://github.com/apache/superset/pull/12594) test: presto engine spec tests (@kstrz) +- [#12539](https://github.com/apache/superset/pull/12539) test(hana): add test_convert_dttm (@kstrz) +- [#12633](https://github.com/apache/superset/pull/12633) docs(release): add some improvements from 1.0.0 release round (@villebro) +- [#12616](https://github.com/apache/superset/pull/12616) test: sqlite db engine spec (@kstrz) +- [#12642](https://github.com/apache/superset/pull/12642) docs: fix redirect from bad find/replace (@mistercrunch) +- [#12637](https://github.com/apache/superset/pull/12637) docs: README.md navigation changes for 1.0.0 (@garden-of-delete) +- [#12617](https://github.com/apache/superset/pull/12617) refactor: rename DbColumnType to GenericDataType (@ktmud) +- [#12171](https://github.com/apache/superset/pull/12171) refactor: Sync Scoping tree with Forms data (@simcha90) +- [#12413](https://github.com/apache/superset/pull/12413) chore(chart): Save modal select placeholder value (@nikolagigic) +- [#12591](https://github.com/apache/superset/pull/12591) docs(release): add vote thread to result template (@villebro) +- [#12570](https://github.com/apache/superset/pull/12570) refactor: extract to method is_user_admin (@amitmiran137) +- [#12571](https://github.com/apache/superset/pull/12571) chore: update contribution guide (@amitmiran137) +- [#12511](https://github.com/apache/superset/pull/12511) docs : release notes 1.0 (@garden-of-delete) +- [#12563](https://github.com/apache/superset/pull/12563) chore: upgrade CI runner to Ubuntu 20.04 (@ktmud) +- [#12534](https://github.com/apache/superset/pull/12534) build(cypress): Add Cypress parallelization with obfuscated record key (@robdiciuccio) +- [#12490](https://github.com/apache/superset/pull/12490) test: /postgres engine spec test coverage (@kstrz) +- [#12548](https://github.com/apache/superset/pull/12548) test: mysql engine spec (@kstrz) +- [#12510](https://github.com/apache/superset/pull/12510) build: fix emotion theme errors when npm link @superset-ui/core (@ktmud) +- [#12523](https://github.com/apache/superset/pull/12523) ci(cypress): disable failing test (@villebro) +- [#12405](https://github.com/apache/superset/pull/12405) chore: remove duplicate DashboardFilter class and change imports accordingly (@amitmiran137) +- [#12420](https://github.com/apache/superset/pull/12420) chore: Add owner field to the alerts list (@bkyryliuk) +- [#12394](https://github.com/apache/superset/pull/12394) build: add cancel-workflow-runs action locally (@ktmud) +- [#12267](https://github.com/apache/superset/pull/12267) docs: fix styles and add algolia search classes (@pkdotson) +- [#12020](https://github.com/apache/superset/pull/12020) build(deps): bump ini from 1.3.5 to 1.3.8 in /docs (@dependabot[bot]) +- [#12232](https://github.com/apache/superset/pull/12232) build(deps): bump urijs from 1.19.1 to 1.19.4 in /superset-frontend (@dependabot[bot]) +- [#11869](https://github.com/apache/superset/pull/11869) docs: reword and cleanup docs for local dev server (@ktmud) + ### 1.0.1 (Tue Feb 2 09:24:40 2021 +0000) - [#12872](https://github.com/apache/superset/pull/12872) feat(release): add github token to changelog script (#12872) (@dpgaspar) - [#12886](https://github.com/apache/superset/pull/12886) fix: allow users to reset their passwords (#12886) (@dpgaspar) diff --git a/RELEASING/changelog.py b/RELEASING/changelog.py index 1d83aad7d3624..109ff738ae904 100644 --- a/RELEASING/changelog.py +++ b/RELEASING/changelog.py @@ -26,12 +26,14 @@ import click try: - from github import BadCredentialsException, Github, PullRequest + from github import BadCredentialsException, Github, PullRequest, Repository except ModuleNotFoundError: print("PyGithub is a required package for this script") exit(1) SUPERSET_REPO = "apache/superset" +SUPERSET_PULL_REQUEST_TYPES = r"^(fix|feat|chore|refactor|docs|build|ci|/gmi)" +SUPERSET_RISKY_LABELS = r"^(blocking|risk|hold|revert|security vulnerability)" @dataclass @@ -65,15 +67,22 @@ class GitChangeLog: """ def __init__( - self, version: str, logs: List[GitLog], access_token: Optional[str] = None + self, + version: str, + logs: List[GitLog], + access_token: Optional[str] = None, + risk: Optional[bool] = False, ) -> None: self._version = version self._logs = logs + self._pr_logs_with_details: Dict[int, Dict[str, Any]] = {} self._github_login_cache: Dict[str, Optional[str]] = {} + self._github_prs: Dict[int, Any] = {} self._wait = 10 github_token = access_token or os.environ.get("GITHUB_TOKEN") self._github = Github(github_token) - self._superset_repo = "" + self._show_risk = risk + self._superset_repo: Repository = None def _fetch_github_pr(self, pr_number: int) -> PullRequest: """ @@ -81,6 +90,11 @@ def _fetch_github_pr(self, pr_number: int) -> PullRequest: """ try: github_repo = self._github.get_repo(SUPERSET_REPO) + self._superset_repo = github_repo + pull_request = self._github_prs.get(pr_number) + if not pull_request: + pull_request = github_repo.get_pull(pr_number) + self._github_prs[pr_number] = pull_request except BadCredentialsException as ex: print( f"Bad credentials to github provided" @@ -88,7 +102,7 @@ def _fetch_github_pr(self, pr_number: int) -> PullRequest: ) sys.exit(1) - return github_repo.get_pull(pr_number) + return pull_request def _get_github_login(self, git_log: GitLog) -> Optional[str]: """ @@ -108,21 +122,102 @@ def _get_github_login(self, git_log: GitLog) -> Optional[str]: self._github_login_cache[author_name] = github_login return github_login + def _has_commit_migrations(self, git_sha: str) -> bool: + commit = self._superset_repo.get_commit(sha=git_sha) + return any( + "superset/migrations/versions/" in file.filename for file in commit.files + ) + + def _get_pull_request_details(self, git_log: GitLog) -> Dict[str, Any]: + pr_number = git_log.pr_number + if pr_number: + detail = self._pr_logs_with_details.get(pr_number) + if detail: + return detail + pr_info = self._fetch_github_pr(pr_number) + + has_migrations = self._has_commit_migrations(git_log.sha) + title = pr_info.title if pr_info else git_log.message + pr_type = re.match(SUPERSET_PULL_REQUEST_TYPES, title) + if pr_type: + pr_type = pr_type.group().strip('"') + + labels = (" | ").join([label.name for label in pr_info.labels]) + is_risky = self._is_risk_pull_request(pr_info.labels) + detail = { + "id": pr_number, + "has_migrations": has_migrations, + "labels": labels, + "title": title, + "type": pr_type, + "is_risky": is_risky or has_migrations, + } + + if pr_number: + self._pr_logs_with_details[pr_number] = detail + + return detail + + def _is_risk_pull_request(self, labels: List[Any]) -> bool: + for label in labels: + risk_label = re.match(SUPERSET_RISKY_LABELS, label.name) + if risk_label is not None: + return True + return False + def _get_changelog_version_head(self) -> str: return f"### {self._version} ({self._logs[0].time})" + def _parse_change_log( + self, changelog: Dict[str, str], pr_info: Dict[str, str], github_login: str, + ): + formatted_pr = ( + f"- [#{pr_info.get('id')}]" + f"(https://github.com/{SUPERSET_REPO}/pull/{pr_info.get('id')}) " + f"{pr_info.get('title')} (@{github_login})\n" + ) + if pr_info.get("has_migrations"): + changelog["Database Migrations"] += formatted_pr + elif pr_info.get("type") == "fix": + changelog["Fixes"] += formatted_pr + elif pr_info.get("type") == "feat": + changelog["Features"] += formatted_pr + else: + changelog["Others"] += formatted_pr + def __repr__(self) -> str: result = f"\n{self._get_changelog_version_head()}\n" + changelog = { + "Database Migrations": "\n", + "Features": "\n", + "Fixes": "\n", + "Others": "\n", + } for i, log in enumerate(self._logs): github_login = self._get_github_login(log) + pr_info = self._get_pull_request_details(log) + if not github_login: github_login = log.author - result = result + ( - f"- [#{log.pr_number}]" - f"(https://github.com/{SUPERSET_REPO}/pull/{log.pr_number}) " - f"{log.message} (@{github_login})\n" - ) + + if self._show_risk: + if pr_info.get("is_risky"): + result += ( + f"- [#{log.pr_number}]" + f"(https://github.com/{SUPERSET_REPO}/pull/{log.pr_number}) " + f"{pr_info.get('title')} (@{github_login}) " + f"{pr_info.get('labels')} \n" + ) + else: + self._parse_change_log(changelog, pr_info, github_login) + print(f"\r {i}/{len(self._logs)}", end="", flush=True) + + if self._show_risk: + return result + + for key in changelog: + result += f"**{key}** {changelog[key]}\n" return result def __iter__(self) -> Iterator[Dict[str, Any]]: @@ -269,14 +364,20 @@ def compare(base_parameters: BaseParameters) -> None: help="The github access token," " if not provided will try to fetch from GITHUB_TOKEN env var", ) +@click.option("--risk", is_flag=True, help="show all pull requests with risky labels") @click.pass_obj -def change_log(base_parameters: BaseParameters, csv: str, access_token: str) -> None: +def change_log( + base_parameters: BaseParameters, csv: str, access_token: str, risk: bool +) -> None: """ Outputs a changelog (by PR) """ previous_logs = base_parameters.previous_logs current_logs = base_parameters.current_logs previous_diff_logs = previous_logs.diff(current_logs) logs = GitChangeLog( - current_logs.git_ref, previous_diff_logs[::-1], access_token=access_token + current_logs.git_ref, + previous_diff_logs[::-1], + access_token=access_token, + risk=risk, ) if csv: with open(csv, "w") as csv_file: