-
-
Notifications
You must be signed in to change notification settings - Fork 257
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
Move Suite version to single place? #3335
Comments
maybe something like lerna could do the job? |
Yes! ❤️ We just need to figure out how to ignore some of the packges:
|
I am wondering if we really need to ignore some packages, ones that currently don't follow suite versioning are: hmm but what we certainly need is, after a version bum in eg. trezor/components lerna should automatically bump dep version in all packages (in package.json) that use trezor/components |
I have introduced release-it in #3470 which can be used for version bumping but I have to say I hate it. It is very aggressive and will modify releases without prompting. So I will investigate other options. |
@keraf @szymonlesisz what do you think about @slowbackspace's suggestion above? That means bumping all packages:
I am not sure myself, on one side it seems superfluous to bump all packages, on the other hand we could use the same argument for |
Mark components, suite-data and translations-manager as private because they're not published anywhere and are used within this repo only.
forme: todo:
|
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
Mark components, suite-data and translations-manager as private because they're not published anywhere and are used within this repo only.
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
After moving trezor-link to this monorepo (newly named as @trezor/transport) the flow type-checking broke because flow is not compatible with yarn workspaces we use here. facebook/flow#5183 In particular, flow fails to resolve packages hoisted to the root node_modules directory. Use yarn's nohoist option to prevent hoisting of all transport's dependencies. This might be more aggressive than needed - some packages probably can be hoisted without breaking flow. Leave that for a later optimization as the transport package is awaiting a big refactoring soon.
After moving trezor-link to this monorepo (newly named as @trezor/transport) the flow type-checking broke because flow is not compatible with yarn workspaces we use here. facebook/flow#5183 In particular, flow fails to resolve packages hoisted to the root node_modules directory. Use yarn's nohoist option to prevent hoisting of all transport's dependencies. This might be more aggressive than needed - some packages probably can be hoisted without breaking flow. Leave that for a later optimization as the transport package is awaiting a big refactoring soon.
After moving trezor-link to this monorepo (newly named as @trezor/transport) the flow type-checking broke because flow is not compatible with yarn workspaces we use here. facebook/flow#5183 In particular, flow fails to resolve packages hoisted to the root node_modules directory. Use yarn's nohoist option to prevent hoisting of all transport's dependencies. This might be more aggressive than needed - some packages probably can be hoisted without breaking flow. Leave that for a later optimization as the transport package is awaiting a big refactoring soon.
As the PR that blocks this will be most probably merged after I leave this will have to be overtaken by someone else. I implemented this here. The diff-set is complete but one should verify the CI produces valid builds especially with regards to the auto-updater and Suite version exposed within the app. See the changed documentation to understand what that PR aims to implement. I'll dare to assign this to @matejkriz who AFAIK works on the blocking PR. cc @alex-jerechinsky |
Also wouldn't switch from Independent to Fixed/Locked mode in Lerna do the trick? |
@tsusanka sorry for taking so long to respond. Unfortunately fixed mode won't help us here. It's (and Lerna in general) based on assumption that the versioning is used to communicate changes in public packages of the monorepo. This means, among other things, that
|
Mark components, suite-data and translations-manager as private because they're not published anywhere and are used within this repo only.
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
Mark components, suite-data and translations-manager as private because they're not published anywhere and are used within this repo only.
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
Mark components, suite-data and translations-manager as private because they're not published anywhere and are used within this repo only.
The suite version is now duplicated across several packages which makes the release process more complicated and error-prone. Use constant 1.0.0 version for all private packages and track the Suite version in the root package.json only. Edit the build and CI scripts to read the version from there. Document this new setup.
QA - what to test? |
In addition to what @matejkriz wrote above it would be good to check that the CI produces properly named artifacts - for instance, the app version is part of the name of the released executables. |
cc @vdovhanych for the next release all we need to do is change |
@tsusanka saw the pull request today 🥳 very nice feature for us! |
QA OK macOS Apple versionmacOS Intel versionInfo:
|
QA OK Info:
|
QA OK Suite: app 21.9.0 b5a686a |
During every release we are bumping the packge versions to format YY.MM.PATCH (see docs). It is a bit annoying that we have to modify the version of each and every packge, see c2448b3. Could we have just a single file where the version is stored? Or extrapolate it somehow to a single variable? I am not sure if it is possible the way yarn works.
We could also write a tool/regex for that but that seems like an overkill.
The text was updated successfully, but these errors were encountered: