2021 Jupyter Widgets Dev Meetings
jasongrout opened this issue ยท 39 comments
Here is a record of the agenda/minutes for our bi-weekly meeting. Everyone is welcome to join.
Let's avoid using this thread for discussion. If you'd like to discuss something in the minutes, open a separate issue and reference this thread.
Meeting Notes
- 21 Dec 2021
- 14 Dec 2021
- 07 Dec 2021
- 30 Nov 2021
- 23 Nov 2021
- 16 Nov 2021
- 09 Nov 2021
- 02 Nov 2021
- 26 Oct 2021
- 19 Oct 2021
- 12 Oct 2021
- 05 Oct 2021
- 28 Sep 2021
- 21 Sep 2021
- 14 Sep 2021
- 07 Sep 2021
- 31 Aug 2021
- 24 Aug 2021
- 17 Aug 2021
- 10 Aug 2021
- 03 Aug 2021
- 13 Jul 2021
- 6 Jul 2021
- 29 Jun 2021
- 22 Jun 2021
- 15 Jun 2021
- 08 Jun 2021
- 01 Jun 2021
- 18 May 2021
- 04 May 2021
- 27 Apr 2021
- 13 Apr 2021
- 08 Apr 2021
- 01 Apr 2021
- 25 Mar 2021
- 18 Mar 2021
- 04 Mar 2021
- 18 Feb 2021
- 02 Feb 2021
02 Feb 2021
3pm UTC (Local time)
(This meeting was set up and discussed on Gitter here and here)
Agenda
- Background on 8.0
- high-level goals
- summary of current state of 8.0 release
- triage of current 8.0 issues
- discussion of timeline
- Should we publish widgetsnbextension 4, cutting out the notebook dependency, before ipywidgets 8? See jupyter-widgets/ipywidgets#2840 (comment) and matplotlib/ipympl#34
- Meetings moving forward
Minutes
-
Attending
- Jason Grout @jasongrout
- Carol Willing @willingc
- Vidar Tonaas Fauske @vidartf
- Matthew Seal @MSeal
- Ian Hunt-Isaak @ianhi
- Alex Cabrera @cabreraalex
- Itay Dafna @ibdafna
- Matt Craig @mwcraig
- mariana meireles @marimeireles
- Martin Renou @martinRenou
- Maarten Breddels @maartenbreddels
- David Brochart @davidbrochart
- Matt Hong @matt1hong
- Jeremy Tuloup @jtpio
-
Introductions:
- Good mix of new and old faces
-
8.0 Summary:
- Workshop last year in January
- Development has since stalled due to shifting priorities
- Current issues on 8.0 milestone: https://github.com/jupyter-widgets/ipywidgets/issues?q=is%3Aopen+is%3Aissue+milestone%3A8.0
- master is 8.0, and we have a 7.x branch
-
Any other main things in 8.0
- Persistence of image for graphic widgets (perhaps 8.x?)
- Real-time collaboration on widgets with multiple clients
- Sylvain and Quantstack working on RTC, possibly for ipywidgets 9.0
-
8.0 Issue Triage: all issues were assigned to someone.
-
Further meetings: we will meet every other week. Jason is setting up a poll for a time.
18 Feb 2021
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
Discussion
- 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
4 Mar 2021
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
18 Mar 2021
Attendees: @jasongrout, @SylvainCorlay, @ianhi, @jtpio
-
Jason
- 8.0.0a4 (supporting jlab 3) was released 22 Feb
- Traitlets 4 vs 5: jupyter-widgets/ipywidgets#3110 - Sylvain looking into it.
-
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
- Yes
-
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
- Yes
- 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 send out a poll for a new meeting time for a weekly meeting for the following week.
25 Mar 2021
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 - new poll going out about a time for the meeting
01 Apr 2021
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?
-
08 Apr 2021
- Discussions
- Next meeting time results: http://whenisgood.net/nx49zs8/results/538da5r
- Best candidate: Tuesdays at 09:00 am Pacific
13 Apr 2021
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
04 May 2021
Attendees: @ibdafna, @ianhi, @vidartf
-
Ian: Changing defaults?
-
Vidar:
- Maarten posted this on gitter jupyter-widgets/ipywidgets#3195
18 May 2021
Attendees: @jtpio, @ianhi, @jasongrout, Ilya
-
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)
15 June 2021
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
22 June 2021
Attendees: @jtpio, @vidartf, @ibdafna, @jasongrout
- NoUISlider upgrade PR: jasongrout/ipywidgets#4
29 June 2021
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__()
6 July 2021
Attendees: @jasongrout, @vidartf, @jtpio,
- ipywidgets tutorial update (next week)
- ipywidgets community update
- ipywidgets 8.0 triage
13 July 2021
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
03 August 2021
Attendees: @jasongrout, @vidartf, @ibdafna
10 August 2021
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:
17 August 2021
Attendees: @vidartf, @jasongrout, @ibdafna, @blois
Pete:
- Colab introducing support for custom widgets
- API is based on es6 modules for compatibility
- 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:
24 August 2021
Attendees: @vidartf, @jasongrout
Triage for 8.0:
- Discussion around extending widgets support to JupyterLab code consoles.
31 August 2021
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
07 Sep 2021
Attendees: @jasongrout
14 Sep 2021
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:
21 Sep 2021
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:
28 Sep 2021
Attendees: @martinRenou, @vidartf, @jasongrout, @SylvainCorlay
05 Oct 2021
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?
12 Oct 2021
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
19 Oct 2021
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.
26 Oct 2021
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?
02 Nov 2021
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.
09 Nov 2021
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?
- Seem very hard to achieve: jupyter-widgets/ipywidgets#2605
-
Changelog:
- widgetnbextension needs changelog entry: jupyter-widgets/ipywidgets@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
16 Nov 2021
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
23 Nov 2021
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:
30 Nov 2021
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.
7 Dec 2021
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
14 Dec 2021
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)
21 Dec 2021
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 ๐