openedx / frontend-lib-content-components

[Moved to openedx/frontend-app-course-authoring] A library of high-level components for content handling (viewing, editing, etc. of HTML, video, problems, etc.), to be shared by multiple MFEs.
GNU Affero General Public License v3.0
11 stars 33 forks source link

feat: convert this library to be "buildless" #498

Closed bradenmacdonald closed 3 months ago

bradenmacdonald commented 3 months ago

There's no reason to compile this code into a dist folder before we publish it. It's only used in the Course Authoring MFE, and that MFE's webpack build has no problem consuming this as raw JSX/TSX files. Publishing an untransformed build has a number of advantages: makes development easier, speeds up CI, simplifies things, and applies consistent babel/polyfill settings to all of the code in the MFE, instead of having separate settings for the editors vs. the rest of the MFE.

Part of https://github.com/openedx/frontend-lib-content-components/issues/499

How to test:

Simple way:

  1. Check out this commit of frontend-app-course-authoring or edit its package.json and change the @edx/frontend-lib-content-components version to: github:open-craft/frontend-lib-content-components#braden/buildless
  2. Run npm install
  3. Start course-authoring however you normally do (e.g. APP_ID=course-authoring PUBLIC_PATH=/course-authoring/ MFE_CONFIG_API_URL='http://localhost:8000/api/mfe_config/v1' npm run start -- --host apps.local.overhang.io)
  4. Verify that you can still edit components in courses

Advanced way

⁉️ Is there an easier way to do this? ⁉️🧐

With this method you can more easily modify the code and get hot reloading as you do:

  1. Check out this branch, and make sure this repo's folder is alongside the course authoring MFE's folder.
  2. Run the following from the course authoring MFE's folder:
    npm install
    rm -rf node_modules/@edx/frontend-lib-content-components && ln -s "$(realpath ../frontend-lib-content-components)" node_modules/@edx/frontend-lib-content-components
    cd ../frontend-lib-content-components
    rm -rf node_modules && ln -s ../frontend-app-course-authoring/node_modules node_modules
  3. Start course-authoring however you normally do
  4. Verify that you can still edit components in courses, and when you make changes to this repo's code, they're immediately reflected in the course authoring MFE.

Concerns

The www project doesn't work for me, either before or after this PR. Is it supposed to be working??

openedx-webhooks commented 3 months ago

Thanks for the pull request, @bradenmacdonald!

What's next?

Please work through the following steps to get your changes ready for engineering review:

:radio_button: Get product approval

If you haven't already, check this list to see if your contribution needs to go through the product review process.

:radio_button: Provide context

To help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:

:radio_button: Get a green build

If one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green.

:radio_button: Let us know that your PR is ready for review:

Who will review my changes?

This repository is currently maintained by @openedx/2u-tnl. Tag them in a comment and let them know that your changes are ready for review.

Where can I find more information?

If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources:

When can I expect my changes to be merged?

Our goal is to get community contributions seen and reviewed as efficiently as possible.

However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:

:bulb: As a result it may take up to several weeks or months to complete a review and merge your PR.

codecov[bot] commented 3 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.91%. Comparing base (beb4813) to head (77c0d1b). Report is 3 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #498 +/- ## ======================================= Coverage 88.91% 88.91% ======================================= Files 248 248 Lines 4554 4554 Branches 943 943 ======================================= Hits 4049 4049 Misses 472 472 Partials 33 33 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

bradenmacdonald commented 3 months ago

Closing in favor of https://github.com/openedx/frontend-app-course-authoring/pull/1208

openedx-webhooks commented 3 months ago

@bradenmacdonald Even though your pull request wasn’t merged, please take a moment to answer a two question survey so we can improve your experience in the future.