-
Notifications
You must be signed in to change notification settings - Fork 78
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
3042: Refactor client applications into a monorepo with turborepo
, extract fides-js
into a standalone package, and improve privacy-center
to load configuration at runtime
#3105
Conversation
Codecov ReportPatch coverage has no change and project coverage change:
Additional details and impacted files@@ Coverage Diff @@
## main #3105 +/- ##
==========================================
- Coverage 87.37% 87.36% -0.01%
==========================================
Files 313 313
Lines 18243 18248 +5
Branches 2366 2368 +2
==========================================
+ Hits 15940 15943 +3
- Misses 1871 1872 +1
- Partials 432 433 +1 ☔ View full report in Codecov by Sentry. |
Passing run #1752 ↗︎Details:
This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. |
…d correctly in sample_project
31bc70f
to
e51c624
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
woo turbo!! nice job working through setting this up!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Things seemed to working well! I agree with what @allisonking said. It's probably worth shipping it and ironing out the kinks this week.
I'm looking forward to using this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, I think this is ready to go. Lots of follow-up issues to tackle though, so before we merge we'll just need to figure out a safe release plan!
…build" ...and remove the footgun on fides-js "dev" target that doesn't play nice with turbo
Closes #3042
❗ Potential area of risk in deployment- https://github.com/ethyca/fides/pull/3105/files/faab9e7d25dc92c4463b2d3facde7a1858cc64ac#diff-0f3c0f74b23a0b3e4798f66a9b7ffd7f5d850165a10793f9a101235e75f1b61bR36, let's be sure to watch for this at time of deployment to ensure admin-ui is deployed appropriately to pypi
Code Changes
/clients
so that we can share code between all clients.fides-consent
fromprivacy-center
into a first-class package inclients
so that 1) we can share code fromfides-consent
between all clients, and 2) we're no longer reliant on having to build/run theprivacy-center
to usefides-consent
.fides-consent
tofides-js
to clarify that it can support other, non-consent functionality in the future (like proxying API calls to Fides, being used for DSR requests, etc.). See Refactorfides-consent
andprivacy-center
to load all configuration at run-time (instead of build-time), and renamefides-consent
->fides-js
#3135privacy-center
andfides-js
to load configuration at run-time, instead of build-time. This allows editing theconfig.json
file provided to the Privacy Center and no longer requiring anpm run build
to update the changes. See Refactorfides-consent
andprivacy-center
to load all configuration at run-time (instead of build-time), and renamefides-consent
->fides-js
#3135fides-js
tofides.js
instead offides.global.js
fides-js
fides-js
: documentsrc/fides.ts
, cleanupFides.init
, etc.fides-js
fides-js
packageFollow-up issues:
/fides.js
download with cache headers and a localpublic/assets/fides.js
file #3170admin-ui
,privacy-center
, etc.) to improve build times and reduce image size #3174privacy-center
configuration from external sources (S3, HTTPS API) instead of justfile:
URLs #3175Dev Changes
If you only use
nox
commands, continue as before, nothing needed.If you wish to run any/all clients outside of the
nox
environment, with Turborepo as part of the codebase, you'll need to do 3 things:npm install turbo --global
clients
folder, runnpm install
. This will install the new dev dependencyturbo
, which is basically a wrapper around npm that helps manage shared dependencies. This will also install the appropriate dependencies inclients
and in each client withinclients
folder. You may need to first remove allnode_modules
in each of the clients (admin-ui, pc, etc)turbo
instead ofnpm
. E.g. instead of runningnpm run dev
, useturbo run dev
, etc. All commands that existed before should still exist, given you're usingturbo
. Let me know if something is broken for you!Also note that to install packages in any package in
clients
:Example:
See https://turbo.build/repo/docs/handbook/package-installation#addingremovingupgrading-packages for more details
Steps to Confirm
Pre-Merge Checklist
CHANGELOG.md