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

Upgrade Node and core dependencies #219

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from
Draft

Conversation

mehallhm
Copy link
Contributor

@mehallhm mehallhm commented Sep 24, 2024

Purpose

This is a living PR to upgrade all major dependencies for the catalog api. In a nutshell, nearly every dependency for the project is either deprecated, end-of-life, or unmaintained; the goal is to bring all the dependencies to a more up-to-date version as well as make it easier to avoid this situation in the first place. This PR builds off the work of #213.

Contributors

@mehallhm

Notes

The primary goal will be to upgrade Node versions. Node 16 (the currently used version) was eol a year ago. The issue is that the version of elasticsearch currently used cannot be run on newer versions of Node. After that, upgrading all the other packages to newer versions should be simple, nothing else has such bad cross-dependence.

Secondary goals include minimizing dependencies through vendoring and more modern tooling to avoid this problem in the future as well as build system / tooling changes. A newer Node version allows native support of modern Java/Typescript syntax and language features without polyfills, potentially saving build complexity and allowing moves towards newer standards, such as ES Modules.

Reviewers

This draft is meant to solicit feedback and create a conversation around the best way to move forward. As such, it is not ready to be reviewed in its entirety yet.

Progress

The current changes are proposed in PR #231, broken out since this branch has become too divergent from main.

@mehallhm mehallhm self-assigned this Sep 24, 2024
@coveralls
Copy link
Collaborator

Coverage Status

coverage: 80.481%. remained the same
when pulling 8382891 on upgrade-core-deps
into 33e48e4 on master.

Upgraded the development Docker compose to the latest minor version of
Elasticsearch for our current major version. Upgraded the client to the
same version. Refactored Yarn scripts and Docker compose to comply with
the modern compose spec
Upgrade Babel and assoicated tooling. Removed unecessary plugins as well
as moved all Babel deps to dev packages
@elvincheng3
Copy link
Contributor

Would it be better to create an epic for updating dependencies, and then break each task into stories? I think it might be less risky to isolate each update instead of adding them into one large PR.

@mehallhm
Copy link
Contributor Author

mehallhm commented Oct 4, 2024

It would probably be smart to do it as atomically as possible. However, this branch doesn't even run yet. I do agree that extensive testing is necessary before merging this mess - ideally we would do a side by side deployment and incrementally migrate over. Once the code can actually run, we could then chop it into smaller PRs and merge those progressively as well (kinda like a stacking workflow). For now, this is still a draft to actually get something working.

@mehallhm mehallhm linked an issue Oct 21, 2024 that may be closed by this pull request
@mehallhm mehallhm mentioned this pull request Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update GraphQL v3 -> v4
4 participants