# How to upgrade a source extension by JupyterLab 2.0 to prebuilt extension by JupyterLab3.x

**URL:** <https://discourse.jupyter.org/t/how-to-upgrade-a-source-extension-by-jupyterlab-2-0-to-prebuilt-extension-by-jupyterlab3-x/16016>\
**Category:** JupyterLab\
**Tags:** community, jupyterlab, how-to, help-wanted\
**Created:** [September 29, 2022, 2:18am UTC](https://discourse.jupyter.org/t/how-to-upgrade-a-source-extension-by-jupyterlab-2-0-to-prebuilt-extension-by-jupyterlab3-x/16016 "2022-09-29T02:18:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![cmcai0104](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/cmcai0104/32/8067_2.png) [@cmcai0104](https://discourse.jupyter.org/u/cmcai0104)\
**Post date:** [September 29, 2022, 2:18am UTC](https://discourse.jupyter.org/t/how-to-upgrade-a-source-extension-by-jupyterlab-2-0-to-prebuilt-extension-by-jupyterlab3-x/16016/1 "2022-09-29T02:18:12Z")

</div>

I have a source extension which is built by JupyterLab 2.0, and my extension incloud frontend and backend. Now I want to upgrade to prebuilt extension by JupyterLab3.x to avoid rebuild my image by “jupyter lab build”。

And after changing, How to setup and install my package.

---

<div class="post-metadata">

**Author:** ![djangoliv](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/djangoliv/32/5329_2.png) [@djangoliv](https://discourse.jupyter.org/u/djangoliv)\
**Post date:** [September 29, 2022, 7:10am UTC](https://discourse.jupyter.org/t/how-to-upgrade-a-source-extension-by-jupyterlab-2-0-to-prebuilt-extension-by-jupyterlab3-x/16016/2 "2022-09-29T07:10:12Z")

</div>

Here, the documentation of extension migration:

[https://jupyterlab.readthedocs.io/en/stable/extension/extension\_migration.html#](https://jupyterlab.readthedocs.io/en/stable/extension/extension_migration.html#)

---

<div class="post-metadata">

**Author:** ![cmcai0104](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/cmcai0104/32/8067_2.png) [@cmcai0104](https://discourse.jupyter.org/u/cmcai0104)\
**Post date:** [September 29, 2022, 8:17am UTC](https://discourse.jupyter.org/t/how-to-upgrade-a-source-extension-by-jupyterlab-2-0-to-prebuilt-extension-by-jupyterlab3-x/16016/3 "2022-09-29T08:17:23Z")

</div>

After migrating from JupyterLab 2.x to JupyterLab 3.x, will automatic switch to prebuilt?

---

<div class="post-metadata">

**Author:** ![bollwyvl](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/bollwyvl/32/904_2.png) [@bollwyvl](https://discourse.jupyter.org/u/bollwyvl)\
**Post date:** [September 29, 2022, 2:43pm UTC](https://discourse.jupyter.org/t/how-to-upgrade-a-source-extension-by-jupyterlab-2-0-to-prebuilt-extension-by-jupyterlab3-x/16016/4 "2022-09-29T14:43:24Z")

</div>

The docs are fairly comprehensive, but a lot will be trial and error. _If_ it’s a straight `cookiecutter` upgrade, it _might_ just work.

It’s worth looking at the structure of the current cookiecutter, and observing some of the differences, especially in:

- `pyproject.toml`
- `package.json`
- ` __init__.py`
