-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
The -snapshot suffix should be added by the build system rather than hardcoded in commits #6941
Comments
@this will really help automating the build process. In Elasticsearch, we do keep the version in a file, but it does not contain "snapshot". However, when doing a normal build with eg |
I'm +1 on this |
@spalger I'd like to suggest a couple of differences from your original proposal above:
|
@ycombinator 👍 I too think that if we can put a version in package.json we should, and 0.0.0-snapshot seems as like the best worst option. |
The biggest problem I see with this change is going to be how version matching on plugins is going to be handled. There's a 5.0 ticket open to make plugin installation dependent on patch level versions, so we'll need to somehow make sure that plugins can still be installed on master. |
If you are going to write the version to package.json during the build anyways, why not have the version in a file, and use a flag to indicate whether it is a snapshot like ES does? Would that allow everything else to work as it does now (ie package.json would be no different, it would always contain the version, because the build would always insert it)? |
What's happening here? Is there something blocking this? |
I think @epixa's comment above needs to be addressed. I haven't had time to look into it (been busy with other issues). @spalger do you have any thoughts? |
There are some minor details to sort out (like the plugin version matching that I mentioned above), but the only significant blocker at this point is having the time to do it. |
The only proposal for fixing this so far is by Ryan, who suggested we just save the version in another file. I don't see how that helps much though, if we're going to write it to a file anyway it might as well just stay in We also have specific version callouts in the readme (and maybe some other files) that I don't see addressed in the original proposal. How are we going to handle these? Maybe we can just remove specific versions from them? |
How about we just set |
That would be perfect. But I would do a release flag so snapshot is included by default, that is what ES does. |
Is that a straight up boolean flag, or does ES allow for setting |
alpha and beta are part of the version number. It is only a flag that indicates whether -SNAPSHOT should exist. |
Gotcha. That'd work for me. |
My current plan of action is to change our build/release process to essentially be the following:
All flags would be optional, and you would no longer access ospackages or publishpackages stuff directly. Anyone have any thoughts? |
Seems reasonable. |
Oh, I forgot to add: the source code would no longer have any reference to
And now that I write that out, I can't think of a reason to have It should also be possible to upload a Back to the drawing board. |
There's no need to mess with uploading anything, the unified release will handle all that. We just need the |
I dig that. The |
Is the unified release process to handle snapshot builds on all pushes to master and such?
|
Yes, it will handle building and publishing snapshots from master. |
I have an implementation for this in #7317, though I haven't done enough testing on it yet to assign it for review. |
There's an issue with this approach that will need to be resolved before we can move forward: the development workflow for Kibana does not involve creating builds, so the version in development will not include I'm not sure of a good solution for this at the moment, but I'll keep thinking about it. In the meantime, ideas welcome! |
The server knows if it's in |
Do you mean we should just not do version checking when running in dev mode? |
That's not what I meant, we still need to enforce the version partially I believe. What I meant was that whatever is happening logically when it sees |
I'd be wary of relying on dev mode. I work outside of dev mode a lot when I need to debug node or run API tests, I wouldn't want that to become even more difficult. |
I think I may just bake in -snapshot as a special case to ignore. |
I'm actually incorrect about the root cause of the issue I encountered. #7278 is the real issue I was running into. If that doesn't get resolved before the the build change in this issue gets merged, then everyone will need to wipe out their local esvm and start fresh (or at least kill |
Alright, I think the build changes in #7317 are ready for review. |
`v86.0.0`⏩`v87.1.0`⚠️ The biggest set of type changes in this PR come from the breaking change that makes `pageSize` and `pageSizeOptions` now optional props for `EuiBasicTable.pagination`, `EuiInMemoryTable.pagination` and `EuiDataGrid.pagination`. This caused several other components that were cloning EUI's pagination type to start throwing type warnings about `pageSize` being optional. Where I came across these errors, I modified the extended types to require `pageSize`. These types and their usages may end up changing again in any case once the Shared UX team looks into #56406. --- ## [`87.1.0`](https://github.com/elastic/eui/tree/v87.1.0) - Updated the underlying library powering `EuiAutoSizer`. This primarily affects typing around the `disableHeight` and `disableWidth` props ([#6798](elastic/eui#6798)) - Added new `EuiAutoSize`, `EuiAutoSizeHorizontal`, and `EuiAutoSizeVertical` types to support `EuiAutoSizer`'s now-stricter typing ([#6798](elastic/eui#6798)) - Updated `EuiDatePickerRange` to support `compressed` display ([#7058](elastic/eui#7058)) - Updated `EuiFlyoutBody` with a new `scrollableTabIndex` prop ([#7061](elastic/eui#7061)) - Added a new `panelMinWidth` prop to `EuiInputPopover` ([#7071](elastic/eui#7071)) - Added a new `inputPopoverProps` prop for `EuiRange`s and `EuiDualRange`s with `showInput="inputWithPopover"` set ([#7082](elastic/eui#7082)) **Bug fixes** - Fixed `EuiToolTip` overriding instead of merging its `aria-describedby` tooltip ID with any existing `aria-describedby`s ([#7055](elastic/eui#7055)) - Fixed `EuiSuperDatePicker`'s `compressed` display ([#7058](elastic/eui#7058)) - Fixed `EuiAccordion` to remove tabbable children from sequential keyboard navigation when the accordion is closed ([#7064](elastic/eui#7064)) - Fixed `EuiFlyout`s to accept custom `aria-describedby` IDs ([#7065](elastic/eui#7065)) **Accessibility** - Removed the default `dialog` role and `tabIndex` from push `EuiFlyout`s. Push flyouts, compared to overlay flyouts, require manual accessibility management. ([#7065](elastic/eui#7065)) ## [`87.0.0`](https://github.com/elastic/eui/tree/v87.0.0) - Added beta `componentDefaults` prop to `EuiProvider`, which will allow configuring certain default props globally. This list of components and defaults is still under consideration. ([#6923](elastic/eui#6923)) - `EuiPortal`'s `insert` prop can now be configured globally via `EuiProvider.componentDefaults` ([#6941](elastic/eui#6941)) - `EuiFocusTrap`'s `crossFrame` and `gapMode` props can now be configured globally via `EuiProvider.componentDefaults` ([#6942](elastic/eui#6942)) - `EuiTablePagination`'s `itemsPerPage`, `itemsPerPageOptions`, and `showPerPageOptions` props can now be configured globally via `EuiProvider.componentDefaults` ([#6951](elastic/eui#6951)) - `EuiBasicTable`, `EuiInMemoryTable`, and `EuiDataGrid` now allow `pagination.pageSize` to be undefined. If undefined, `pageSize` defaults to `EuiTablePagination`'s `itemsPerPage` component default. ([#6993](elastic/eui#6993)) - `EuiBasicTable`, `EuiInMemoryTable`, and `EuiDataGrid`'s `pagination.pageSizeOptions` will now fall back to `EuiTablePagination`'s `itemsPerPageOptions` component default. ([#6993](elastic/eui#6993)) - Updated `EuiHeaderLinks`'s `gutterSize` spacings ([#7005](elastic/eui#7005)) - Updated `EuiHeaderAlert`'s stacking styles ([#7005](elastic/eui#7005)) - Added `toolTipProps` to `EuiListGroupItem` that allows customizing item tooltips. ([#7018](elastic/eui#7018)) - Updated `EuiBreadcrumbs` to support breadcrumbs that toggle popovers via `popoverContent` and `popoverProps` ([#7031](elastic/eui#7031)) - Improved the contrast ratio of disabled titles within `EuiSteps` and `EuiStepsHorizontal` to meet WCAG AA guidelines. ([#7032](elastic/eui#7032)) - Updated `EuiSteps` and `EuiStepsHorizontal` to highlight and provide a more clear visual indication of the current step ([#7048](elastic/eui#7048)) **Bug fixes** - Single uses of `<EuiHeaderSectionItem side="right" />` now align right as expected without needing a previous `side="left"` sibling. ([#7005](elastic/eui#7005)) - `EuiPageTemplate` now correctly displays `panelled={true}` ([#7044](elastic/eui#7044)) **Breaking changes** - `EuiTablePagination`'s default `itemsPerPage` is now `10` (was previously `50`). This can be configured through `EuiProvider.componentDefaults`. ([#6993](elastic/eui#6993)) - `EuiTablePagination`'s default `itemsPerPageOptions` is now `[10, 25, 50]` (was previously `[10, 20, 50, 100]`). This can be configured through `EuiProvider.componentDefaults`. ([#6993](elastic/eui#6993)) - Removed `border` prop from `EuiHeaderSectionItem` (unused since Amsterdam theme) ([#7005](elastic/eui#7005)) - Removed `borders` object configuration from `EuiHeader.sections` ([#7005](elastic/eui#7005)) **CSS-in-JS conversions** - Converted `EuiHeaderAlert` to Emotion; Removed unused `.euiHeaderAlert__dismiss` CSS ([#7005](elastic/eui#7005)) - Converted `EuiHeaderSection`, `EuiHeaderSectionItem`, and `EuiHeaderSectionItemButton` to Emotion ([#7005](elastic/eui#7005)) - Converted `EuiHeaderLinks` and `EuiHeaderLink` to Emotion; Removed `$euiHeaderLinksGutterSizes` Sass variables ([#7005](elastic/eui#7005)) - Removed `$euiHeaderBackgroundColor` Sass variable; use `$euiColorEmptyShade` instead ([#7005](elastic/eui#7005)) - Removed `$euiHeaderChildSize` Sass variable; use `$euiSizeXXL` instead ([#7005](elastic/eui#7005)) --------- Co-authored-by: Kibana Machine <[email protected]> Co-authored-by: Patryk Kopyciński <[email protected]>
Updated description:
The
-snapshot
suffix should be added by default by the build system rather than being hardcoded into package.json, and you should be able to tell the build system not to apply it in a build if you pass--release
. In addition, the default behavior of the build task should be to create os-packages as well. This is pretty consistent with how the Elasticsearch build process works and would make our build process compatible with the unified release process.In addition, the build process should support the following options for our own benefit:
Original description:
In an attempt to build a more automated release process, the Kibana build scripts need to support programmatically specifying the version assigned to the build output.
This would look something like this:
Currently this version is read from the
package.json
file, and updating it requires pushing code. This has worked out nicely since we have been doing the release process by hand, but if we want to automate it we should make things a tad more dynamic.I suggest that we do this:
package.json
--version
flag in the build scripts--version
flag to the package.json file during the build process--version=${BRANCH}-snapshot
flag when building the regular snapshotsThe text was updated successfully, but these errors were encountered: