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

chore: Move Apps-Engine to monorepo #32951

Merged
merged 55 commits into from
Sep 27, 2024
Merged

chore: Move Apps-Engine to monorepo #32951

merged 55 commits into from
Sep 27, 2024

Conversation

d-gubert
Copy link
Member

@d-gubert d-gubert commented Jul 31, 2024

Proposed changes (including videos or screenshots)

Move the Apps-Engine repo (https://github.com/RocketChat/Rocket.Chat.Apps-Engine) to the core monorepo (https://github.com/RocketChat/Rocket.Chat)

This will allow for a much smoother developer experience when adding features to the engine, as it won't be necessary anymore to wait for merges on one repo to then get other PR merged, and also we won't have conflicts anymore if something is merged on the engine side but not on the core side.

Benefits

  • Smoother DX - there won't be a need to keep and conciliate PRs in two repos when making changes
  • Slimmer package - there won't be a need for the published package to contain internal logic, we'll be able to simply publish types. The same goes for its dependencies, as Deno, for instance, won't be required by the package when it is installed for app development.
  • Better control - we'll be able to close internal pieces of the engine as "Enterprise Edition" and keep public parts open much more easily
  • Core types interop - Rocket.Chat types will be more accessible to the package.

Drawbacks

  • Increased monorepo operations - CI/CD cycles will potentially get slower given that more things will need to be installed and built
  • Apps-Engine release process tightly closed to the Rocket.Chat one - this will prevent the Apps-Engine package from having a release (e.g. a patch) outside of Rocket.Chat's release cycle automatically. However, this situation has been rare in the past and it can be worked around manually if needed.
  • Github workflows take a long time to run on the monorepo - well... yeah.

Considerations

  • What to do with issues and PRs on the Apps-Engine repo?

  • What do we do with the API reference? Currently it is hosted in github.io. Can we just port it?

  • What do we need to adapt here for Codecov?

Issue(s)

Steps to test or reproduce

Further comments

https://rocketchat.atlassian.net/browse/CONN-308

As of now, the apps-engine cannot execute deno without a global installation in the system (e.g. the binary being available /bin/deno). This seemed to start after Meteor's update to their own Node patch 14.21.4

This was because we were overriding the ENV for the process and weren't passing a PATH, which causes the system to be unable to find the deno executable. It never happened before because previously we were using the deno-bin package to install deno and so we knew the direct path to the executable and didn't need to rely on the PATH environment variable.

Note for reviewers

Most of the files introduced by this PR already exist and are part of the @rocket.chat/apps-engine package - meaning they don't need further review, as they're just being moved. The important files to keep an eye out for are the ones outside of the packages/apps-engine folder, the packages/apps-engine/package.json file itself and whatever scripts it references, as those integrate the new package into the rest of the monorepo ecosystem.

In order words, don't be frightened by the amount of files 🙈

Copy link
Contributor

dionisio-bot bot commented Jul 31, 2024

Looks like this PR is ready to merge! 🎉
If you have any trouble, please check the PR guidelines

Copy link

changeset-bot bot commented Jul 31, 2024

⚠️ No Changeset found

Latest commit: 2bb36d7

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

codecov bot commented Aug 1, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 59.38%. Comparing base (214d1b3) to head (2bb36d7).
Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #32951      +/-   ##
===========================================
+ Coverage    58.35%   59.38%   +1.03%     
===========================================
  Files         2692     2556     -136     
  Lines        65265    63080    -2185     
  Branches     14730    14158     -572     
===========================================
- Hits         38084    37459     -625     
+ Misses       24403    22915    -1488     
+ Partials      2778     2706      -72     
Flag Coverage Δ
unit 75.32% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

@d-gubert d-gubert added this to the 6.14 milestone Sep 26, 2024
@d-gubert d-gubert added the stat: QA assured Means it has been tested and approved by a company insider label Sep 26, 2024
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Sep 26, 2024
packages/apps-engine/LICENSE Outdated Show resolved Hide resolved
apps/meteor/.docker/Dockerfile Outdated Show resolved Hide resolved
apps/meteor/.docker/Dockerfile.alpine Outdated Show resolved Hide resolved
.tool-versions Outdated Show resolved Hide resolved
apps/meteor/.docker/Dockerfile Outdated Show resolved Hide resolved
apps/meteor/.docker/Dockerfile.alpine Outdated Show resolved Hide resolved
@dionisio-bot dionisio-bot bot removed the stat: ready to merge PR tested and approved waiting for merge label Sep 27, 2024
@ggazzo ggazzo merged commit bc1e6ee into develop Sep 27, 2024
18 checks passed
@ggazzo ggazzo deleted the chore/apps-engine-package branch September 27, 2024 22:36
gabriellsh added a commit that referenced this pull request Sep 30, 2024
…ocket.Chat into feat/airgapped-restrictions

* 'feat/airgapped-restrictions' of github.com:RocketChat/Rocket.Chat: (57 commits)
  fix: Async E2EE key exchange not working on develop (#33378)
  chore: Move Apps-Engine to monorepo (#32951)
  chore(Sidepanel): uses only local channels and discussions (#33387)
  chore: add gazzodown preview (#33279)
  fix: Avoid notifying `watch.settings` on uncaught errors (#33376)
  fix: race condition when forwarding livechat by splitting subscription removal (#33381)
  chore: Single Contact ID: improved typings and removed some duplicated code (#33324)
  ci: remove Jira-GitHub security integration (#33384)
  chore: add ui-composer to storybook (#33383)
  regression: `Sidepanel` sort requires refresh after room update (#33370)
  ci: use node20 for release action (#33343)
  Bump rocket.chat to 6.14.0-develop (#33366)
  chore: replace Meteor._localStorage -> Accounts.storageLocation (#33356)
  Release 6.13.0-rc.1
  fix: Avoid destructuring `connectionData` when value is undefined (#33339)
  feat: Adds new admin feature preview setting management (#33212)
  regression: `Sidepanel` color highlight (#33342)
  chore: move common files to core-services (#33341)
  feat: Adds new admin feature preview setting management (#33212)
  chore: create network broker package (#33338)
  ...
gabriellsh added a commit that referenced this pull request Oct 2, 2024
…ocket.Chat into airgapped/composer-restriction

* 'feat/airgapped-restrictions' of github.com:RocketChat/Rocket.Chat: (27 commits)
  review
  fix: skip invalid test for now
  consolidate restriction logic inside module
  remove constant from restriction module
  fix changeset
  Move tests to test folder
  remove wrong import
  fix proxyquire for airGappedRestrictionsCheck.ts
  test fix
  fix: Async E2EE key exchange not working on develop (#33378)
  Fix airgappedRestrictionswrapper tests
  Fix airgappedRestrictionCheck tests
  undo
  fix AirGappedRestriction logic
  Update logic and tests
  chore: Move Apps-Engine to monorepo (#32951)
  chore(Sidepanel): uses only local channels and discussions (#33387)
  chore: add gazzodown preview (#33279)
  wip
  fix: Avoid notifying `watch.settings` on uncaught errors (#33376)
  ...
@ggazzo ggazzo modified the milestones: 6.14, 7.0 Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stat: QA assured Means it has been tested and approved by a company insider
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants