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

docs: adding an ADR to OEP-65 about a unified platform repository #598

Merged
merged 7 commits into from
Aug 21, 2024

Conversation

davidjoy
Copy link
Contributor

This ADR describes a decision to create a unified platform library, combining frontend-build, frontend-platform, frontend-plugin-framework, frontend-component-header, frontend-component-footer, and eslint-config. It will also include the ‘shell’ application for the new architecture proposed in OEP-65.

This ADR describes a decision to create a unified platform library, combining frontend-build, frontend-platform, frontend-plugin-framework, frontend-component-header, frontend-component-footer, and eslint-config.  It will also include the ‘shell’ application for the new architecture proposed in OEP-65.
@openedx-webhooks
Copy link

openedx-webhooks commented Jun 26, 2024

Thanks for the pull request, @davidjoy!

What's next?

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

🔘 Get product approval

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

  • If it does, you'll need to submit a product proposal for your contribution, and have it reviewed by the Product Working Group.
    • This process (including the steps you'll need to take) is documented here.
  • If it doesn't, simply proceed with the next step.

🔘 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:

  • Dependencies

    This PR must be merged before / after / at the same time as ...

  • Blockers

    This PR is waiting for OEP-1234 to be accepted.

  • Timeline information

    This PR must be merged by XX date because ...

  • Partner information

    This is for a course on edx.org.

  • Supporting documentation
  • Relevant Open edX discussion forum threads

🔘 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.

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

Who will review my changes?

This repository is currently maintained by @sarina. 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:

  • The size and impact of the changes that it introduces
  • The need for product review
  • Maintenance status of the parent repository

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

@openedx-webhooks openedx-webhooks added the open-source-contribution PR author is not from Axim or 2U label Jun 26, 2024
Modernization
=============

We also feel the need to continue to modernize our library repositories by adopting industry standard technologies like Typescript, or more performant webpack loaders, and there's some sentiment that this may be the right time to make these changes as we're already undergoing a paradigm shift. ``frontend-platform``, for instance, simplifies significantly if we use TypeScript types instead of the bespoke "interface" and "service implementation" system in that repository.
Copy link
Contributor

Choose a reason for hiding this comment

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

Typescript, ... more performant webpack loaders, ... simplifies significantly if we use TypeScript types instead of the bespoke "interface"

My hero ❤️

@itsjeyd
Copy link

itsjeyd commented Jul 12, 2024

Hey @davidjoy and @bradenmacdonald! OSPR management check-in:

What are the next steps here? Will the changes need review from more people before we can consider them ready for merge?

@itsjeyd itsjeyd added the waiting on author PR author needs to resolve review requests, answer questions, fix tests, etc. label Jul 12, 2024
Copy link
Contributor

@bradenmacdonald bradenmacdonald left a comment

Choose a reason for hiding this comment

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

@itsjeyd I like this approach so it's +1 from me. It would be good to have +1 from a couple more people though.

@sarina
Copy link
Contributor

sarina commented Jul 12, 2024

I requested review from @brian-smith-tcril who is on holiday through mid next week, as well as @arbrandes. @bradenmacdonald is there anyone else we should tag?

@sarina sarina requested a review from arbrandes July 12, 2024 13:12
@bradenmacdonald
Copy link
Contributor

@sarina Not sure if he'll want to review this or not but I'd like to make sure that any remaining concerns from @regisb have been addressed.

@regisb
Copy link

regisb commented Jul 15, 2024

I have some concerns about this PR, but not all of them need be addressed right now. (For instance, I'm not convinced that bundling 5 dependencies in one will simplify dependency management. Sure, there will be just one package for which versions will need to be in sync, but breaking changes will also happen five times more often.)

My only remaining issue is with the planning. Specifically, I'd like to have a mechanism in place for dependency synchronisation ASAP rather than at the end of the implementation of OEP-65. The completion date for OEP-65 is expected after the Sumac release. But having consistent versions for the header, footer and other libraries in all MFEs is something that would be extremely useful right now. Since we will have to set this up anyway, why not start there?

@davidjoy
Copy link
Contributor Author

Simplifying the dependency graph between frontend-build, frontend-platform, frontend-component-header, frontend-component-footer, frontend-plugin-framework, (as well as frontend-slot-footer, eslint-config, and typescript-config, it turns out) will remove a significant number of 'edges' between them, and between them and MFEs.

Any breaking changes internal to that graph are no longer breaking changes. With the addition of the shell, we further simplify the dependency tree between these repos and MFEs. We also reduce the API surface since many things MFEs needed to do, the shell will now do. This reduces the number of potential breaking changes even further. Yes, any that do occur will happen in this library, rather than spread across 5-8. Reading, understanding, and absorbing breaking changes from one change log will be easier than doing it across many.

This lowers dependency overhead, plain and simple. It doesn't, in and of itself, give us a better dependency management process. But frankly it seems like a blatantly 'better' place to be with respect to the actual dependency graph.

Since we will have to set this up anyway, why not start there?

If this is implying I should stop my work and go work on that instead, then I guess we can all talk about that with Axim, who I'm contracting with. That implies the short term tactical necessity of dealing with dependency management is so great that we should re-allocate folks working on strategic initiatives to work on it instead.

If it's not implying that this is up to me, personally, to drop everything and go work on it, then my work with this ADR and OEP-65 should continue in parallel, and this is an unrelated discussion to the decision in this ADR. We'd discussed finding volunteers to help dedicate some time to dependency management, and I'm more than happy to work with those folks.

@itsjeyd itsjeyd added waiting for eng review PR is ready for review. Review and merge it, or suggest changes. and removed waiting on author PR author needs to resolve review requests, answer questions, fix tests, etc. labels Jul 18, 2024
@itsjeyd
Copy link

itsjeyd commented Aug 8, 2024

Hey @arbrandes and @brian-smith-tcril, a friendly reminder to check out this PR when you have a minute.

Copy link
Contributor

@brian-smith-tcril brian-smith-tcril left a comment

Choose a reason for hiding this comment

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

Overall this looks great! I left a couple comments with ideas on how to rearrange some things for clarity, and I'd love to hear your thoughts on my suggestions!

@sarina
Copy link
Contributor

sarina commented Aug 21, 2024

@davidjoy what's the status of this one?

@davidjoy
Copy link
Contributor Author

@sarina Just need to respond to Brian's feedback above. If I can get another 👍🏻 from either @brian-smith-tcril or @arbrandes after that I'd consider this ready to merge.

Copy link
Contributor

@brian-smith-tcril brian-smith-tcril left a comment

Choose a reason for hiding this comment

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

:shipit:

@brian-smith-tcril brian-smith-tcril merged commit 9f3ab4a into openedx:master Aug 21, 2024
5 checks passed
@openedx-webhooks
Copy link

@davidjoy 🎉 Your pull request was merged! Please take a moment to answer a two question survey so we can improve your experience in the future.

@davidjoy davidjoy deleted the djoy/oep-65-adr-0001 branch August 21, 2024 14:48
davidjoy added a commit to davidjoy/open-edx-proposals that referenced this pull request Aug 28, 2024
…enedx#598)

* docs: adding an ADR to OEP-65 about a unified platform repository

This ADR describes a decision to create a unified platform library, combining frontend-build, frontend-platform, frontend-plugin-framework, frontend-component-header, frontend-component-footer, and eslint-config.  It will also include the ‘shell’ application for the new architecture proposed in OEP-65.

* docs: fixing some RST styling issues and removing link

Link was to a second ADR that hasn’t been written yet.

* docs: misc formatting, adding a change history

* docs: adding a reference to the ADR from OEP-65

* docs: adding a toctree for decisions to OEP-65

* docs: addressing review feedback

* docs: splitting up the “Significant API Changes” section by library

Thanks to @brian-smith-tcril for the suggestion.
@itsjeyd itsjeyd removed the waiting for eng review PR is ready for review. Review and merge it, or suggest changes. label Sep 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
open-source-contribution PR author is not from Axim or 2U
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

7 participants