diff --git a/packages/launchpad/README.md b/packages/launchpad/README.md index cbef6c1a18..f4d93b3fba 100644 --- a/packages/launchpad/README.md +++ b/packages/launchpad/README.md @@ -8,7 +8,9 @@ It replaces the original electron app, `desktop-gui`. - Allow users to log in through Cypress Cloud - Onboarding for new users (configure Component Testing dev server, install dependencies, etc) -- Select testing mode (E2E, Component, Node.js) +- Select testing mode (E2E, Component) +- Provide UI to perform automated migration steps (for example migrating `cypress.json` to `cypress.config.js` for projects upgrading from 9.x or below) +- Provide a dismissable Welcome Screen for every major release of Cypress It is using the following technologies: @@ -25,6 +27,16 @@ Cypress' entire back-end is powered by the `@packages/server` package. Launchpad [Here is a short tutorial](https://github.com/lmiller1990/vue-3-urql-example) building a simple app using the same technologies we are using for launchpad. There are a lot of moving pieces; understanding how everything works will help you contribute to Launchpad. +## Major Version Welcome Content + +The content is bundled with the launchpad and at the time of writing this, it lives in `src/migration/MajorVersionWelcome.vue`. Shipping it as part of the app means it is always available upon release and it will always work offline. Guidelines for the management of the content itself are documented internally in our `prod-eng-docs`, but the implementation is documented here. + +A constant named `MAJOR_VERSION_FOR_CONTENT` defines which major version the content is associated with for the purposes of recording user dismissal in persisted state. This needs to be bumped to match the major version that will be released, since that value is the key that records the dismissal. + +All changes to the content itself, and to the `MAJOR_VERSION_FOR_CONTENT`, must be made as Pull Requests into the `release/x.x.x` branch for that major version, not merged directly to develop. A new Major Version Landing page is considered a "breaking change" that shouldn't be on `develop`, since it would be incorrect if we released a patch and users started to see a Welcome Screen for the next major. + +Note: release dates displayed on this page are stored in the code, not pulled from npm, with entries in the `versionReleaseDates` computed value. This is so they work offline and render right away without waiting for a network call. + ## Building ### For development diff --git a/packages/launchpad/src/migration/MajorVersionWelcome.vue b/packages/launchpad/src/migration/MajorVersionWelcome.vue index 1f8639f9b6..105940c69c 100644 --- a/packages/launchpad/src/migration/MajorVersionWelcome.vue +++ b/packages/launchpad/src/migration/MajorVersionWelcome.vue @@ -1,3 +1,17 @@ + +