-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce st.navigation and st.Page #8744
Conversation
## Describe your changes Combine all logic of the navigation (page url updates, mpa management), and put it in a class (V1AppNavigation). We create a layer above it that essentially pulls from the V1AppNavigation as an overengineering effort to set up for AppNavigation V2 ## Testing Plan - Original tests should pass - unit tests for AppNavigation. --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes Migrates pages are primarily managed in the `source_util` module to a `PagesManager` class. Because V2 can have a dynamic set of pages per session, the Pages Manager instance will live on the `AppSession`. For V1, we will leverage static variables/methods for page watching. ## Testing Plan - Original Unit tests are applied (with patches adjusted) - Unit tests are applied for the PagesManager component --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes From #8639, @raethlein made a good claim about the lock as well as some types to make things clear, so I addressed those here. ## Testing Plan - Type checks should pass - Existing tests should pass with lock behavior (we don't usually manage concurrency testing at the moment) --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes MPA v2 will introduce the concept of an active script hash where the active script is the current script running. This change does the following: - Adds the concept of Active Script Hash to the Pages Manager. By default, it returns the current page hash and doesn't set anything. - All widgets will leverage the Active Script Hash in calculating their id. We do this so that widgets can be associated with the script (and avoid duplicate issues where possible). - We will provide the active script hash as part of the forward message metadata. That way, we can associate the active script hash with every call (this is especially important for `Delta` messages. - Frontend will store the active script hash in the nodes ## Testing Plan - Added a python unit test for the active script hash setting in the forward message. - Open to ideas on how to test the widget id updates, but I think it's not quite feasible. - Frontend tests storage of active script hash in nodes --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes MPA v2 requires to understand which code is associated with the main script (or common script) or not. We can send the main script hash in the NewSession ## Testing Plan - Updated unit tests to include the main script hash - Added a test that verifies the main script hash is set correctly --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes Confirmed that the properties associated with the `updateReport` call are not needed. ## Testing Plan - Added a unit test to ensure the value is sent on new session --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
#8658) ## Describe your changes MPA v2 will present different implementations from previous versions. We will adopt a strategy design pattern in order to separate implementation from MPA v1 or v2. ## Testing Plan - Original unit tests from this feature branch should still apply --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes This change includes `st.Page` and `st.navigation` commands bringing us closer to the finish point for MPA v2. ## Testing Plan - Added associated unit tests - E2E Tests will be needed to test MPA end-to-end, but they will not be included in this PR to the feature branch. --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes There was a good recommendation to move position to an enum. Let's move it before committing the feature. ## Testing Plan - Updated Unit Tests --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes Others (Notebooks) uses `AppRoot.empty()`. To make things easier, I make the `mainScriptHash` keyword only. ## Testing Plan - Existing tests should be fine enough --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes Title says it all. Ensure `st.Page` is an argument to `switch_page` and `page_link` ## Testing Plan - Unit Tests for `page_link` - E2E Tests will be added for `switch_page` --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes If `st.set_page_config` is called, we should disregard the page information in the navigation call. ## Testing Plan - JS Unit Tests --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes We have found flaky situations where pages are set via `st.navigation` before the NewSession call is sent. This causes the NewSession message to retrieve pages it should not be expecting from the PagesManager. The easy solution here is to send the pages on the Script Started Event so that the NewSession has the pages at the time of the event. I believe there's a larger discussion on how we should be managing this. Likely, we should ensure information is happening at the right moment. ## Testing Plan - Python unit test updated. This is difficult to reproduce and therefore difficult to test. --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes Page Changes in MPAv2 are done via the `st.navigation` call. Informing of Pages Change is not helpful for the UI display. We also came to the conclusion that the concept of cache pages did not matter for PagesManager as well. So I moved everything back to source_util to produce a cleaner system. In testing this, I noticed some inconsistencies due to the fact that the default strategy of the PagesManager is not resetting. So I did the following: 1. I moved the DefaultStrategy reset to be set on every every test to make things easy. 2. I then found out that when MPA switches from V1->V2 the initial script information (page hash and page name) got lost, which suggested this should be in the root PagesManager and not tied to just the V2 strategy. 3. I found a better name than "initial" I would describe it better as the "intent", which is to indicate to the PagesManager a page is being requested. ## Testing Plan - Python Tests for both strategies --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes These changes allow SidebarNav to display NavSections. <img width="380" alt="image" src="https://github.com/streamlit/streamlit/assets/69432/39f7a879-931b-49e8-8e47-f9a4dc1015fe"> - The key difference in the screenshots is the absence of the x - There's some very minor margin changes ## Testing Plan - JS unit tests are provided - E2E Tests are updated to reflect the new images for MPA v1 mainly. --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
e2e_playwright/__snapshots__/linux/hello_app_test/hello_app-animation_demo_page[chromium].png
Outdated
Show resolved
Hide resolved
I am excited to see MPAv2 landing! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly giving this a rubber stamp after skimming the code to sanity check it since most of the effort to review this code was already done in PRs into the feature branch, but this LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍 I added a couple of nits, but I quickly skipped through a couple of parts of the PR.
It might be good to deactivate the hello_app_test
temporarily until someone has rewritten the hello app to use MPA v2. Always having them rerun once doesn't feel like a great state and slows down our CI job. Probably just renaming it to hello_app_test_deactivated.py
would ignore it from running.
As a follow-up after the MPA v2 release, I still think it would be doable to remove V1 and "simulate" the old behavior with the v2 implementation.
e2e_playwright/__snapshots__/linux/mpa_basics_test/mpa-sidebar_nav[dark_theme-webkit].png
Outdated
Show resolved
Hide resolved
frontend/cypress/snapshots/linux/2x/hostframe.spec.js/theme-message-before.snap.png
Outdated
Show resolved
Hide resolved
## Describe your changes Feedback has beens received on #8744, and instead of issuing a commit, I created a PR with the changes associated. Changes include: - Additional comments for clarity - Renaming of tests/comments for clarity - Making fields internal for `st.Page` and exposing as properties for read-only access. - Not sending the full title but the page name in host communication (avoids double "Streamlit" being added - Fixing an (v1 -> v2) edge case that requires the system to know MPA v2. - Ensure pages are watched after every successful run. ## Testing Plan - Unit tests/E2E tests are updated and should pass. --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes Adds `url_path` as a feature of `st.Page`. This change does three things: 1. Offers the ability to specify the `url_path` (it will strip any preceding slashes). 2. If not specified, the `url_path` will be inferred first from the file or function name, then from the title 3. The script hash is based on the url_path, which simplifies everything. Note: I intentionally kept the default page as defined rather than a hash of "" to avoid any potential issues. ## Testing Plan - Unit Tests and E2E Tests are updated and include tests for the url_path. --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
…runs (#8802) ## Describe your changes Fragments do not maintain context of the active script hash. This leads to widget state loss. This change adds the active script hash to the fragment implementation on initialization, and runs the same fragment. ## Testing Plan - Added Unit tests to show the run_with_active_script_hash is called correctly. - Added an E2E test to show widget state is not lost. --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
The hello_app test is failing the changed files test due to the hacky approach of setting up the hello files. The changed files does not retry, and so the test is a little flaky. This does succeed in the full playwright suite. We will address the hello app next, but going to merge here. |
With this pull request getting merged, when can we expect this feature to become available for production use? |
@onewesong we're planning a full release next week which will include it. You can use via |
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [streamlit](https://streamlit.io) ([source](https://togithub.com/streamlit/streamlit), [changelog](https://docs.streamlit.io/develop/quick-reference/changelog)) | `1.35.0` -> `1.38.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/streamlit/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/streamlit/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/streamlit/1.35.0/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/streamlit/1.35.0/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>streamlit/streamlit (streamlit)</summary> ### [`v1.38.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.38.0) [Compare Source](https://togithub.com/streamlit/streamlit/compare/1.37.1...1.38.0) <!-- Release notes generated using configuration in .github/release.yml at 1.38.0 --> #### What's Changed ##### Breaking Changes 🛠 - Remove pydantic fix in bootstrap by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9257 - Remove experimental cached widget replay logic by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9305 ##### New Features 🎉 - \[RFC] Only rerun script on reconnect if a script run was interrupted by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#9083 - Add syntax highlighting for diff by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9172 - Support `to_pandas` method to return a Pandas Series by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9175 - Add support for Kubernetes / directory with mounted file style secrets by [@​sfc-gh-mochen](https://togithub.com/sfc-gh-mochen) in [streamlit/streamlit#9078 - Extend dataframe-handling support for collection-like types by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9205 - Add support for Snowpark Pandas Index by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9222 - Add data handling support for Polars by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9230 - Add data handling support for xarray by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9235 - Add data handling support for Dask by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9240 - Add data handling support for Ray by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9256 - Type-hint improvements for [#​8717](https://togithub.com/streamlit/streamlit/issues/8717) and [#​7801](https://togithub.com/streamlit/streamlit/issues/7801) by [@​Asaurus1](https://togithub.com/Asaurus1) in [streamlit/streamlit#9048 - Allow configurable expansion depth for `st.json` by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#8984 - Add data handling support for DB API 2.0 by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9274 - Add data handling support for Pydantic instances by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9290 - Add support for dataframe interchange protocol by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9289 - Add line wrapping to st code by [@​sfc-gh-tteixeira](https://togithub.com/sfc-gh-tteixeira) in [streamlit/streamlit#8558 ##### Bug Fixes 🐛 - Make the magic support for-else, while-else, try-else, try-except\*, and match by [@​whitphx](https://togithub.com/whitphx) in [streamlit/streamlit#9110 - Fix copy-buttons in dialogs by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9130 - Support theming in embed better by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#9103 - Fix [#​8638](https://togithub.com/streamlit/streamlit/issues/8638) by [@​kajarenc](https://togithub.com/kajarenc) in [streamlit/streamlit#9101 - Bugfix: Multiple Stale Maps by [@​sfc-gh-nbellante](https://togithub.com/sfc-gh-nbellante) in [streamlit/streamlit#9092 - Bugfix: Upgrade plotly.js to resolve hover tooltip bug by [@​sfc-gh-nbellante](https://togithub.com/sfc-gh-nbellante) in [streamlit/streamlit#9144 - Make ScriptControlException inherit from BaseException again by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9167 - Print deprecation warnings when dialog/fragment functions are called by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#9170 - Revert "Remove fragment_ids_this_run from script run context ([#​8953](https://togithub.com/streamlit/streamlit/issues/8953))" and tweaks some types by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#9178 - Allow adding Plotly toolbar buttons by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9190 - Ignore all headings in markdown labels by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9189 - Don't raise FragmentStorageKeyError for auto_rerun fragments by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9183 - Fix ghost tabs issue in fragments by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9186 - Fix empty anchor scrolling by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9206 - Only clear up fragment-related stale widgets by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9215 - Fix issue with empty Azure OpenAI chunk by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9234 - Fix grey-out for selectbox index columns by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9231 - Fix options support for `dict.items()` by [@​lukasmasuch](https://togithub.com/lukasmasuch) in [streamlit/streamlit#9241 - When clearing forward queue add a stopped for rerun message by [@​dannyopts](https://togithub.com/dannyopts) in [streamlit/streamlit#9187 - Do not preserve children of a block if the block type changes by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#9276 - Unstale just updated fragments by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9285 - Fix logo + sidebar sizing interaction by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#9298 ##### Other Changes - Print bottom container always at the end of the app content by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9129 - Remove a type ignore by [@​wyattscarpenter](https://togithub.com/wyattscarpenter) in [streamlit/streamlit#9149 - Use material icons in streamlit hello page nav and favicons by [@​snehankekre](https://togithub.com/snehankekre) in [streamlit/streamlit#9225 - Fix nested fragment stale elements by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9246 - Use overloads to make the return types of st.feedback more precise. (with type tests) by [@​wyattscarpenter](https://togithub.com/wyattscarpenter) in [streamlit/streamlit#9216 #### New Contributors - [@​wyattscarpenter](https://togithub.com/wyattscarpenter) made their first contribution in [streamlit/streamlit#9149 - [@​sfc-gh-mochen](https://togithub.com/sfc-gh-mochen) made their first contribution in [streamlit/streamlit#9078 - [@​dannyopts](https://togithub.com/dannyopts) made their first contribution in [streamlit/streamlit#9187 **Full Changelog**: streamlit/streamlit@1.37.1...1.38.0 ### [`v1.37.1`](https://togithub.com/streamlit/streamlit/releases/tag/1.37.1) [Compare Source](https://togithub.com/streamlit/streamlit/compare/1.37.0...1.37.1) <!-- Release notes generated using configuration in .github/release.yml at 1.37.1 --> **Full Changelog**: streamlit/streamlit@1.37.0...1.37.1 ### [`v1.37.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.37.0) [Compare Source](https://togithub.com/streamlit/streamlit/compare/1.36.0...1.37.0) <!-- Release notes generated using configuration in .github/release.yml at 1.37.0 --> #### What's Changed ##### New Features 🎉 - Stacking options - `st.bar_chart` by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#8945 - Support `graphviz.sources.Source` object for `st.graphviz_chart` by [@​sfc-gh-kbregula](https://togithub.com/sfc-gh-kbregula) in [streamlit/streamlit#8993 - Add support for material icons in markdown by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8889 - Fix lag when closing dialog by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9023 - Stacking options - `st.area_chart` by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#8992 - Add feedback widget by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#8915 - READ only headers and cookies by [@​kajarenc](https://togithub.com/kajarenc) in [streamlit/streamlit#8976 - De-experimentalize st.fragment by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#9019 - De-experimentalize st.dialog by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9020 ##### Bug Fixes 🐛 - Show fragment errors in fragment-path for main app runs by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#8868 - Fix st.rerun fragment thread reuse issue by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#8798 - Support non-unix style paths for MPA loading by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#8988 - Set theme hash properly on load if a custom theme is active to start by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#8989 - Don't remove session refs on fragment runs by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#9010 - Improvements to NumberInput formatting by [@​sfc-gh-nbellante](https://togithub.com/sfc-gh-nbellante) in [streamlit/streamlit#9035 - Hide all Particles upon printing by [@​sfc-gh-nbellante](https://togithub.com/sfc-gh-nbellante) in [streamlit/streamlit#9053 - Fix: MPA support of custom themes by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#8994 - `st.switch_page` clears non-embed query params by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#9059 - Fix secrets.toml Windows Path Bug by [@​sfc-gh-nbellante](https://togithub.com/sfc-gh-nbellante) in [streamlit/streamlit#9061 - Bugfix: Fixes two st.map width bugs by [@​sfc-gh-nbellante](https://togithub.com/sfc-gh-nbellante) in [streamlit/streamlit#9070 - Validate the path using Tornado before performing checks by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#8990 - Reset ctx.current_fragment_id to last ID instead of None by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#9114 ##### Other Changes - Update emojis used for validation by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8923 - Add support for numpy 2.x by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8940 - Remove a bunch of deprecated experimental features by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#8943 - Migrate custom icons from material outlined to rounded by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8998 - Remove old config options - part 1 by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#9005 - Remove old config options - part 2 by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#9013 - Remove `deprecation.showPyplotGlobalUse` config option by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#9018 - Fix broken `st.navigation` docstring by [@​mahotd](https://togithub.com/mahotd) in [streamlit/streamlit#9027 - Update the feedback widget design by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#9094 #### New Contributors - [@​Dev-iL](https://togithub.com/Dev-iL) made their first contribution in [streamlit/streamlit#8947 - [@​quant12345](https://togithub.com/quant12345) made their first contribution in [streamlit/streamlit#8968 - [@​mahotd](https://togithub.com/mahotd) made their first contribution in [streamlit/streamlit#9027 **Full Changelog**: streamlit/streamlit@1.36.0...1.37.0 ### [`v1.36.0`](https://togithub.com/streamlit/streamlit/releases/tag/1.36.0) [Compare Source](https://togithub.com/streamlit/streamlit/compare/1.35.0...1.36.0) <!-- Release notes generated using configuration in .github/release.yml at 1.36.0 --> #### What's Changed ##### Breaking Changes 🛠 - Remove legacy caching logic by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8737 - Deprecate the `experimental_allow_widgets` caching parameter by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8817 ##### New Features 🎉 - Allow passing on_change_callback for CustomComponents by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#8633 - Use raw number for number column overlay and copy by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8708 - Introduce st.navigation and st.Page by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#8744 - Make st.write call st.json to display Streamlit secrets object by [@​snehankekre](https://togithub.com/snehankekre) in [streamlit/streamlit#8659 - Streamlit Charts: Customizable Axis Labels by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#8846 - Add vertical alignment parameter to `st.columns` by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8568 - Add `icon` parameter to st.expander by [@​snehankekre](https://togithub.com/snehankekre) in [streamlit/streamlit#8716 - Use the default widget height for non-stacked checkbox & toggle widgets by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8835 - Horizontal `st.bar_chart` by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#8877 ##### Bug Fixes 🐛 - Remove non-existent kwargs in ast.Call() call by [@​JelleZijlstra](https://togithub.com/JelleZijlstra) in [streamlit/streamlit#8711 - Don't instantiate the LocalSourcesWatcher if file watching is disabled by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#8741 - Make the session state writes disallowed message more generic by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8720 - Ensure SessionInfo is set before performing an action by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#8779 - Unify the minimum height of most element by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8797 - Don't allow writing widgets outside the fragment by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#8756 - Fix element replay regression for plotly charts by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8770 - Improve exception text when selectbox index larger than options by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8775 - Prevent images in markdown to go beyond the container width by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8794 - Ensure current page script hash and active script hash is correct at script start by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#8830 - Revert "Handle Altair resolve_scale ([#​8497](https://togithub.com/streamlit/streamlit/issues/8497))" by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#8845 - Update custom-components import paths and tests by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#8666 - Raise exception if st.Page is given an invalid path by [@​vdonato](https://togithub.com/vdonato) in [streamlit/streamlit#8878 ##### Other Changes - Explicitly export experimental_dialog by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#8728 - Remove default value for title of dialog_decorator by [@​raethlein](https://togithub.com/raethlein) in [streamlit/streamlit#8729 - Docstrings for 1.35.0 (and type consistency for charts) by [@​sfc-gh-dmatthews](https://togithub.com/sfc-gh-dmatthews) in [streamlit/streamlit#8740 - Migrate streamlit hello to MPAv2 by [@​kmcgrady](https://togithub.com/kmcgrady) in [streamlit/streamlit#8806 - Fix `use_container_width` docstring when default is `True` by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8809 - Allow protobuf v5 as dependency by [@​LukasMasuch](https://togithub.com/LukasMasuch) in [streamlit/streamlit#8627 - Fix: Remove title appending · Streamlit by [@​mayagbarnes](https://togithub.com/mayagbarnes) in [streamlit/streamlit#8900 #### New Contributors - [@​JelleZijlstra](https://togithub.com/JelleZijlstra) made their first contribution in [streamlit/streamlit#8711 **Full Changelog**: streamlit/streamlit@1.35.0...1.36.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sawyerh/highlights). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM4LjU2LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Describe your changes This PR is the culmination of all of the work associated with Multipage apps V2. Specifically this PR includes: - abstractions on the frontend and backend for navigation and page management respectively. - command for st.navigation and st.Page ## GitHub issues closes streamlit#8759 ## Testing Plan - JS and Python End to End tests are included - E2E Tests are included for the MPA v2 features --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
## Describe your changes This PR is the culmination of all of the work associated with Multipage apps V2. Specifically this PR includes: - abstractions on the frontend and backend for navigation and page management respectively. - command for st.navigation and st.Page ## GitHub issues closes streamlit#8759 ## Testing Plan - JS and Python End to End tests are included - E2E Tests are included for the MPA v2 features --- **Contribution License Agreement** By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.
Describe your changes
This PR is the culmination of all of the work associated with Multipage apps V2. Specifically this PR includes:
GitHub issues
closes #8759
Testing Plan
Contribution License Agreement
By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.