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

feat(apps): plugin source in its own model, part 1 #9853

Merged
merged 29 commits into from
May 19, 2022

Conversation

mariusandra
Copy link
Collaborator

@mariusandra mariusandra commented May 19, 2022

Problem

PR #9825 is going to be be split in two for safety.

Changes

This PR includes the changes to the models, the django API, and the frontend. The plugin server gets a JOIN that reads in data from the new location instead of the old source field.

How did you test this code?

  • All the work and tests built in feat(apps): plugin source in its own model #9825
  • Created a new plugin locally. After saving there was data in the new and old models.
  • For plugins that were migrated, I code was in the new model, and visible in the editor (the migration worked). I edited the "index.ts" file in the editor, saw the pluginsourcefile table change, and the old source field was synced.

@mariusandra mariusandra changed the title Plugin source db simple feat(apps): plugin source in its own model, part 1 May 19, 2022
@mariusandra
Copy link
Collaborator Author

@macobo here's the first split. This keeps the changes minimal in the plugin server, and even keeps the old source field in sync with the new model, in case we need to revert and someone edits the code in between.

Is this safe enough to get in?

Praying to the jest gods now 🤞 🙏

@mariusandra mariusandra requested a review from macobo May 19, 2022 10:00
Copy link
Contributor

@macobo macobo left a comment

Choose a reason for hiding this comment

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

This looks sane to me! 🚢

@mariusandra
Copy link
Collaborator Author

This test keeps failing at random:
image

will re-run until it's green and then merge it in.

@mariusandra mariusandra merged commit a073619 into master May 19, 2022
@mariusandra mariusandra deleted the plugin-source-db-simple branch May 19, 2022 12:04
fuziontech added a commit that referenced this pull request May 19, 2022
* master:
  refactor(ingestion): Make `KAFKA_ENABLED` true by default and set `KAFKA_HOSTS` default (#9844)
  feat(apps): transpile frontend.tsx (#9828)
  feat: show api call status when adding insights to dashboards (#9817)
  feat: track metrics on zapier hook firings (#9866)
  fix(onboarding): instrumentation (#9845)
  feat(whitelabel-shared-dashboard): Hide branding on shared dashboards paid (#9849)
  fix(apps): plugin source quickfix (#9862)
  refactor(plugin-server): Remove `ts-jest`, use `jest.mocked` (#9861)
  refactor(plugin-server): Trigger public jobs with graphile insted of celery queue (#9811)
  chore: upgrade pip tools (#9859)
  feat(apps): plugin source in its own model, part 2 (#9854)
  chore: Update sprint_planning_retro.md (#9791)
  feat(apps): plugin source in its own model, part 1 (#9853)
  feat(matrix): Add option to save `simulate_matrix` like `setup_dev` (#9836)
  fix(cohort): add mapping from event to person (#9841)
  feat(person-on-events): Enable CI to run using both old and new queries (#9814)
alexkim205 pushed a commit that referenced this pull request May 23, 2022
* create plugin source model

* edit source via plugin_source model

* deprecate "source"

* test plugin source updates

* add support for index.ts and index.js

* refactor plugin loading, support plugin sources from db

* fix source code in tests

* remove transpilation code

* reload plugin after saving

* store defaults in the db instead of persisting in form

* remove fields that don't exist

* remove unused fields

* commit suggestion

* rename to PluginSourceFile

* fix code feedback

* add comments

* make it safer to call

* convert to upsert

* convert to upsert

* comment on the null

* revert plugin server changes

* get source from new model behind the scenes

* simplify

* revert accidental changes

* revert accidental changes

* remove defaults

* sync the old source field

* safer null check that doesn't override `{}` in the db with `null`
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.

2 participants