Pre-release features
在Streamlit,我们喜欢在保持稳定的同时快速前进。在我们最新的努力中,为了在不牺牲稳定性的情况下更快地前进,我们为勇敢无畏的用户提供了两种方式来尝试Streamlit的前沿功能:
Experimental Features
不太稳定的Streamlit功能有一个命名约定:st.experimental_。这种区别是我们附加到命令名称上的前缀,以确保它们的状态对每个人都是清晰的。
以下是每种命名约定所提供内容的简要概述:
- st: 这是我们的核心功能所在,比如
st.write和st.dataframe。如果我们对这些功能进行不兼容的更改,这些更改将逐步进行,并会有数月的公告和警告。 - experimental: 这是我们放置所有新功能的地方,这些功能可能会也可能不会最终进入Streamlit核心。这让你有机会在我们准备稳定其API之前几周或几个月尝试我们正在酝酿的下一个大项目。我们不知道这些功能是否有未来,但我们希望你能接触到我们正在尝试的一切,并与我们一起找出答案。
具有experimental_命名约定的功能是我们仍在开发或尝试理解的内容。如果这些功能成功,它们将在某个时候成为Streamlit核心的一部分。如果不成功,这些功能将在没有太多通知的情况下被移除。在实验阶段,功能的API和行为可能不稳定,可能会以不向后兼容的方式发生变化。
警告
实验性功能及其API可能会随时更改或移除。
The lifecycle of an experimental feature
- 一个功能被添加了
experimental_前缀。 - 该功能可能会随着时间的推移进行调整,可能会导致API/行为的中断。
- 如果成功,我们将该功能提升到Streamlit核心,并从
experimental_中移除:- a. 该功能的API稳定下来,并且该功能被克隆,不带
experimental_前缀,因此它同时存在于st和experimental_中。此时,用户在使用带有experimental_前缀的功能版本时会看到警告——但该功能仍然有效。 - b. 在某个时间点,带有
experimental_前缀的功能代码被移除,但仍然会有一个带有experimental_前缀的函数存根,显示带有适当说明的错误。 - c. 最后,在稍后的日期,
experimental_版本被移除。
- a. 该功能的API稳定下来,并且该功能被克隆,不带
- 如果不成功,该功能会在没有太多通知的情况下被移除,并且我们会在
experimental_中留下一个存根,显示带有指示的错误。
Nightly releases
除了实验性功能外,我们还提供了另一种尝试Streamlit最新功能的方式:夜间发布。
每天结束时(晚上🌛),我们的机器人会对最新的Streamlit代码运行自动化测试,如果一切看起来都很好,就会将它们发布为streamlit-nightly包。这意味着夜间构建包括我们所有最新的功能、错误修复和其他增强功能,这些功能在同一天就会进入我们的代码库。
这与官方版本有何不同?
官方的Streamlit版本不仅通过自动化测试,还经过严格的手动测试,而夜间版本仅进行自动化测试。重要的是要记住,夜间版本中引入的新功能通常不够完善。在我们的官方版本中,我们总是确保所有新功能都准备好迎接黄金时段。
如何使用夜间发布版本?
你只需要安装streamlit-nightly包:
pip uninstall streamlit
pip install streamlit-nightly --upgrade
警告
您不应该在同一个环境中同时安装streamlit和streamlit-nightly!
为什么我应该使用夜间发布版本?
因为你不能等待官方发布,而且你想帮助我们尽早发现错误!
为什么我不应该使用夜间发布版本?
虽然我们的自动化测试覆盖率很高,但仍然有很大的可能性在夜间代码中存在一些错误。
我可以选择安装哪个夜间发布版本吗?
如果您想使用特定版本,可以在我们的发布历史中找到版本号。像往常一样使用pip指定所需的版本:pip install streamlit-nightly==x.yy.zz-123456。
我可以比较不同版本之间的变化吗?
如果您想查看夜间版本的更改,可以使用GitHub上的比较工具。
还有问题吗?
我们的 论坛 充满了有用的信息和Streamlit专家。