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

Develop Elyra against the Jupyterlab source repo #2709

Merged
merged 6 commits into from
May 13, 2022

Conversation

ajbozarth
Copy link
Member

@ajbozarth ajbozarth commented May 5, 2022

Adds documentation and some additions to the build scripts to allow
Elyra developers to develope Elyra against a local build of
Jupyterlab.

Updates include:

  • Updated documentation with step by step instructions on how to
    step up the devlopment environment
  • Updating our page_config.json to the new format and location.
    We were previously using a deprecated format and location
    uncompatable with this feature.
  • Added a way to run clean-jupyterlab.sh without installing a new
    version of jupyterlab
  • Added new npm targets and make targets to leverage a yarn link
    version of @jupyterlab/builder. This was added to the existing
    support for make dev-link, but the order of make targets had to
    be rearranged to make sure lerna was installed before calling it.
  • Made a small backwards compatable change to fix a type conflict
    found when running against jupyterlab 4.0.0 alpha

These changes are blocked by

without that change you also need to update the version of
@jupyterlab/builder in every package.json to prevent an error

Developer's Certificate of Origin 1.1

   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

Adds documentation and some additions to the build scripts to allow
Elyra developers to develope Elyra against a local build of
Jupyterlab.

Updates include:
- Updated documentation with step by step instructions on how to
step up the devlopment environment
- Updating our `page_config.json` to the new format and location.
We were previously using a deprecated format and location
uncompatable with this feature.
- Added a way to run `clean-jupyterlab.sh` without installing a new
version of jupyterlab
- Added new npm targets and make targets to leverage a yarn link
version of `@jupyterlab/builder`. This was added to the existing
support for `make dev-link`, but the order of make targets had to
be rearranged to make sure lerna was installed before calling it.
- Made a small backwards compatable change to fix a type conflict
found when running against jupyterlab 4.0.0 alpha

These changes are blocked by
jupyterlab/jupyterlab#12533
without that change you also need to update the version of
`@jupyterlab/builder` in every package.json to prevent an error
@ajbozarth ajbozarth added this to the 3.9.0 milestone May 5, 2022
@ajbozarth ajbozarth self-assigned this May 5, 2022
@elyra-bot
Copy link

elyra-bot bot commented May 5, 2022

Thanks for making a pull request to Elyra!

To try out this branch on binder, follow this link: Binder

@ajbozarth ajbozarth added area:documentation Improvements or additions to documentation component:build build and build related issues(dependencies and docker) labels May 5, 2022
@ajbozarth
Copy link
Member Author

@kevin-bates is there any way to remove this dependency on ipython_genutils?

from ipython_genutils.importstring import import_item

It causes issues in completely clean environments since lab no longer depends on it so we're no longer getting the import second hand. Also the readme for that library is literally just a "do not use this" message. I wasn't sure how to remove it since I don't quite understand what it's doing in our code.

@kevin-bates
Copy link
Member

@kevin-bates is there any way to remove this dependency on ipython_genutils?

Yes, this dependency should be removed.

It causes issues in completely clean environments since lab no longer depends on it so we're no longer getting the import second hand. Also the readme for that library is literally just a "do not use this" message.

This package has been removed from several projects within the ecosystem. I didn't think to check we'd be using it but, well, we are.

I wasn't sure how to remove it since I don't quite understand what it's doing in our code.

The package, in general, provides utility methods mostly geared toward bridging the gap between python 2 and 3 codebases. However, there are some utilities that are just that, utilities. In this case, import_item essentially hydrates a class definition from its dotted notation string and is used by the metadata service to enable per-schema instances in which application-specific logic can take place.

I should have a PR for this shortly.

@ajbozarth
Copy link
Member Author

@karlaspuldaro I believe I've addressed all your documentation comments if you would like to take another look

@ajbozarth
Copy link
Member Author

I also merged master to grab @kevin-bates fix in #2710 so this will also work on completely fresh conda envs as well now

Copy link
Member

@karlaspuldaro karlaspuldaro left a comment

Choose a reason for hiding this comment

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

Thank you for the updates! The steps to build Elyra against lab src repo work as expected.

@akchinSTC akchinSTC merged commit 8589e06 into elyra-ai:master May 13, 2022
ajbozarth added a commit to ajbozarth/elyra that referenced this pull request Jun 22, 2022
In elyra-ai#2709 I removed jupyterlab from the build_requires.txt so that
the local versaion of jupyterlab could be used if installed. This
has caused frustration in users, so I've added the dependency back
and update the make dev-install target to not use the dependency
file at all, instead using a new make target to install the
required dependency.
akchinSTC pushed a commit that referenced this pull request Jun 24, 2022
In #2709 I removed jupyterlab from the build_requires.txt so that
the local versaion of jupyterlab could be used if installed. This
has caused frustration in users, so I've added the dependency back
and update the make dev-install target to not use the dependency
file at all, instead using a new make target to install the
required dependency.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:documentation Improvements or additions to documentation component:build build and build related issues(dependencies and docker)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants