- When: Every other Tuesday 8.15AM Pacific Time
- Where:
jovyan
Zoom (pwd: c0JZTHlNdS9Sek9vdzR3aTJ4SzFTQT09)
Name | Affiliation | GitHub |
---|---|---|
Matt Craig | MSU Moorhead | @mwcraig |
Itay Dafna | Netflix | @ibdafna |
Paddy Mullen | independent | @paddymul |
Martin Renou | QuantStack | @martinRenou |
Trung Le | QuantStack | @trungleduc |
David Brochart | QuantStack | @davibrochart |
- Propose a SciPy widgets BoF? Matt will propose one
- [Paddy]:
- Feedback about the cookiecutter
- [Itay]:
- Triage
- Update team compass to show new meeting time/cadence
- SSC updates
- [David]:
- Move ypywidgets to ipywidgets? We'll try to have feature-parity with basic ipywidgets and come back to resume discussions.
- Propose a SciPy widgets BoF? Matt will propose one
- Decision on cookiecutter -- put a deprecation of the JS flavor to a vote by the council, and focus on the TS flavor as the supported way.
- Suggestion by Martin is to wait until
ypywidgets
support more of the front-ends the currentipywidgets
supports. - Next meeting: Tue, June 20
Name | Affiliation | GitHub |
---|---|---|
Itay Dafna | Netflix | @ibdafna |
Matt Craig | MSU Moorhead | @mwcraig |
Martin Renou | QuantStack | @martinRenou |
-
[Itay]: we should update the meeting time on the
team-compass
repo to reflect 8:15am start instead of 8:30am PT. -
Discussions from JupyterCon:
- Typescript cookiecutter not working?
- Should we settle on one cookitcutter repo instead of two?
- Good opportunity to try the alternative to cookiecutter suggested by Steve --
copier
?
-
[Martin] JupyterLab 4 / Lumino 2 update jupyter-widgets/ipywidgets#3752
-
Next meeting: Tue, June 6
Name | Affiliation | GitHub |
---|---|---|
Itay Dafna | Netflix | @ibdafna |
Jason Grout | Databricks | @jasongrout |
David Brochart | QuantStack | @davidbrochart |
Paul Ivanov | Project Jupyter | @ivanov |
- New meeting time:
- 8:15am-9:00am, PT, every two weeks, starting on the 23rd of May
- SSC+EC update at JupyterCon
-
Create one or two slides per subproject
-
Highlight one or two recent or near future developments/releases you are excited about (anytime from 2022 to present time)
-
Highlight one or two things you’d like other Jupyter subprojects to know for coordination/discussion/collaboration
-
ipywidgets 8 released last summer
-
Name | Affiliation | GitHub |
---|---|---|
Itay Dafna | Netflix | @ibdafna |
Maarten Breddels | Widgetti | @maartenbreddels |
- Future meeting time still being decided - will update later today after we get more responses.
Name | Affiliation | GitHub |
---|---|---|
Itay Dafna | Netflix | @ibdafna |
Paul Ivanov | Project Jupyter | @ivanov |
Jason Grout | Databricks | @jasongrout |
Suhyun Kim | Dspractice.com | @gitskim |
- Weekly Meeting
- Itay sent out doodle
- SSC meeting
- Reviewed JEP JEP
- Looked at kernel startup handshake
- meeting notes
- Triage
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Nick Bollweg | Georgia Tech | @bollwyvl |
Itay Dafna | Netflix | @ibdafna |
- Weekly Meeting
- Sparse attendance recently
- [Itay] Send out a new survey for a 30 minute meeting
- Triage
- Meeting was canceled due to low attendance
Name | Affiliation | GitHub |
---|---|---|
Kellie Tay | Bloomberg | @kellietay |
Jason Grout | Databricks | @jasongrout |
- Triage
Name | Affiliation | GitHub |
---|---|---|
Kellie Tay | Bloomberg | @kellietay |
Jason Grout | Databricks | @jasongrout |
Supriya Khandekar | Bloomberg | @supriyakhandekar |
Steve Purves | Curvenote | @stevejpurves |
Nick Bollweg | Georgia Tech | @bollwyvl |
- Triage
- Nick:
ipykernel
,widgetsnbextension
,jupyterlab_widgets
dependencies- on
@jupyterlite/pyodide-kernel
, looking to optimize on-the-wire deps - adding more hacks to avoid downloading things over ~100kb
- on
Name | Affiliation | GitHub |
---|---|---|
Kellie Tay | Bloomberg | @kellietay |
Jason Grout | Databricks | @jasongrout |
Supriya Khandekar | Bloomberg | @supriyakhandekar |
Itay Dafna | Netflix | @ibdafna |
- ypywidgets
- Triage
Name | Affiliation | GitHub |
---|---|---|
Maarten Breddels | @maartenbreddels | |
Kellie Tay | Bloomberg | @kellietay |
Jason Grout | Databricks | @jasongrout |
-
PRs
-
Discuss
Name | Affiliation | GitHub |
---|---|---|
Itay Dafna | Netflix | @ibdafna |
Maarten Breddels | @maartenbreddels | |
Sylvain Corlay | QuantStack | @QuantStack |
Kellie Tay | Bloomberg | @kellietay |
- SSC meeting report by Itay:
- Nothing specific regarding widgets.
- Sylvain: xwidgets protocol 2.1
- Sylvain: widgets schemas should be JSON schemas
- RTC Widgets
- Schedule a demo of jupytercad and ywidgets
- Maarten Breddels
- jupyter-widgets/ipywidgets#3692
- jupyter-widgets/ipywidgets#3689
- Plans to do a release after fixing the above
- Kellie to follow up on documentation discussion from the London workshop
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Netflix | @ibdafna |
- [Itay] Run another meeting time poll that gives available, available if necessary, and not available options
- What does success look like for ipywidgets in 2023?
- ipflow: https://github.com/ipyflow/ipyflow#integration-with-ipywidgets
- PR Review
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Maarten Breddels | @maartenbreddels | |
Itay Dafna | Netflix | @ibdafna |
Nick Bollweg | ||
- jupyter-widgets/ipywidgets#3673
- Meeting time
- Keeping notes
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
Kellie Tay | Bloomberg | @kellietay |
Itay Dafna | Netflix | @ibdafna |
-
Maarten Breddels made a release. Hooray!
-
Meetings through the end of the year
- Canceling ipywidgets dev meeting until January 10, 2023. Happy new year!
- Itay will send an email to council and post on the team compass a poll for a new meeting time that may work better.
-
Upcoming conferences:
- PyData Seattle (April)
- PyCon US (April)
- JupyterCon (May)
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Supriya Khandekar | Bloomberg LP | @supriyakhandekar |
Kellie Tay | Bloomberg | @kellietay |
Maarten Breddels | @maartenbreddels |
-
Adjust weekly meeting time
-
Maarten Breddels: Should I make a release?
-
SSC
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
Steve Purves | Curvenote | @stevejpurves |
Supriya Khandekar | Bloomberg LP | @supriyakhandekar |
Maarten Breddels | @maartenbreddels | |
Itay Dafna | Netflix | @ibdafna |
-
[Vidar] SSC: Itay is our SSC representative! One-year term.
- Need to update widgets team compass with council membership, representative, and term length
-
[Steve] Questions: Thebe moving to KernelWidgetManager, examples of loading widget state
- In ipywidgets 8, we use Lumino widgets
- Loading widget state:
-
Jupyter Executive Council elections ongoing this week - if you are on a Jupyter council, please vote!
-
PyData Global: Dec 1-3 https://pydata.org/global2022/
-
Triage: https://github.com/jupyter-widgets/ipywidgets/pulse
- [Maarten] jupyter-widgets/ipywidgets#3642
- for future: we could have traits opt in to batch update
- jupyter-widgets/ipywidgets#3630
- jupyter-widgets/ipywidgets#3640
- jupyter-widgets/ipywidgets#3641
- [Maarten] jupyter-widgets/ipywidgets#3642
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Netflix | @ibdafna |
- SSC: Vidar is tallying the results
- EC election
- Useful if Brian, Darian, and Fernando post their interest answers
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
Maarten Breddels | - | @maartenbreddels |
Itay Dafna | Netflix | @ibdafna |
Pete Blois | @blois | |
Martin Renou | QuantStack | @martinRenou |
Supriya Khandekar | Bloomberg | @supriyakhandekar |
Kellie Tay | Bloomberg | @kellietay |
-
Maarten: issue
- jupyter-widgets/ipywidgets#3635
- Maarten to open a PR to revert and possibly a second PR to reenable
-
Pete: rich output progress: https://github.com/jupyterlab/richoutput-js
- https://github.com/blois/richoutput-js/tree/comms_n_widgets
- a stab at a renderer which supports widgets on top of it: https://github.com/blois/portable-widget-manager/tree/main
-
Martin: Voila removing the custom widget manager and reusing the JupyterLab
KernelWidgetManager
manager- voila-dashboards/voila#1249
- Needs jupyter-widgets/ipywidgets#3561 for the
Output
widget. Vidar reviewing.
-
Vidar: SSC representative: email went out on Saturday to the Jupyter Widgets council to vote for an SSC representative. Deadline is Sunday, 20 Nov 2022, anywhere on earth.
- Jason to post an email about having 1-year terms for SSC rep
-
Jason: EC election starting very soon: https://jupyter.org/governance/intro.html, https://jupyter.org/governance/bootstrapping_executive_council.html
-
triage:
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
- Notes in team-compass: https://github.com/jupyter-widgets/team-compass
- Jupyter-widgets SSC representative
- Election of SSC representative
- if there are two people, then any form that chooses between the two people and has a "blank" option works
- if there are more than two people, the ballot is ranked-choice.
- Election run for 1 week
- Election of SSC representative
- reviewers: https://github.com/jupyter-widgets/ipywidgets/pulls
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Netflix | @ibdafna |
- SSC: Vidar is tallying the results
- EC election
- Useful if Brian, Darian, and Fernando post their interest answers
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
Maarten Breddels | - | @maartenbreddels |
Itay Dafna | Netflix | @ibdafna |
Pete Blois | @blois | |
Martin Renou | QuantStack | @martinRenou |
Supriya Khandekar | Bloomberg | @supriyakhandekar |
Kellie Tay | Bloomberg | @kellietay |
-
Maarten: issue
- jupyter-widgets/ipywidgets#3635
- Maarten to open a PR to revert and possibly a second PR to reenable
-
Pete: rich output progress: https://github.com/jupyterlab/richoutput-js
- https://github.com/blois/richoutput-js/tree/comms_n_widgets
- a stab at a renderer which supports widgets on top of it: https://github.com/blois/portable-widget-manager/tree/main
-
Martin: Voila removing the custom widget manager and reusing the JupyterLab
KernelWidgetManager
manager- voila-dashboards/voila#1249
- Needs jupyter-widgets/ipywidgets#3561 for the
Output
widget. Vidar reviewing.
-
Vidar: SSC representative: email went out on Saturday to the Jupyter Widgets council to vote for an SSC representative. Deadline is Sunday, 20 Nov 2022, anywhere on earth.
- Jason to post an email about having 1-year terms for SSC rep
-
Jason: EC election starting very soon: https://jupyter.org/governance/intro.html, https://jupyter.org/governance/bootstrapping_executive_council.html
-
triage:
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
- Notes in team-compass: https://github.com/jupyter-widgets/team-compass
- Jupyter-widgets SSC representative
- Election of SSC representative
- if there are two people, then any form that chooses between the two people and has a "blank" option works
- if there are more than two people, the ballot is ranked-choice.
- Election run for 1 week
- Election of SSC representative
- reviewers: https://github.com/jupyter-widgets/ipywidgets/pulls
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Bloomberg LP | @ibdafna |
Supriya Khandekar | Bloomberg LP | @supriyakhandekar |
Kellie Tay | Bloomberg LP | @kellietay |
- Itay: ipydatagrid - Looking into moving from bloomberg org to the jupyter-widgets org, with the same maintainers
- Minimal es6 api: Jason to create repo in JupyterLab org
- Pete and Jason can collaborate, will arrange a time
- reviewers: https://github.com/jupyter-widgets/ipywidgets/pulls
- Vidar: SSC nomination process
- EC nomination process
- JupyterCon 2022: May 10-12
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Bloomberg LP | @ibdafna |
Pete Blois | @blois | |
Maarten Breddels | @maartenbreddels |
-
Widgets workshop followup items and takeaways: #16
- Minimal es6 module
- Jason has a separate repo that he hasn't pushed yet
- Pete and Jason will work on a sample extension for JupyterLab
- precommit PR
- Almost there. Working on getting the doc build to not time out (doc build might be flaky?)
- Documentation work
- Docs contrib PR: jupyter-widgets/ipywidgets#3616
- We should have a more advanced example (e.g. TODO app)
- Comm replacement ipython/comm#1
- Maarten experimented with implementing this in Solara
- Typing in traitlets ipython/traitlets#788
- Fixing comm target does not exist: proceed on the JEP
- Tech stack discussion takeaways
- Do not move away from traitlets - give it another go with the performance improvements
- Clear documentation on minimal api for widgets and widget managers
- Encourage people to not use jquery, but we should still include it
- A way to gracefully removing jquery is to lazily load jquery on view creation if you know it is going to be needed
- Rich es6 outputs may allow us experiment with radically different tech stacks
- AMD modules should still be produced, even after notebook 6 is deprecated. It may be really difficult to move from AMD to es6 because it would be hard to split out the widget base class to be loaded dynamically from the environment.
- Investigate feasibility of deploying es6 modules in the future
- Traitlets performance
- maartenbreddels/traitlets#1
- ipython/traitlets#777 (not at workshop)
- Contrib repository
- Discussion around using jupyter-contrib, or the Jovyan repo
- Minimal es6 module
-
SSC and EC election
- Vidar to run the Jupyter Widgets SSC nomination process
Name | Affiliation | GitHub |
---|---|---|
Itay Dafna | Bloomberg LP | @ibdafna |
Jason Grout | Databricks | @jasongrout |
Kellie Tay | Bloomberg LP | @kellietay |
Supriya Khandekar | Bloomberg LP | @supriyakhandekar |
Don Jayamanne | Microsoft | @donjayamanne |
- Introductions
- Supriya Khandekar, working at a Bloomberg visualization team. Attending the workshop next week.
- Kellie Tay, working at a Bloomberg visualization team. Attending the workshop next week.
- Widgets workshop (and agenda)
- https://docs.google.com/spreadsheets/d/1KMB3Mda1MNVXzjSm30eNO7qIW7Oj2z3nYBFY5l-sZ0A/edit#gid=998190500
- There is a coordination Whatsapp group. Contact Itay to join the group if you are participating in the workshop.
- PRs
Name | Affiliation | GitHub |
---|---|---|
Eric Gentry | Anaconda | @ericsnekbytes |
Martin Renou | QuantStack | @martinRenou |
Itay Dafna | Bloomberg LP | @ibdafna |
-
PRs
- jupyter-widgets/ipywidgets#3569
- jupyter-widgets/ipywidgets#3584 This PR needs some changes -> Itay is working on making a PR against the branch Does it impact performances?
-
Widgets workshop planning meeting:
-
Jupyter Notebook 7 (JupyterLab-based) is coming
- What is the plan for nbextension support in ipywidgets and custom widgets libraries?
- Should we switch from building an Notebook extension to building a more general extension that could be used by VSCode/Colab etc?
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
William Stein | SageMath, Inc. | @williamstein |
Eric Gentry | Anaconda | @ericsnekbytes |
Itay Dafna | Bloomberg LP | @ibdafna |
Maarten Breddels | Maarten Breddels | @maartenbreddels |
- Migration guide
- William comment: sagemathinc/cocalc#6128 (comment)
- action item: william will make a little PR to the migration guide just mentioning that there are additional complexities due to the target changing, and the ipywidgets npm package numbers are not just "7 and 8".
- Documentation guide:
- moved from es5 to es2017 - mention in migration guide for developers, that the target needs to generate es6 classes in both the main changelog and the user widget migration guide
- BaseManager used to be parameterized in typescript, but not anymore? Check and document in upgrading guide
- version number of js packages are different
@jupyter-widgets/base
version 4 is ipywidgets 7, version 6 is for ipywidgets 8.- On the es5->es2017 transition:
- using ipywidgets in webpack is fine, but the ipywidgets js running in nodejs has problems running es6
- William comment: sagemathinc/cocalc#6128 (comment)
- Widgets workshop
- 18-21 Oct, Bloomberg London office. You're invited!
- No need to register if attending remotely, since that's entirely for food, guest passes, etc.
- Pause for guest introductions
- Eric Gentry - working on nbclassic transition between notebook 6 and notebook 7
- Jeremy (https://github.com/jupyter-naas)
- Review of PRs/issues
- Possible docs updates
- API docs
- What args? What's the event format?
- See this Qt API doc for qt's QTextEdit or this JavaFX API doc for TextField, this MDN doc for HTML input
- See this or this other page for examples of high level technical design documents/overviews
- For reference, current IntSlider and Button docs
- Traits autogenerating docs: https://github.com/widgetti/ipyvolume/blob/1c08f9fdde4219be873f7c45e02ecec2540d5876/ipyvolume/widgets.py#L584
- Framework for documentation types: https://documentation.divio.com/
- API docs
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Bloomberg LP | @ibdafna |
Don Jayamanne | VS Code | @donjayamanne |
Martin Renou | QuantStack | @martinRenou |
Sylvain Corlay | QuantStack | @SylvainCorlay |
- Widget workshop
- 18 Oct - 21 Oct
- Funding is available: deadline for funding requests is 10 days from now
- Registration
- We'll try to do some things virtual
- Publish blog post -
- Tweet / retweet from Jupyter
- Discourse
- Widgets chat channel
- Widgets council list
- People [elided]
- 8.0.x PRs
Blog post draft: https://blog.jupyter.org/ipywidgets-8-0-df1f22ef8278
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
-
Adding a trove classifier for Jupyter widgets
- Similar to adding the PR adding JupyterLab classifiers here
- List of current classifiers
- Perhaps these classifiers?
Framework :: Jupyter :: Jupyter Widgets :: 7
Framework :: Jupyter :: Jupyter Widgets :: 8
- Or should it be singular
Jupyter Widget
? (Jason thinks plural). Examples of each:- Plural
- JupyterLab :: Extensions :: Themes
- JupyterLab :: Extensions :: Mimerenderers
- Topic :: Text Processing :: Filters
- Topic :: Text Editors :: Word Processors
- Topic :: Terminals
- Topic :: Software Development :: Libraries
- Topic :: Software Development :: Assemblers
- Topic :: Multimedia :: Sound/Audio :: Mixers
- Topic :: Desktop Environment :: Window Managers
- Singular
- Programming Language :: Python :: Implementation :: CPython
- Programming Language :: APL
- Operating System :: BeOS
- Plural
-
ipywidgets 8.0.x: https://github.com/jupyter-widgets/ipywidgets/milestone/37
- Jason still to merge changes in jupyter-widgets/ipywidgets#3569
-
blog post
- Jason to put up a draft of the blog post about 8.0
-
2-factor auth turned on for jupyter-widgets github org
-
workshop
-
Jupyter Widgets Council
- October 3 target date
-
VS Code supporting ipywidgets 8
- microsoft/vscode-jupyter#11217
- Previous exploration at jupyter-widgets/ipywidgets#3524
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Pete Blois | @blois |
- 8.0.x milestone
- jupyter-widgets/ipywidgets#3567 What is next?
- To fully resolve issue, I think it would need a note in the migration guide?
- jupyter-widgets/ipywidgets#3569 - Maybe a unit test?.
- jupyter-widgets/ipywidgets#3567 What is next?
- Blog post? Last item on 8.0.0 milestone
- Jason make a medium post for editing and dressing up
- Also post on discourse
- Pete's proposal:
Here's the public/stable API that Colab exposes to outputs: https://github.com/googlecolab/colabtools/blob/main/packages/outputframe/lib/index.d.ts
- It hangs off of window which I know doesn't work well for JupyterLab.
- The API is intended to be bare-bones. A single typings file, no dependencies on any libraries or frameworks.
- The API is intended to be as strongly typed as possible, to attempt to avoid vagaries that can lead to breaking changes.
- Our implementation uses JS scopes to hide private members from the objects exposed, to prevent use of unintentionally exposed members. This is for compatibility, it's not considered a security boundary.
Discussion of an improved %%javascript
magic and I mention how an API like Colab's could be exposed in a portable manner that would work in JupyterLab as well.
ipython/ipython#13376 (comment)
Bokeh is a good example of what we see elsewhere: https://github.com/bokeh/bokeh/blob/0d0f40b7b0be373c2a58a2b99241de98ea49dba2/src/bokeh/core/_templates/autoload_nb_js.js#L121
They look for window.Jupyter and if present attempt to load classic notebook implementation modules via requirejs.
Where is this discussion most appropriate? Pete did an implementation of this JS api in a Jlab extension: https://github.com/blois/js-module-renderer
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Pete Blois | @blois | |
Itay Dafna | Bloomberg LP | @ibdafna |
- 8.0.x milestone for 8.0 compat issues
- Went through 8.0.x milestone
- widget community workshop: "The future of ipywidgets"
- London, proposed date 17th October, 4 days, can be shifted
- More ideas:
- ipywidgets in iframes
- A clear comm protocol (like Colab?) https://github.com/googlecolab/colabtools/blob/main/packages/outputframe/lib/index.d.ts
- Some people may want to participate remotely
- More ideas:
- London, proposed date 17th October, 4 days, can be shifted
- controls version number: jupyter-widgets/ipywidgets#3560
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Martin Renou | QuantStack | @martinRenou |
Pete Blois | @blois | |
Maarten Breddels | @maartenbreddels | |
Jeremy Tuloup | QuantStack | @jtpio |
- ipywidgets 8.0
- Quick recap of release
- [Done] Check to make sure there is a cap on the dependencies for ipywidgets 8
- Quick recap of release
TODO issues:
-
Mappings as selection options: mutually exclusive decisions:
- jupyter-widgets/ipywidgets#3556
- jupyter-widgets/ipywidgets#3557
- Should
Dropdown(options={'a': 1, 'b': 2})
work? It worked in 7.x, we removed it in 8.x, but you can useDropdown(options={'a': 1, 'b': 2}.items())
. It causes people's code to break - should we reintroduce being able to pass in a dict?- Removed because dict used to be unordered
- Removed also because the ownership model is unclear - if you change the dict, the options don't change.
- Should
- Decision: Merge jupyter-widgets/ipywidgets#3557 to reverse the removal
-
What to allow through sanitizer?
- jupyter-widgets/ipywidgets#3565
- Allow 'class', but make sure there is a high bar for future sanitizer additions, and ideally a standardized way for how to consider such requests. Compare to lab? Some better "gold standard"?
- jupyter-widgets/ipywidgets#3565
-
Handle
KernelWidgetManager
in the JupyterLabOutputModel
- jupyter-widgets/ipywidgets#3561
- Probably ok
-
Are these kind of typings changes backwards compatible? Fixes?
-
Restore
.widgets
?:- jupyter-widgets/ipywidgets#3562
- PR: jupyter-widgets/ipywidgets#3122
- Possible fix
- Should we have a deprecated .widgets and .widget_types on Widget for backwards compatibility?
- Yes, let's make the upgrade easier with a deprecated getter
- Maarten doing a PR
- jupyter-widgets/ipywidgets#3562
-
TODO issues: https://github.com/jupyter-widgets/ipywidgets/milestone/30
-
precommit: generally positive
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
A. T. Darian | QuantStack | @afshin |
Sylvain Corlay | QuantStack | @sylvaincorlay |
- ipywidgets 8
- jupyter-widgets/ipywidgets#3540
- jupyter-widgets/ipywidgets#3541
- New doc PR:
- Removes the building custom widget guide from the index until it can be updated to use the js cookiecutter (or ts cookie cutter updated)
- Updating the widget author migration guide:
- point to js cookiecutter
- update language around 8.0
- add a note about the public path update in the js cookiecutter
- Blog post
- Jason can work on it late this week or early next week. Any help will speed this up, of course :).
- Native iterators in Lumino 2
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
A. T. Darian | QuantStack | @afshin |
Matt Craig | Minnesota State University Moorhead | @mwcraig |
Itay Dafna | Bloomberg LP | @ibdafna |
- ipywidgets 8
- ipywidgets 8 testing
- Want positive confirmation about ipywidgets 8 working in various environments
- Jason tested JupyterLab and basic html manager embedding
- Things to test:
- Test HTML manager in 3rd party widget docs and nbconvert (jupyter-widgets/ipywidgets#3536) - OutputWidget, styling
- Test ipywidgets with JupyterLab (including old version, 1, 2, 3.0.0)
- Want positive confirmation about ipywidgets 8 working in various environments
- PRs needing review:
- jupyter-widgets/ipywidgets#3539
- Vidar to add commits linking changelog and migration guide and adding, for example, file upload migration material to migration guide
- jupyter-widgets/widget-cookiecutter#87
- jupyter-widgets/ipywidgets#3539
- Blog post: Vidar will draft a paragraph for extension authors about you no longer going to need to update 3rd party libs every time lab has a major release. After the next release :)
- ipywidgets 8 testing
- Lumino 2
- Request for help (
jupyterlab/team-compass
) - Lumino 2 project board
- JupyterLab widget manager may need a major upgrade? It will certainly need code changes to deal with the JLab 4 API changes
- We'll have to decide between tradeoffs:
- bump base by a minor version, with the caveat that .luminoWidget is either Lumino 1 or 2, with the idea that most people will be compatible
- bump base by a major version, and libraries that are okay with either lumino 1 or 2 just make the dependency an or (||).
- Request for help (
- Widget workshop
- ideally 3-5 days?
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Itay Dafna | Bloomberg LP | @ibdafna |
William Stein | SageMath/CoCalc | @williamstein |
Jason Grout | Databricks | @jasongrout |
Martin Renou | QuantStack | martinRenou |
-
ipywidgets 8
- #3528 - I made one tweak, but William still had a request for a change.
-
Jeremy is working on a Voila PR to convert to ipywidgets 8 and a jlab based framework voila-dashboards/voila#846. Also moving ipyvolume to ipywidgets 8 widgetti/ipyvolume#411
-
Martin
- moving dependency of ipykernel to the new comm package
- https://github.com/martinRenou/comm
- ipython/ipykernel#973
- jupyter-widgets/ipywidgets#3533
- jupyter-xeus/xeus-python#548
- Is this backwards compatible, at least so that we can release it with 8.1?
- We can remove the ipykernel dependency in 8.1
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
William Stein | SageMath/CoCalc | @williamstein |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Matt Craig | Minnesota State University Moorhead | @mwcraig |
- ipywidgets 8
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
William Stein | SageMath/CoCalc | @williamstein |
Matt Craig | Minnesota State University Moorhead | @mwcraig |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Itay Dafna | Bloomberg | @ibdafna |
-
Report on Scipy and the tutorial there
- Went really well
- Twice we had some serious technical issues with connecting computers, etc., but attendees probably didn't even notice.
- Not much changed from last year:
- JupyterLite
- Widgets 8
- Building an application
- Probably about 20 people there, so way down from most years
- Jupyter is still the big thing
- Papyri talk by Matthias was excellent
- VegaFusion by Jon Mease is an ipywidget!
- JDAViz (scsci-provided platform for web images) is widget-based. Based on glue, etc.
- No widget sprint, Matt worked on bqplot and other things, though. There was a little Jupyter sprinting as well.
- Went really well
-
- Went over open PRs. Some decisions:
- Will add this to docs: jupyter-widgets/ipywidgets#3257
- Other decisions made in the individual issues/PRs
- Went over open PRs. Some decisions:
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
William Stein | SageMath/CoCalc | @williamstein |
- Changes since last meeting:
- jupyter-widgets/ipywidgets#3501 - User migration docs merged.
- jupyter-widgets/ipywidgets#3508 - webpack public path for AMD modules improvements
- jupyter-widgets/ipywidgets#3510 - Backwards compatability for description_tooltip via deprecation
Remaining tasks 8.0:
- jupyter-widgets/ipywidgets#3455 - Make a diff of the spec that is readable on RTD
- jupyter-widgets/ipywidgets#3429 - Migration plan for frontends
(william) Community question:
-
thoughts about jupyter-widgets/ipywidgets#3516 "I am not sure how this could be solved unless we drastically change ipywidgets' architecture."
- discussed in the jupyter server meeting
- ipywidgets uses comms, but comms exist outside ipywidgets, and have unknown usage that can't be completely replaced by rtc.
-
JupyterLite discussion: cool new features for docs.
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Matt Craig | Minnesota State University Moorhead | @mwcraig |
Meeting canceled
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
William Stein | SageMath/CoCalc | @williamstein |
Itay Dafna | Bloomberg | @ibdafna |
-
8.0:
- User migration docs 7.x->8.0 jupyter-widgets/ipywidgets#3501
-
william: for what it is worth, I'm working on finally implementing custom messages from the browser to the kernel here sagemathinc/cocalc#6011 Also buffers: sagemathinc/cocalc#6022
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Matt Craig | Minnesota State University Moorhead | @mwcraig |
Vidar T Fauske | JP Morgan Chase | @vidartf |
William Stein | SageMath/CoCalc | @williamstein |
-
Tutorial: use jupyterlite?
- See jupyter-widgets/ipywidgets#3491 (and the rendered docs at https://ipywidgets--3491.org.readthedocs.build/en/3491/)
-
7.7.1: Jason to release in the next day or two
-
8.0: Coordinate over Gitter, and check in about possibly releasing Friday
-
PyData London sprint:
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Matt Craig | Minnesota State University Moorhead | @mwcraig |
Martin Renou | QuantStack | @martinRenou |
William Stein | SageMath/CoCalc | @williamstein |
Itay Dafna | Bloomberg | @ibdafna |
- update wiki page: https://github.com/jupyter/jupyter/wiki/Jupyter-Widgets
- Add "Documentation" column to the widget table
- Add ipywidgets to the text above, then let the table be sorted
- Release 7.7.1
- Question about
titles
onTab
andAccordion
-- is this a list or a tuple? - Status of several packages with respect to version 8 support:
ipyleaflet
-- open PR that allows ipywidgets 8 only (see js dependencies).- Will this support
ipywidgets
7
and8
, or just8
? Both
- Will this support
bqplot
-- Open PR but it is out-of-date:- Will this support
ipywidgets
7
and8
, or just8
? Both 7 and 8. - Should use version
6
instead of5
for@jupyter-widgets/base
, see this line. - Should use
5
instead of4
for@jupyter-widgets/controls
- Currently uses a custom scales package -- this PR needs to merger first, I'm guessing: bqplot/bqscales#49
- Will this support
bqscales
-- a dependency ofbqplot
. Some fixes needed:- Will this support
ipywidgets
7
and8
, or just8
? Both 7 and 8 - Should use version
6
instead of5
for@jupyter-widgets/base
, see this line.
- Will this support
ipympl
-- Open PR but may be incomplete:- It looks like this still imports
phosphor
instead oflumino
.
- It looks like this still imports
ipytree
-- No PR yet.- Follow the migration guide to open a PR.
ipycanvas
-- needs a pull request.- Follow the migration guide to open a PR.
sidecar
-- PR is open.- Per this comment one commit needs to be reverted before merging.
pythreejs
-- PR is open, but- Will this support
ipywidgets
7
and8
, or just8
? Just 8 - Need to remove
rc1
frompackage.json
before merging.
- Will this support
ipycytoscape
-- 🎉 works! 🎉- Not sure why, though, see https://github.com/cytoscape/ipycytoscape/blob/master/package.json#L60 which doesn't include the latest
@jupyter-widgets/base
- Expected, notebook and lab serve up whatever they have.
- Not sure why, though, see https://github.com/cytoscape/ipycytoscape/blob/master/package.json#L60 which doesn't include the latest
ipyevents
-- 🎉 works! 🎉- Not sure why, though, see https://github.com/mwcraig/ipyevents/blob/main/package.json#L47 which doesn't include the latest
@jupyter-widgets/base
- Not sure why, though, see https://github.com/mwcraig/ipyevents/blob/main/package.json#L47 which doesn't include the latest
- jupyter-widgets/ipyleaflet#988 - this change takes out the hardcoded public paths, would love to propagate to other widget packages
- border vs overflow attribute changes result from last time
- The new comm echo was causing an issue in newer versions of Lab (execution state would go wonky). Will be fixed in next release of Lab: jupyterlab/jupyterlab#12616
- Documentation
- Make interactive examples with JupyterLite. Use the JupyterLite-sphinx extension
- https://github.com/phoebe-project?language=jupyter+notebook
- http://linear.ups.edu/fcla/section-DM.html
- https://sagecell.sagemath.org/
- https://github.com/executablebooks/thebe
- https://jupyterlite-sphinx.readthedocs.io/en/latest/
- [william] what about a "Gallery" like matplotlib has but for ipywidgets? Like we have for interact in sage: https://wiki.sagemath.org/interact (these are of course actually using ipywidgets)
- https://alanmbarr.com/blog/four-types-software-documentation/
- https://doc.sagemath.org/ is like this, IMHO...
- https://dash.plotly.com/layout
- Lacking a gallery
- Qt reference docs are very detailed: https://doc.qt.io/qt-6/qtreewidget.html
- Change "low level tutorial" to "low level explanation"
- Include tutorial video in landing page
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Bloomberg | @ibdafna |
- PRs/issues for 8.0: https://github.com/jupyter-widgets/ipywidgets/milestone/30
- Community Workshop:
- Tutorial: 07/12/2022, 8:00am-12:00pm CDT, The Jupyter Interactive Widget Ecosystem, Matthew Craig, Itay Dafna, Mariana Meireles, Youness Bennani, Ian Hunt-Isaak
- Can we have a widgets 8 release by June 17, which is when the tutorial instructions are due?
- I think so!
- Databricks supports ipywidgets! https://docs.databricks.com/notebooks/ipywidgets.html
- Borders vs overflow attributes: in order to have the possibility to adjust borders independently, we went with border_left/right/top/bottom, with convenience properties to set the border. For the overflow attribute, we went with our normal convention of preferring the single shorthand CSS notation over individual properties.
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
William Stein (until 10am PDT due to https://sites.google.com/view/vantageseminar, slides: https://math.mit.edu/~drew/vantage/BhargavaSlides.pdf) | CoCalc | @williamstein |
Itay Dafna | Bloomberg | @ibdafna |
-
PRs/issues for 8.0: https://github.com/jupyter-widgets/ipywidgets/milestone/30
-
I would be interested in a very quick discussion of jupyter-widgets/ipywidgets#3114 since something similar is at the top of my personal todo list for cocalc. (I want this more for https://cocalc.com/share, but it's the same problem.)
- on roadmap?: definitely not, due to this being jupyter classic, and we are moving to jupyterlab, which already solves this issue, for the most part.
- what about nbconvert / publishing
- nbconvert is aware of widgets; save widget state.
- e.g., this is used by our docs. displayed using html manager
- what if the widget state is BIG (say 50MB), e.g., 3d graphics and buffers? 2d plots + bqplot -- see this all the time. blows up size of notebook.
- we originally had all notebooks saved every widgets, and this was not optimal due to extensive interactive use and no garbage collection, so notebooks would rapidly increase in size
- then we made it off by default.
- make it very explicit when you want to save this way.
- related discussion: sidecar files. jupytext does this.
- and generally what scares you about this PR? If anything?
- Maarten has "Solara"...
- Subtle definition of "live widget". View counter.
- But in cocalc since it garbage collects if not displayed anywhere.
- Browser memory and file size are both big concerns.
- What about screenshot? Widget's responsibility. Or serialize dom...
- [william] Thanks!
-
ipydatagrid ipywidgets 8.0 upgrade: jupyter-widgets/ipydatagrid#282
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
William Stein | CoCalc | @williamstein |
Itay Dafna | Bloomberg | @ibdafna |
-
William: I implemented binary buffers for cocalc's ipywidgets frontend, and now k3d works pretty well at scale. But I have a question for devs I got stuck on: namely -- how does the widget manager know that all the comm messages needed to create the view have been received? How does it predict the future? This stumps me.
- Messages are serialized over the iopub channel. Each message should be processed fully before later messages are processed
-
Pruning the widget tree for persistence
- Maarten Breddels implemented pruning at some point
- Python version here: https://github.com/jupyter-widgets/ipywidgets/blob/master/python/ipywidgets/ipywidgets/embed.py
-
ipywidgets 8.0
- Several PRs updating webpack infrastructure: jupyter-widgets/ipywidgets#3465, jupyter-widgets/ipywidgets#3464
- current diff of model specs between 7 and 8 (
git diff 7.x -- packages/schema/jupyterwidgetmodels.latest.md
): https://gist.github.com/jasongrout/07d52b85aaffe994db0e2a0c018a6c78- Why do border and overflow adopt different conventions between the overarching value vs the individual values?
- GH best attempt: https://github.com/jupyter-widgets/ipywidgets/compare/7.x...master#diff-76c58c499131f42cddfc4b58686947ab4bc1c76e3e291ab06516109e9a9c1ce3
- Update the schema header for ipywidgets 8.x
- Summarize changes in the release notes
- [ ]
Continuing discussion from last time about post 8.0:
- font-awesome - William wrote a jquery plugin that simulates a font-awesome and manually adds the font-awesome look-alikes icons in cocalc
- We could explicitly support, say 100 icons that cover most icons third party widgets are currently using, and the manager is responsible for providing those icons in a way that is consistent with the platform. This makes it easier for widget implementors to support the icons without having to explicitly use fontawesome. (william: I really like this proposal.)
- typeset - depends on mathjax? - should be a method on the manager
- Add it as a minor release in the base manager interface
-
William: another quick question -- what about a list of jupyter clients that support widgets? E.g., I was recently testing and learned that datalore does now.
- https://www.jetbrains.com/dataspell/
- datalore.jetbrains.com
-
Add a table to the docs with links to frontends that implement ipywidgets?
- do in such a way that is in no way an endorsement
- put it on a wiki.
- another table of third-party ipywidgets
-
Vidar: porting pythreejs to ipywidgets 7 and 8
-
Jason: looking at updating docs with diff, look at todo items
-
William: porting k3d to cocalc
Community workshop proposal for ipywidgets:
- October 2022 or Jan 2023
- Paris, London, San Francisco, Berlin
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Pete Blois | @blois | |
William Stein | CoCalc | @williamstein |
Blaec Bejarano | CoCalc |
-
es6 vs backbone extend
- Currently ipywidgets 7.x and 8.x are generating es6 classes (not backbone.extend)
- https://github.com/googlecolab/colab-cdn-widget-manager/blob/main/src/swizzle.ts - bridges between backbone extend and es6 classes. Just wrap the class being exposed with swizzle() and it can be constructed via ES6 new or backbone's constructor.
- k3d uses backbone.extend
- Pythreejs also uses backbone.extend
- Vidar made a note in the migration guide about migrating from backbone.extend
-
Remaining work for 8.0
- jupyter-widgets/ipywidgets#3455 - blocker for 8.x - documenting spec differences
- Add trimmed down readme file
- Merged #3405, please add more things as you see them.
- Potential final release next week
- Vidar investigating the es6 migration
-
Long-term API
- Lumino is a dependency
- Lifecycle methods - can we prefer native methods that external lifecycle events can call
- jupyter-services is a dependency
- font-awesome - William wrote a jquery plugin that simulates a font-awesome and manually adds the font-awesome look-alikes icons in cocalc
- typeset - depends on mathjax? - should be a method on the manager
- assumptions about DOM and CSS
- Theming - should widgets be using jupyterlab variables directly?
- Could define only jupyter widgets variables, then have the jlab manager define those
- Lumino is a dependency
Third-party widgets
- ipycytoscape
- pythreejs
- ipyleaflet
- cadquery
- ipyvuetify
- ipymaterialui
- ipycanvas
- bqplot
- plotly
- nglviewer
- ipydatagrid
- k3d
- ipyslickgrid
- qgrid
- ipyvolume
- ipysheet
See https://www.npmjs.com/browse/depended/@jupyter-widgets/base for hundreds more.
Python to JS translater: https://github.com/sagemathinc/jsage (JPython, inside of JSage, is BSD 2-clause)
- William Stein presenting on ipywidgets in CoCalc
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Bloomberg | @ibdafna |
-
William Stein presenting on ipywidgets in Cocalc on 17 May.
- Jason will advertise on Gitter, Discourse, JLab meeting
-
@DonJayamanne's talk about how Jupyter Widgets are implemented in VS Code is posted at https://www.youtube.com/watch?v=C821QIYcxd0. Thanks again Don!
-
PyCon
- PyScript and Pyodide
- Cap for memory usage of pyodide is 2g
- Pythreejs maintainership
-
npm does not pull in 6.0.0-rc:
^1 || ^2 || ^3 || ^4 || ^5 || ^6.0.0-rc.0
will install 4.1.0, while^1 || ^2 || ^3 || ^5 || ^6.0.0-rc.0
will install 6.0.0-rc.0- Use the semver calculator: https://semver.npmjs.com/
- next vs latest tag?
- date of publish of different versions?
-
Remaining work for 8.0
- jupyter-widgets/ipywidgets#3442
- jupyter-widgets/ipywidgets#3439
- Merged #3405, please add more things as you see them.
- Potential final release next week
-
[Itay] Scipy tutorial
- Iterating on content
- Meeting with organizers to finalize content, etc.
react-ipywidgets
: https://github.com/widgetti/react-ipywidgets
Name | Affiliation | GitHub |
---|---|---|
Vidar T Fauske | JP Morgan Chase | @vidartf |
Itay Dafna | Bloomberg | @ibdafna |
- William Stein presenting on ipywidgets in Cocalc on 17 May.
- Remaining tasks for 8.0 release. Timeline.
- Itay to add notes to the migration guide about
backbone.js
version update between ipywidgets 7.x and 8.x, which affects someIClassicComm
mock implementations.
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Martin Renou | QuantStack | @martinRenou |
Itay Dafna | Bloomberg | @ibdafna |
Layne Sadler | AIQC | @aiqc |
William Stein | CoCalc/SageMath | @williamstein |
Florian Wetschoreck | Databricks | @FlorianWetschoreck |
Tobias Krabel | Databricks | @tkrabel |
Frederic Collonval | QuantStack | @fcollonval |
Issues
- Frontends migrating from widgets 7 to widgets 8
- VS Code - waiting until release and customer requests
- Colab - actually on 8 prerelease already - user code is built against 7, but run against 8
- patched the lumino change
- CoCalc - may be difficult, due to having one single frontend codebase, but definitely having old versions of ipywidgets installed in kernels "forever", since we support old images. "Maybe I can just somehow change the comm messages to be compatible?"; Pete actually does basically this in Colab. Jason says this will mostly work, but there are some subtle differences, and they will publish an official spec change doc.
- jupyter.widget.control error causing confusion: jupyter-widgets/ipywidgets#2257
- This is caused when ipywidgets hasn't been imported yet
- We should move forward on the comm JEP
- migration guide, ready for another review jupyter-widgets/ipywidgets#3405
- did the phosphor shim
- added note about backbone extend
- jupyter-widgets/ipywidgets#3442
- jupyter-widgets/ipywidgets#3443
- Cookiecutter updated so that it works with ipywidgets 7 and 8 jupyter-widgets/widget-ts-cookiecutter#115
ipywidgets in vscode-jupyter:
https://github.com/microsoft/vscode-jupyter/wiki/Component:-IPyWidgets
Virtualization:
- Colab: uses intersection observer to defer creation of the iframes until they have been scrolled into view but never un-renders them when they go out of view. We write an 'output_height' attribute in the cell's metadata to specify the placeholder height on notebook load. Overall this sounded easier than it was in practice- thought it would take a few days, ended up taking maybe 2 months to stabilize (welcome to production)
- VS Code: We do the same in VS Code as well, render only when scrolled into view and never un-render them.
- Cocalc: is now fully virtual (except iframe html) sagemathinc/cocalc#5844 using https://virtuoso.dev/ and seems to work. Motivation for me is very complicated notebooks where having content rendered in the dom at all can be expensive when working with the notebook. (Other approach is to make this less expensive -- maybe things are significantly extra expensive in cocalc.)
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Frederic Collonval | QuantStack | @fcollonval |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Martin Renou | QuantStack | @martinRenou |
Issues over the last week:
Items:
-
Frontends migrating from widgets 7 to widgets 8, supporting both: jupyter-widgets/ipywidgets#3429
- How common will it be that a frontend has to support core widgets from ipywidgets 7 and 8 simultaneously?
- Two extensions:
- plugin for Jupyterlab ipywidgets 8 widget manager, and plugin that registers the ipywidgets 8 core controls
- plugin that registers the ipywidgets 7 core controls
-
Migration guide jupyter-widgets/ipywidgets#3405
-
ipyleaflet and jupyterlab-sidecar migrated: jupyterlab-sidecar and ipyleaflet
-
More migrations:
- Jason do ipympl (Ian added tests for ipywidgets 8? matplotlib/ipympl#461)
- Vidar do pythreejs
-
ipywidgets 8 final release delayed a bit
-
JSON spec
-
Don's presentation postponed one week, will be next Tuesday
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Bloomberg LP | @ibdafna |
Issues over last week:
- jupyter-widgets/ipywidgets#3433 - leading to creation of https://github.com/b3m2a1/ActiveHTMLWidget (example at jupyter-widgets/ipywidgets#3433 (comment))
Items:
- Conda-forge releases of RC0
- public path discussion: https://github.com/jupyter-widgets/widget-ts-cookiecutter/blob/master/%7B%7Bcookiecutter.github_project_name%7D%7D/src/extension.ts and https://github.com/jupyter-widgets/widget-cookiecutter/blob/969471848da747d5aa562b8ab00988e3117e4ccf/%7B%7Bcookiecutter.github_project_name%7D%7D/js/lib/extension.js#L8 (originating in jupyter-widgets/widget-cookiecutter#38)
- Can we use webpack's 'auto' public path instead of hardcoding a public path? I think this allows us to consolidate the nbextension AMD module with the dist/ CDN AMD module
- Conferences people are going to?
- Scipy: @ibdafna, possibly @jasongrout
- Jupyter Widgets tutorial
- PyCon US: possibly @jasongrout
- Scipy: @ibdafna, possibly @jasongrout
- Interesting library for doing EDA workflows: https://pypi.org/project/dtale/. Does not seem to use ipywidgets.
Next week Don Jayamanne is presenting on widgets in VS Code. Please advertise.
- Gitter
- Discourse
- JLab dev meeting
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Itay Dafna | Bloomberg | @ibdafna |
Vidar T Fauske | JP Morgan Chase | @vidartf |
-
Remaining 8.0 issues on Milestone: https://github.com/jupyter-widgets/ipywidgets/milestone/30
-
Scipy tutorial was accepted! Scheduled Tuesday morning 8am-12 noon.
What other libraries should we try to convert?
- ipyleaflet
- pythreejs
8.0 release concerns
- 8.0rc is not working in vs code. Hypothesis: if the user has 8.0 installed in the kernel, why doesn't the 7.0 javascript work. It used to work with the 8.0 beta.
- microsoft/vscode-jupyter#8552
April 19 - Don presenting on widgets in vs code
No meeting.
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
William Stein | CoCalc | @williamstein |
-
William demo'd CoCalc RTC Markdown
-
Releases! 7.7.0rc0, 8.0.0rc0
-
Will release 7.7.0 final today
-
Remaining 8.0 issues on Milestone: https://github.com/jupyter-widgets/ipywidgets/milestone/30
- Migration guide: jupyter-widgets/ipywidgets#3405
-
New issue/questions, needs triage:
- jupyter-widgets/ipywidgets#3411
- Is
on_click
an observer?
- Is
- jupyter-widgets/ipywidgets#3412
- jupyter-widgets/ipywidgets#3411
-
Question from a user (william) -- comments about upgrading from this -- probably not too bad. Critical to be aware of backend version; make sure it is at least 7.
~/cocalc/src/packages/frontend$ grep widget package.json
"@jupyter-widgets/base": "^1.2.5",
"@jupyter-widgets/controls": "^1.5.3",
"@jupyter-widgets/output": "^1.1.5",
"@phosphor/widgets": "^1.9.3",
- William: I can quickly demo ipywidgets in a whiteboard, since I have it working now...
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Steve Purves | Curvenote | @stevejpurves |
Xiao Chen | Databricks | @xiaochen-db |
tonyfast | Quansight | @tonyfast |
William Stein | CoCalc | @williamstein |
Jared Thompson | CCC | @afonit |
Pete Blois | @blois | |
Florian Wetschoreck | Databricks | @FlorianWetschoreck |
Tobias Krabel | Databricks | @tkrabel |
Martin Renou | QuantStack | @martinRenou |
Hossein Falaki | Databricks | @falaki |
Michael Piatek | Databricks | @michaelp-db |
Itay Dafna | Bloomberg | @ibdafna |
Trung Le | QuantStack | @trungleduc |
- Introductions
- Backport echo_update messages to 7.x
- Add migration guide for 8.0
- Follow up on echo updates
- Make sure we serialize dictionary into valid JSON #3408
- RC this week?
- Recording meetings
Pete Blois: ipwyidgets on Colab
Name | Affiliation | GitHub |
---|---|---|
Jason Grout | Databricks | @jasongrout |
Gayle Ollington | NumFOCUS | @gollington |
Vidar T Fauske | JP Morgan Chase | @vidartf |
Steve Purves | Curvenote | @stevejpurves |
Merged PRs:
-
Introductions
- Gayle Ollington
- Jupyter Community Building Committee Charter
- December 2021 Jupyter Community Update
- Keep an eye out for an upcoming blog post with a survey about JupyterCon
- Steve Purves
- co-founder of CurveNote
- Rowan works a lot on Myst, Steve works a lot on Thebe
- Working on ipywidgets in Thebe
- Gayle Ollington
-
Presentations on ipywidgets implementations
- Pete Blois next week
- Advertise so others who are implementing ipywidgets can attend
- Steve Purves: widgets in curvenote
-
Echo state updates backwards compatible: jupyter-widgets/ipywidgets#3394
- Vidar is reviewing this in the next 36 hours or so.
- Look at jupyter-widgets/ipywidgets#3111 - is Maarten's case where frontend and backend go out of sync taken care of?
-
7.x and 8.x releases
- Jason and Itay can do an RC release of 7.7 and 8.0 after #3394 gets merged.
-
Jupyter Books (Steve)
- Executable book implementing something like Like Brett Victor's Tangle library
- Jason once implemented a ipywidgets widget that used something like the Tangle library to do widgets in text.
- Reference also recent discussions on Discourse about interpolating variable values into Markdown
- SageCell
- https://sagecell.sagemath.org/
- https://utmost.aimath.org/ (see also the PreText books that integrate Sage Cell, like )
- Executable book implementing something like Like Brett Victor's Tangle library
-
Executable docs for ipywidgets using JupyterLite: https://twitter.com/martinRenou/status/1498321869363154947?s=20&t=stPowTab4Z9CE00CBPDbrg
Attendees: @vidartf, @jasongrout, @sylvaincorlay
Merged PRs:
Discussion points for 8.0:
- jupyter-widgets/ipywidgets#3392
- Jason will work on this this week
Attendees: @williamstein, @vidartf, @ibdafna, @ivanov
Merged PRs:
Quick demo:
- @williamstein can show you ipywidgets in his work-in-progress (very buggy!) collaborative whiteboard. (Must be before 10am.)
Releasing 8.0
- @ibdafna to cut the release
Attendees: @williamstein, @vidartf, @martinRenou, @jtpio, @jasongrout, @ibdafna, @ianhi
Other things that we would need/want for 8.0?
PRs for review:
Merged PRs:
- jupyter-widgets/ipywidgets#3368
- jupyter-widgets/ipywidgets#3373
- jupyter-widgets/ipywidgets#3338
- jupyter-widgets/ipywidgets#3335
- jupyter-widgets/ipywidgets#3370
7.x release
- Martin backporting the control channel
- 7.x minor release later this week
8.0 RC release
- This week after two PRs above merged.
Discussion
-
Is there a project that involves building a UI with drag and drop and widgets?
- Cocalc collaborative whiteboard
- https://github.com/voila-dashboards/voila-gridstack
- Databricks has something, but not ipywidgets
- Internal product (closed source) has been developed
- ipyflex
- https://gitlab.com/cosapp/cosapp_lab
-
Scipy talks
- Tutorial going in
- Maarten talking about building larger ipywidgets applications
- Jason may submit a talk on core ipywidgets 8 (or maybe a lightning talk, depending on how much stuff there is)
- Itay may submit a talk about ipydatagrid
-
ipywidgets controlling scientific instruments
- ESRF
-
Moving state to the server side
Question (@williamstein): is there any existing software that let you do things like insert sliders, buttons, etc., graphically on a canvas, then generate code and uses ipywidgets to implement things under the hood? (Instead of laying everything out via code.) I'm stumbling into implementing something like this, and want to compare notes.
@martinRenou: ~~~Do you mean rendering widgets on a canvas? I remember discussing this with Wolf Vollprecht (having multiple renderers for ipywidgets: DOM, Canvas, Qt etc) this sounds hard to implement to me, but it could be possible?~~~ (misunderstood the question)
Attendees: @jasongrout, @vidartf, @afonit, @martinRenou, @ibdafna
-
Introductions
-
Please comment on jupyter/enhancement-proposals#86
-
Close to RC. To release RC, resolve:
Grids on ipywidgets
- qgrid seems dead, uses slickgrid
- ipyaggrid uses aggrid, also not maintained
- recommend ipydatagrid
- See also glue-viz/glue-jupyter#129
Scipy
- Deadline 11 Feb. Tutorial spearheaded by Matt
- Maarten is writing a react-like layer on top of ipywidgets, may submit a talk
Attendees: @vidartf, @martinRenou, @ivanov, @jasongrout, @SylvainCorlay, @ibdafna
- Decision-making body
- Should we merge? jupyter-widgets/ipywidgets#3335
- Comm message protocol discussion: how do we determine if a comm target is registered?
- A target can be registered, comms created, then the target unregistered
- {target_name: [list of comms]}, and also return active comm targets, filtered by the target_name.
- Jason will file a JEP proposing two changes: (Update: filed at jupyter/enhancement-proposals#86)
- Comm message protocol discussion: how do we determine if a comm target is registered?
- Porting 7.x widgets to 8.x
- Good test cases:
- bqplot: uses phosphor bqplot/bqplot#1404 works fine!
- pythreejs: doesn't use es6 classes yet
- https://github.com/mariobuikhuizen/ipyvue/pull/55/files
- Good test cases:
- Consider changing the meeting time for this group?
- Perhaps after the decision-making body is formed?
Attendees: @vidartf, @martinRenou, @SylvainCorlay, @jasongrout, @ibdafna
- Decision-making body: look for an email
- Dependabot config
- jupyter-widgets/ipywidgets#3343
- Needs review jupyter-widgets/ipywidgets#3335
- HTML manager vs JupyterLab manager
Attendees: @vidartf, @martinRenou, @SylvainCorlay, @jasongrout, @ibdafna
-
Maarten: jupyter-widgets/ipywidgets#3343
- Bump protocol to 3.0, since there are communication channels set up in both directions. Having a browser that understand 2.0 talking to a kernel speaking 3.0 should lead to sliders jumping around (since the echo field is ignored). Having a browser that understands 3 talking to a kernel that understands 2 means that channels that are opened by the browser will be rejected since the major version number does not match in the comm_open of the kernel.
-
Martin: Updated jupyter-widgets/ipywidgets#3335
- Needs review
- Martin will check if there is some heuristic in comm info message to determine if comm target exists or not
- We should make an update to the docs/ipykernel to have the comm info request have an error status if the comm target does not exist.
-
Bug fix with nbconvert jupyter-widgets/ipywidgets#3342
- Looks good, basically adds the lab variables as a default for html manager if they are not alreadyd defined on the page
- Could check the generated code to see if there is a difference with how the css is put on the page in the conditional
Attendees: @vidartf, @martinRenou, @ibdafna
-
Should we consider this for 8.0.0? jupyter-widgets/ipywidgets#3335
- @jasongrout: I would love to see this in 8.0
-
This week:
- Add Maarten's PR to the change log
- Release RC0
- Try to migrate some of our widget libraries
- Document any changes pertaining to migrating widget packages from 7.x to 8.x
- Document Maarten's changes to the protocol spec
- Release RC1
- Announce RC
Attendees: @maartenbreddels, @ibdafna, @SylvainCorlay, @jasongrout
- Jason: upgrading to TypeScript 4.5 has incompatibilities with older JupyterLab versions, so we hold off upgrading it in the RC.
- Discussed Maarten's front-end sync PR. Sylvain and Itay will meet on Dec 22nd to run a a few final tests and, if not issues are found, merge and release RC0 🎉
Attendees: @vidartf, @ibdafna, @martinRenou, @jasongrout, @real-slim-chadi
- Front-end sync PR
- Typescript 4.5 update
- RC:
- Jason working on a dependency update
- Maarten working on his PR
- We can release RC this week
- Where to start contributing?
- https://github.com/jupyter-widgets/ipywidgets/blob/master/CONTRIBUTING.md
- Good first issues are tagged here: https://github.com/jupyter-widgets/ipywidgets/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
- @real-slim-chadi taking a look at the new contributor guide
- Meeting next week (21 Dec)
Attendees: @maartenbreddels, @ibdafna, @jtpio, @SylvainCorlay, @vidartf, @jasongrout
Front-end sync PR:
- jupyter-widgets/ipywidgets#3195
- Long discussion about what this PR does, and decision to put in a default-off global switch and get it in for 8.0RC after review.
Issues:
- (not discussed) jupyter-widgets/ipywidgets#3322
Porting widgets to 8.0: will need to work on a migration guide. Current changelog: https://ipywidgets.readthedocs.io/en/latest/changelog.html#not-released-yet
Attendees: @vidartf, @ibdafna, @jtpio, @SylvainCorlay
8.0 release plans
- Currently on track. We will all try to update a 3rd-party library to support 8.0 before next week, when we plan to do an RC unless there are any blockers.
- New convenience trait/serializers for serializing full IEEE float values (i.e., NaN and infinity)
- Introductions
- chadiabifadel
PRs
- Merged Galata update: jupyter-widgets/ipywidgets#3279
- Releaser update: jupyter-widgets/ipywidgets#3298 - needs another pass
- jupyter-widgets/ipywidgets#3302: restart checks, port to master
- Allow Output.clear_output() to be thread-safe.
Attendees: @vidartf, @martinRenou, @ibdafna,
New issues/PRs since last meeting:
- jupyter-widgets/ipywidgets#3313
- (from last week) jupyter-widgets/ipywidgets#3310
- (from last week) jupyter-widgets/ipywidgets#3309
- jupyter-widgets/ipywidgets#3314
- jupyter-widgets/ipywidgets#3315
- jupyter-widgets/ipywidgets#3317
Review needed:
Attendees: @vidartf, @martinRenou, @SylvainCorlay, @jtpio, @ibdafna, @jasongrout
New issues/PRs since last meeting:
- jupyter-widgets/ipywidgets#3311
- (not discussed) jupyter-widgets/ipywidgets#3310
- (not discussed) jupyter-widgets/ipywidgets#3309
8.0 beta release party
Attendees: @vidartf, @jasongrout, @ibdafna, @martinRenou, @jtpio
-
New issues last week:
-
Is this backwards compatible or not?
- jupyter-widgets/ipywidgets#3282
- We think this is probably backwards compatible. Jason is opening an issue in Lumino about this general pattern.
- jupyter-widgets/ipywidgets#3282
-
Review of PR from Trung Le Duc (Error widgets)
- jupyter-widgets/ipywidgets#3304
- There are a few outstanding questions in the PR review.
- jupyter-widgets/ipywidgets#3304
-
Review resolved ?
-
8.0 triage:
- Seem very hard to achieve: jupyter-widgets/ipywidgets#2605 Ok to drop?
-
Changelog:
- widgetnbextension needs changelog entry: https://github.com/jupyter-widgets/ipywidgets/compare/7.6.2...7.6.3
-
Beta release:
- Changelog this week
- Jason to generate PR listing
- Everyone fill out
- Next week, release beta the hour before meeting
- Changelog this week
-
Meeting: Change to an hour meeting
Attendees: @jtpio, @jasongrout, @vidartf, @ibdafna
- Widgets in RetroLab
- Classic notebook Widgets menu:
- Save Notebook Widget State
- Clear Notebook Widget State
- Download Widget State
- Embed Widgets
- RetroLab widget menu options:
- Settings > Save Widget State Automatically (toggle)
- In classic notebooks, it is possible to author a widget in a notebook: https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Custom.html
- Classic notebook Widgets menu:
- This last week:
- Sylvain released widgetsnbextension 3.5.2 with jupyter-widgets/ipywidgets#3290 and jupyter-widgets/ipywidgets#3280 (first release since 3.5.1 in Jul 2019)
- Retrieve state on new comm channel: jupyter-widgets/ipywidgets#3021 review
- Error Widget fallback: jupyter-widgets/ipywidgets#3304: Itay assigned as reviewer
- jupyter-widgets/ipywidgets#3301: Jason reviewing
- Trigger setLayout on before-attach? jupyter-widgets/ipywidgets#2605
- Releasing beta next week?
- We have PR for moving to Jupyter Releaser
- As discussed two weeks ago, we'll do a manual release and look at what needs to be done to bump package versions.
Attendees: @ibdafna, @martinRenou, @vidartf, @jasongrout, @trungleduc
-
Two new PRs this week:
- jupyter-widgets/ipywidgets#3301
- Possible choices for dir name
- python
- python_packages
- pypackages
- Possible choices for dir name
- jupyter-widgets/ipywidgets#3302
- jupyter-widgets/ipywidgets#3301
-
Trung: Fallback widget when the widget fails to render. Following up jupyter-widgets/ipywidgets#2960
-
Triage for 8.0:
- Are there any issues that will need a PR?
- Are there any PRs without an assigned reviewer?
- Any assistance needed on assigned PRs?
- Which issues should be moved to another milestone?
Attendees: @jtpio, @martinRenou, @jasongrout, @sylvaincorlay
-
8.0.0a6 on conda:
- PR to update to 8.0.0a6: conda-forge/ipywidgets-feedstock#71
- Follow-up to remove the Python 3.10 upper bound: conda-forge/ipywidgets-feedstock#72
-
Bug fix jupyter-widgets/ipywidgets#3296
-
Fech all widgets in one go on the control channel: jupyter-widgets/ipywidgets#3021
-
Hold sync during set_state jupyter-widgets/ipywidgets#3271
-
Jupyter Releaser:
- Started by David in jupyter-widgets/ipywidgets#3298
- How do we want to version the packages?
- Do we want to be able to release packages indepedently?
ipywidgets
,jupyterlab_widgets
,widgetsnbextension
-> Yes - Currently bumping versions is like a complex decision tree
- We could start by documenting how versions are bumped. For example how to decide whether this is a minor version and what updating a given package means for the other packages that depend on it.
- The releaser takes a
spec
as input. So we would have to encode the bump we would like to do, and let the bump script update the right packages. - There is also the protocol version as another version to consider. This one could be versioned manually.
Attendees: @vidartf, @jasongrout, @martinRenou, @piiq, @jtpio, @ibdafna
-
Itay show and tell
-
Introductions
-
Triage for 8.0:
- jupyter-widgets/ipywidgets#3021
- Additive, so no need to explicitly target 8.0. Will target 7.x and 8.x
- Are there any issues that will need a PR?
- Are there any PRs without an assigned reviewer?
- Any assistance needed on assigned PRs?
- Do not wait for the "displayed" promise to be resolved before applying the layout jupyter-widgets/ipywidgets#3288
- Which issues should be moved to 8.1?
- jupyter-widgets/ipywidgets#3021
Attendees: @vidartf, @jasongrout, @ibdafna
-
VS Code support
- Still support 7.x
- Support most widgets except VPython
- Catboost -
-
Triage for 8.0:
- Are there any issues that will need a PR?
- Are there any PRs without an assigned reviewer?
- Any assistance needed on assigned PRs?
- Which issues should be moved to 8.1?
Attendees: @martinRenou, @vidartf, @jasongrout, @SylvainCorlay
-
- Can we confidently make a minor release of widgetnbextension? Probably best to branch from last
-
- This PR does not change the current logic for ipywidgets. It is adding a new Comm entry point for Voila to fetch all widgets models at once.
Attendees: @jtpio, @martinRenou, @vidartf, @jasongrout, @ibdafna
-
Martin:
- Select widget: prevent arbitrary selection if there is currently no selection and the option list changes jupyter-widgets/ipywidgets#3284
- Doc fixing, fix "process.env is undefined" issue which prevented the HTMLManager to render widgets jupyter-widgets/ipywidgets#3283
- widgetsnbextension: Throw an exception if the widget fails to render, this allows the Notebook to fallback on other mimetypes repr jupyter-widgets/ipywidgets#3280 (should be tested with current Notebook version/should do a Notebook version check in widgetsnbextension?)
-
Jeremy:
- rebased Itay's PR: jupyter-widgets/ipywidgets#2834
-
Triage for 8.0:
Attendees: @vidartf, @jtpio, @ianhi, @ibdafna
Triage for 8.0
-
Add dragging behaviour properties to sliders: #2834
- Rebase + rename to american spelling
- Merge and do a final review after having it in alpha
-
If we include #2762, we should also consider #2605
- Current proposal: Add three new promises:
attached
,layedOut
,shown
. Then deprecatedisplayed
, and have that resolve at the same time asattached
for now (retaining its current behavior). This will allow for third-party libraries to update on their own time, but still resolve the ambiguity.
- Current proposal: Add three new promises:
Attendees: @jasongrout @ibdafna
Attendees: @vidartf, @jasongrout, @ibdafna
Triage for 8.0:
Itay:
- 8.0.0a6 prerelease due out this week
- 7.1.x patch release with ipython_genutils dependency
Vidar: #2259, #2800 Itay: #3230, #3247 Jason: #2762
Attendees: @vidartf, @jasongrout
Triage for 8.0:
- Discussion around extending widgets support to JupyterLab code consoles.
Attendees: @vidartf, @jasongrout, @ibdafna, @blois
Pete:
- Colab introducing support for custom widgets
- API is based on es6 modules for compatiblity
- Proof of concept at https://github.com/googlecolab/colab-cdn-widget-manager, has working example. Feel free to reach out with bugs or questions.
Itay:
- TS cookiecutter maintenance - Itay volunteering, and Vidar will help him come up to speed.
Triage for 8.0:
Attendees: @jasongrout, @vidartf, @ibdafna
Itay:
Vidar:
- Github lints ("Unchanged files with check annotations")
- Should we fix typos in help string retoractively in specs? jupyter-widgets/ipywidgets#3246
Triage:
Attendees: @jasongrout, @vidartf, @ibdafna
Attendees: @jasongrout, @vidartf, @ibdafna
-
@ibdafna: ipywidgets tutorial report (Monday morning at Scipy)
- We cleaned up the tutorial repo, updated the binder, etc.
- Didn't show some of Maarten's widgets because they weren't working
- Went well. Generated buzz on Twitter. It was a new audience, with many people exposed to ipywidgets for the first time. About 100 attendees.
- Need short introduction to decorators
- The styling/layout section was a bit long. Instead, just give a few examples, then jump in with examples and day-to-day issues people will face.
- We'll continue refreshing and rotating the list of ipywidgets libraries we are showing each year.
- The online platform worked well, the platform worked pretty well. The platform "Q&A" section was a bit awkward to use.
- Lots of questions, especially compared to last year.
- We cleaned up the tutorial repo, updated the binder, etc.
-
ipywidgets 8.0 triage
- Went through recent PRs, reviewed and merged some, and assigned out others.
-
https://codepath.org/ - interesting mentoring opportunity
Attendees: @jasongrout, @vidartf, @jtpio,
- ipywidgets tutorial update (next week)
- ipywidgets community update
- ipywidgets 8.0 triage
- 8.0 Beta release!
Attendees: @jasongrout, @davidbrochart, @ilyabo, @ibdafna
- Welcome Itay (@ibdafna) as an ipywidgets maintainer!
- Scipy 2021 tutorial is in two weeks, based on ipywidgets 7.6.3, JupyterLab 3.0 (Matt Craig, Itay Dafna, Mariana, Martin, Youness)
- This year emphasizing additional widget libraries, like ipycanvas, ipycytoscape, ipydatagrid, etc.
- 8.0a5 is out: lots of package upgrades, so please test third-party widgets
- @ilyabo, @davidbrochart: Async widgets: we have a modified kernel now that enables async processing of widgets.
- Each cell is launched as an async function and is launched as a task. You can run several cells concurrently. If there is purely synchronous code, it runs as normal. Essentially the top-level await is converted to an await inside an async function, so await returns control to the event loop.
- https://github.com/davidbrochart/akernel
- ipython/ipykernel#696
- There is a pattern to force "synchronous" running of successive cells with
await __task__()
Attendees: @jtpio, @vidartf, @ibdafna, @jasongrout
- NoUISlider upgrade PR: jasongrout/ipywidgets#4
Attendees: @jtpio, @vidartf, @ibdafna
- Dependency updates PRs by Jason:
- TypeScript 4.3: jupyter-widgets/ipywidgets#3162
- Webpack: jupyter-widgets/ipywidgets#3211
- Quick pass on the new issues to assign them to the 8.0 milestone if needed
Attendees: @vidartf, @jtpio
- Quick update on outstanding work on 8.0
Attendees: @vidartf, @jasongrout
Attendees: @jtpio, @ianhi, @jasongrout,
-
Ilya: async messaging: ipython/ipykernel#589 ipython/ipykernel#646
-
8.0 timeline
-
Ian: widget persistence + matplotlib lots of discussion on mpl gitter (https://gitter.im/matplotlib/matplotlib?at=609d4203c12aec4aa2c2346f)
Attendees: @ibdafna, @ianhi, @vidartf
-
Ian: Changing defaults?
-
Vidar:
- Maarten posted this on gitter jupyter-widgets/ipywidgets#3195
Attendees: @jtpio, @ibdafna, @ianhi, @vidartf
- Discussions
- Async widget methods and dispatching GUI messages asynchronously:
Status ofipywidgets
8.0 release
Attendees: @ianhi, @jasongrout
- Discussions
- Deep dive on potential of using
stdin
as a mechanism for blocking until a user interacts with a widget. - Ian will create an issue summarizing everything that can be used as a starting place for further investigations.
- Deep dive on potential of using
Attendees: @ianhi, @jtpio
- Discussions
- Next meeting time results: http://whenisgood.net/nx49zs8/results/538da5r
- Best candidate: Tuesdays at 09:00 am Pacific
Attendees: @jtpio, @ianhi, @jasongrout, @sylvaincorlay, @blois
-
Jeremy:
- Thanks Mehmet for adding visual regression testing: jupyter-widgets/ipywidgets#3172
- Martin did something similar for
bqplot
: bqplot/bqplot#1315
-
Ian: - Blocking? ianhi/custom-ipywidget-howto#17
-
Discussion
-
Time change poll about a new time for the meeting
-
Blocking
- ipython/ipykernel#589
- Wrap around stdin to get blocking? This is what google colab does:
- https://github.com/googlecolab/colabtools/blob/main/google/colab/_message.py
- Can possibly think about it as we have rich output, but not rich input.
-
8.0 release. Stability of ipywidgets for breaking into multiple releases to get 8.0 done?
-
Attendees: @jtpio, @jasongrout, @vidartf
-
Jeremy
- Export LabWidgetManager and KernelWidgetManager: jupyter-widgets/ipywidgets#3166
- Revive "Restore widgets in batches" PR? jupyter-widgets/ipywidgets#2765
-
Vidar
- Is this ok as is, or does it need any further changes? :)
-
Discussion
- Time change poll about a new time for the meeting
Attendees: @jasongrout, @SylvainCorlay, @ianhi, @jtpio
-
Jason
- 8.0.0a4 (supporting jlab 3) was released 22 Feb
- Traitlets 4 vs 5: jupyter-widgets/ipywidgets#3110
-
Ian
- Making 8.0 happen? (We're going to keep plugging away at it, no firm timeline, dependent on how much work people put into the issues and PRs on the milestone)
- New Issue Labels? jupyter-widgets/ipywidgets#3161
-
Jeremy
- Initial steps for a widget examples repo: ianhi/custom-ipywidget-howto#13
- Plan to move to jupyter widgets organization as it gets polished
- Update to TypeScript 4.2? Should this go in before 8.0? jupyter-widgets/ipywidgets#3162
- Initial steps for a widget examples repo: ianhi/custom-ipywidget-howto#13
What is the status of pythreejs? It is now a prebuilt extension compatible with JupyterLab 3.
Meeting times: We decided to move to a weekly meeting schedule to help development momentum, and re-evaluate the time to better accommodate those that are actually coming to the meetings. Since we're in the middle of a confusing time where some of us are on Daylight Saving time and others aren't, we'll keep the 7am Pacific Daylight Time meeting for Thursday, 25 Mar. Jason will then send out a poll for a new meeting time for a weekly meeting for the following week.
Attendees: @jasongrout, @vidartf, @maartenbreddels, @ianhi, @ibdafna, @jtpio, @marimeireles
-
ian
- What is advice for people who want blocking widgets
- See https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Asynchronous.html
- Perhaps we change the kernel protocol to allow the kernel to process comm messages even if it is not idle (for example, if a cell has an await)?
- We could ship the utility functions in the widget async docs, and make some more examples using them. Especially with dependencies on modern Python + ipykernel, this is more feasiable than before.
- Make async waiting easier to use - make docs more approachable, ship utility function (ian make issue)
- Automated releasing secrets? who can add them? jupyter-widgets/jupyterlab-sidecar#62
- We could release based on setting a tag. That makes it very easy, maybe too easy?
- We could release based on drafting a GitHub release.
- Ian and Jason getting together to explore this.
- [not discussed] unify cookiecutter? #4
- What is advice for people who want blocking widgets
-
Maarten
- Saving widget state: jupyter-widgets/ipywidgets#3114
-
Discussion
- ipywidgets contrib
- Perhaps open a repo or new github org. Things are merged basically automatically, with very minimal vetting.
- ipywidgets contrib
Attendees: Jason, Maarten, Jeremy, Ian, Sylvain, Martin, Itay
-
Jason
-
Jeremy
- New cookiecutter based tutorial: https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Custom.html
- We should try to finish and merge the 3.0 PR: jupyter-widgets/widget-ts-cookiecutter#83
-
Itay
- Modernizing our python packaging practices: jupyter-widgets/widget-cookiecutter#87
- A suggestion to use setuptools_scm
-
Ian
- custom ipywidget howto into docs?
- Transfer to jupyter-widgets org
- custom ipywidget howto into docs?
-
Maarten
- State sync bug jupyter-widgets/ipywidgets#3111
- Related issue on echoing comm messages to all clients: jupyter/jupyter_client#263
(post 8.0.0) Only save visible widgets, and save by default: jupyter-widgets/ipywidgets#3114(post 8.0.0) Embed mime bundles: jupyter-widgets/ipywidgets#3107
- State sync bug jupyter-widgets/ipywidgets#3111
- widgets.register what is it for?
- should it be default in the cookiecutter? - no
- should be better documented - Ian open an issue.
- Triage 8.0 issues
Attendees: Vidar, Afshin, Sylvain, Jason, Madhur, Odile, Mario
Themes discussion:
- Currently in JLab we only have mimerender shortcut extensions
- Can we restrict themes to just css files and some metadata file?
- If we needed, we could build support for css-only themes in jlab 2.
- We'll take up the discussion in the JupyterLab dev meeting
Review PRs that have had progress
-
HTML sanitization PR: jupyter-widgets/ipywidgets#2785
- API questions:
- user api: description_html / description_allow_html / allow_html_description
- description_html is nice and compact, but doesn't clearly indicate that it is a boolean affecting the description attribute
- 'allow'
- widget manager functions: plaintext_sanitize/inline_sanitize
- user api: description_html / description_allow_html / allow_html_description
- API questions:
-
Vendoring notebooks PR: jupyter-widgets/ipywidgets#2831
- Check if we could make a symlink in conf.py for the notebooks instead of copying.
-
Cookiecutters tend to go out of shape over time, creating stale cookies 😄 How do we ensure they stay up to date?
- Use GH actions upon PR merge and add an item in the release check-list