Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix update button in extension manager #15331

Conversation

nbowditch-einblick
Copy link
Contributor

@nbowditch-einblick nbowditch-einblick commented Oct 30, 2023

References

Fixes #15316 Extension manager "Update to" button does not update extensions

Code changes

  • Added missing extension_version parameter to the backend request when the "Update to ###" button is clicked in the extension manager.
    • This was done by adding options with a useVersion parameter to the install action on the front-end model. The request uses this value to set the extension_version property to the request body.
    • For the update button, we use entry.latest_version
    • Generic front-end action functions (eg performAction and onAction) now have an optional actionOptions parameter where additional parameters/specifications can be defined

User-facing changes

None

Backwards-incompatible changes

None

@jupyterlab-probot
Copy link

Thanks for making a pull request to jupyterlab!
To try out this branch on binder, follow this link: Binder

@welcome
Copy link

welcome bot commented Oct 30, 2023

Thanks for submitting your first pull request! You are awesome! 🤗

If you haven't done so already, check out Jupyter's Code of Conduct. Also, please make sure you followed the pull request template, as this will help us review your contribution more quickly.
welcome
You can meet the other Jovyans by joining our Discourse forum. There is also a intro thread there where you can stop by and say Hi! 👋

Welcome to the Jupyter community! 🎉

Copy link
Member

@fcollonval fcollonval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for working on this @nbowditch-einblick

I would like to propose a slightly different approach to pass directly the version as this is supported by the backend and may provide more flexibility.

packages/extensionmanager/src/model.ts Outdated Show resolved Hide resolved
packages/extensionmanager/src/widget.tsx Outdated Show resolved Hide resolved
packages/extensionmanager/src/widget.tsx Outdated Show resolved Hide resolved
packages/extensionmanager/src/model.ts Outdated Show resolved Hide resolved
packages/extensionmanager/src/model.ts Outdated Show resolved Hide resolved
packages/extensionmanager/src/model.ts Outdated Show resolved Hide resolved
packages/extensionmanager/src/widget.tsx Outdated Show resolved Hide resolved
packages/extensionmanager/src/widget.tsx Outdated Show resolved Hide resolved
nbowditch-einblick and others added 2 commits October 31, 2023 10:22
Make action options more flexible

Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>
Copy link
Member

@fcollonval fcollonval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @nbowditch-einblick

Would you be willing to add a test for this?

You can add it in that file: https://github.com/jupyterlab/jupyterlab/blob/b835dd9acc2a00e2ee12450b9bc2b988ad789bd3/galata/test/documentation/extension_manager.test.ts

Starting by duplicating that test:

test('Sidebar', async ({ page }) => {

To fake an available update; you will need to set a newer version for one of the two packages in https://github.com/jupyterlab/jupyterlab/blob/main/galata/test/documentation/data/extensions.json

The test will look like:

   const waitRequest = page.waitForRequest(request => {
     if(request.method() !== 'POST' || !galata.Routes.extensions.test(request.url()) {
       return false;
     }
     const data = request.postDataJSON();
     return data.cmd === 'install' && data.extension_name === '...' && data.extension_version === '...';
   });
   await page.getByRole('button', { name: 'Update to <the fake version you set>'}).click();
   await waitRequest

@nbowditch-einblick
Copy link
Contributor Author

@fcollonval - I added a test. It's passing, but I was having trouble getting other tests to pass, even before I added mine. My only concern is that if some of them are comparing screenshots, some of those might need to be updated now that I bumped the latest_version field in extensions.json (this will change the version label and add the update button). I would appreciate it if you could take a look and let me know if there's anything else that needs updating

@fcollonval
Copy link
Member

Thanks a lot @nbowditch-einblick

Yes updating snapshots is hard as it depends on lots of OS specific config. Therefore we have a bot to do this properly 😉

bot please update documentation snapshots

Copy link
Contributor

github-actions bot commented Nov 3, 2023

Documentation snapshots updated.

Copy link
Member

@krassowski krassowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. I will wait with merging to allow @fcollonval to take another look.

test/jupyterlab/kernel.test.ts:108:9 › Kernel › Console › Should not ask kernel when creating console from launcher failure is unrelated and is getting addressed in #15355

@nbowditch-einblick
Copy link
Contributor Author

@krassowski - thanks for taking a look! please let me know if I can do anything to update the branch, I wasn't sure if you guys prefer me doing a merge or rebase, or just taking care of it yourselves before merging

Copy link
Member

@fcollonval fcollonval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @nbowditch-einblick !

Let's merge

@fcollonval fcollonval merged commit fe617e8 into jupyterlab:main Nov 8, 2023
77 of 82 checks passed
Copy link

welcome bot commented Nov 8, 2023

Congrats on your first merged pull request in this project! 🎉
congrats
Thank you for contributing, we are very proud of you! ❤️

@krassowski
Copy link
Member

@meeseeksdev please backport to 4.0.x

meeseeksmachine pushed a commit to meeseeksmachine/jupyterlab that referenced this pull request Nov 8, 2023
krassowski pushed a commit that referenced this pull request Nov 8, 2023
Co-authored-by: Nate Bowditch <111072326+nbowditch-einblick@users.noreply.github.com>
m158261 pushed a commit to m158261/jupyterlab that referenced this pull request Nov 13, 2023
* Fix update button in extension manager

* Apply suggestions from code review

Make action options more flexible

Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>

* Fix docs and make install options optional

* Add test for update button

* Update Playwright Snapshots

* Revert spurious snapshot updates

---------

Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: krassowski <5832902+krassowski@users.noreply.github.com>
krassowski added a commit that referenced this pull request Dec 15, 2023
* Updated input field with more descriptive aria-labels and placeholders

* Package integrity updates

* Run integrity

* Move ID generation to improve render flow

* Use ellipsis character for consistency

* Add error indicator in Table of Contents (#14784)

* feat: add error indicator in toc

* test: for error indicator

* Update Playwright Snapshots

* style: make the error symbol colorblind-accessible

* Update Playwright Snapshots

* fix: remove from _errorCells when cell is rerun

* perf: update error to -0.5 for api compatibility

* test: update error status to -0.5

* Update Playwright Snapshots

* Force text symbol

* Update Playwright Snapshots

* Update Playwright Snapshots

* Update Playwright Snapshots

* Revert notebook-panel-1 snapshot update

* Robustify test by defining notebook a priori

* Update Playwright Snapshots

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>
Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>

* Remove unnecessary requirement from servicesPlugin (#15362)

* [pre-commit.ci] pre-commit autoupdate (#15358)

* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](pre-commit/pre-commit-hooks@v4.4.0...v4.5.0)
- [github.com/python-jsonschema/check-jsonschema: 0.27.0 → 0.27.1](python-jsonschema/check-jsonschema@0.27.0...0.27.1)
- [github.com/psf/black: 23.9.1 → 23.10.1](psf/black@23.9.1...23.10.1)
- [github.com/astral-sh/ruff-pre-commit: v0.0.292 → v0.1.4](astral-sh/ruff-pre-commit@v0.0.292...v0.1.4)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Alig ruff version

* Add ruff exception

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>

* Update notebook window on resize if height changes (#15357)

* Add a test for resizing notebook (should fail)

* Update window on resize

* Polish the test

* Add the test notebook

* Use throttler to limit the number of updates

Using throttler over debouncer proposed in #15109 because
debouncer would not show cells progressively during resize
until user has stopped resizing.

* Open files from errors (#13390)

* Create renderer to render errors

* WIP tests scaffold

* Implement opening files from paths in error renderer

* Finish sentence in a comment

* Apply suggestions from code review

Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>

* Improve RFC 5147 adherence for ranges

* Switch to 0-based line numbers based on RFC5147 2.2.3:

"Line position counting starts with zero, so the line
position before the first line of a text/plain MIME
entity has the line position zero"

* Fix undefined check after adding `parseInt`

---------

Co-authored-by: krassowski <5832902+krassowski@users.noreply.github.com>
Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>

* Bump tj-actions/changed-files from 39.2.0 to 40.0.2 (#15342)

Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 39.2.0 to 40.0.2.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v39.2.0...v40.0.2)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix scrolling past long outputs in presence of un-rendered headings (#15356)

* Add a test for smooth scrolling over long outputs

* Do no scroll when setting the cursor position in md cells

* Adjust test name to clarify the test case

* Add the test notebook

* Clean up the test directory

* Fix overreactive scrolling to next cell after `Shift + Enter` (#15288)

* Add a test case for #14878

* Fix the smart/auto scrolling logic for long items

Items larger than the size of the viewport were not
considered by the scroll logic leading to bad UX when
smart/auto scroll was requested on certain operations.

* Use pixel-based, cell-height-derived threshold for scrolling

* Implement dual behaviour, simplify code, account for top padding

* Use greater or equal to avoid scrolling if item fully visible

* Update tests to reflect new expectations

* Clean up the temp directory after tests

* Fix scrolling when dragging files in the file browser (#15318)

* Fix scrolling on edges in file browser

* Add a simple test

* Fix update button in extension manager (#15331)

* Fix update button in extension manager

* Apply suggestions from code review

Make action options more flexible

Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>

* Fix docs and make install options optional

* Add test for update button

* Update Playwright Snapshots

* Revert spurious snapshot updates

---------

Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: krassowski <5832902+krassowski@users.noreply.github.com>

* added default property (#15346)

* Exclude ipynb files in prettier pre-commit (#15378)

* Update @jupyter/ydoc in dev_mode (#15383)

* Define cells to run as independent of selection (#14996)

* Define cells to run as independent of selection

* Restore side effects of `runAll()`

* Skip optional `slice` argument

Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>

* Restore previous behaviour of `runAllBelow()`

by making last cell active.

---------

Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>

* Fix highlighting search in an out-of-viewport cell (#15376)

* Fix highlighting search in an out-of-viewport cell

* Update cells count

* Don't show default value for objects in Settings Editor (#15380)

* Don't show default value if schema type is `object`

* Prettier

* Bump axios from 1.3.4 to 1.6.1 (#15385)

Bumps [axios](https://github.com/axios/axios) from 1.3.4 to 1.6.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.3.4...v1.6.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix connection loop issue with standalone foreign document in LSP (#15262)

* Populate

* Improve VirtualDocument

* Add test

* Update packages/lsp/test/document.spec.ts

Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>

---------

Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>

* Update to TypeScript 5.1 (#14638)

* Bump typescript to 5.1.6 and rimraf to 5.0.5

* Dedupe the yarn.lock

---------

Co-authored-by: Frédéric Collonval <fcollonval@gmail.com>

* Resolved merge conflict

* Package integrity updates

Merged changes from main

* Package integrity updates

* Package integrity updates

* Update Playwright Snapshots

* Fixed integrity

* Update Playwright Snapshots

* Update Playwright Snapshots

* Remove spurious snapshot updates

* Update the test to reflect the new wording

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: EC2 Default User <m158261@users.noreply.github.com>
Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>
Co-authored-by: Tian Wang <wangtian0312@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frédéric Collonval <fcollonval@users.noreply.github.com>
Co-authored-by: Paul Kim <paulkim3151@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Divyansh Choudhary <divyanshchoudhary99@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nate Bowditch <111072326+nbowditch-einblick@users.noreply.github.com>
Co-authored-by: LJMP <24670649+LJMP@users.noreply.github.com>
Co-authored-by: Nicolas Brichet <32258950+brichet@users.noreply.github.com>
Co-authored-by: firai <firai.admin@gmail.com>
Co-authored-by: Duc Trung Le <leductrungxf@gmail.com>
Co-authored-by: Jeremy Tuloup <jeremy.tuloup@gmail.com>
Co-authored-by: Frédéric Collonval <fcollonval@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Extension manager "Update to" button does not update extensions
3 participants