From f36990610d783309b4315b9bff791aebf8357c8c Mon Sep 17 00:00:00 2001
From: Roman Donchenko
Date: Fri, 17 Jan 2025 11:28:41 +0200
Subject: [PATCH] Peg the UI version to the server version (#8948)
The only reason to display separate UI and server version (IMO) is that
sometimes they can diverge due to deployment issues, and the information
can help with diagnostics. So it seems much more useful to use the same
version numbering as for the server, since:
* This makes it much easier to see whether a divergence exists.
* We can automate updates to it, eliminating annoying busywork for
developers.
* We don't need to show multiple versions for different UI components,
simplifying the code and the UI.
---
.github/PULL_REQUEST_TEMPLATE.md | 5 -----
.../20250115_190017_roman_rm_ui_versions.md | 5 +++++
cvat-canvas/README.md | 8 --------
cvat-canvas/src/typescript/canvas.ts | 5 +----
cvat-canvas3d/README.md | 8 --------
cvat-canvas3d/src/typescript/canvas3d.ts | 5 +----
cvat-core/README.md | 8 --------
cvat-core/src/api.ts | 5 -----
cvat-core/src/index.ts | 3 ---
cvat-data/README.md | 8 --------
cvat-ui/README.md | 11 -----------
cvat-ui/package.json | 2 +-
.../global-error-boundary.tsx | 14 +-------------
cvat-ui/src/components/header/header.tsx | 8 --------
cvat-ui/src/cvat-canvas-wrapper.ts | 3 +--
cvat-ui/src/cvat-canvas3d-wrapper.ts | 3 +--
cvat-ui/src/reducers/about-reducer.ts | 4 ----
cvat-ui/src/reducers/index.ts | 2 --
dev/update_version.py | 5 +++++
19 files changed, 16 insertions(+), 96 deletions(-)
create mode 100644 changelog.d/20250115_190017_roman_rm_ui_versions.md
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index d05c86d19a68..ae4841f34d7d 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -26,11 +26,6 @@ If you're unsure about any of these, don't hesitate to ask. We're here to help!
- [ ] I have added tests to cover my changes
- [ ] I have linked related issues (see [GitHub docs](
https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))
-- [ ] I have increased versions of npm packages if it is necessary
- ([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning),
- [cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning),
- [cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning) and
- [cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning))
### License
diff --git a/changelog.d/20250115_190017_roman_rm_ui_versions.md b/changelog.d/20250115_190017_roman_rm_ui_versions.md
new file mode 100644
index 000000000000..cc274734eba4
--- /dev/null
+++ b/changelog.d/20250115_190017_roman_rm_ui_versions.md
@@ -0,0 +1,5 @@
+### Changed
+
+- The UI only displays one version for the whole client component,
+ which is now aligned with the server version
+ ()
diff --git a/cvat-canvas/README.md b/cvat-canvas/README.md
index 6c5115d9433d..c91434de62fd 100644
--- a/cvat-canvas/README.md
+++ b/cvat-canvas/README.md
@@ -5,14 +5,6 @@
The CVAT module written in TypeScript language.
It presents a canvas to viewing, drawing and editing of annotations.
-## Versioning
-
-If you make changes in this package, please do following:
-
-- After not important changes (typos, backward compatible bug fixes, refactoring) do: `yarn version --patch`
-- After changing API (backward compatible new features) do: `yarn version --minor`
-- After changing API (changes that break backward compatibility) do: `yarn version --major`
-
## Commands
- Building of the module from sources in the `dist` directory:
diff --git a/cvat-canvas/src/typescript/canvas.ts b/cvat-canvas/src/typescript/canvas.ts
index 1bcc7ddb961a..1a0d981e7d35 100644
--- a/cvat-canvas/src/typescript/canvas.ts
+++ b/cvat-canvas/src/typescript/canvas.ts
@@ -18,9 +18,6 @@ import { CanvasController, CanvasControllerImpl } from './canvasController';
import { CanvasView, CanvasViewImpl } from './canvasView';
import '../scss/canvas.scss';
-import pjson from '../../package.json';
-
-const CanvasVersion = pjson.version;
interface Canvas {
html(): HTMLDivElement;
@@ -197,5 +194,5 @@ export type InteractionResult = _InteractionResult;
export type HighlightSeverity = _HighlightSeverity;
export {
- CanvasImpl as Canvas, CanvasVersion, RectDrawingMethod, CuboidDrawingMethod, Mode as CanvasMode,
+ CanvasImpl as Canvas, RectDrawingMethod, CuboidDrawingMethod, Mode as CanvasMode,
};
diff --git a/cvat-canvas3d/README.md b/cvat-canvas3d/README.md
index eea73bfed8d7..87ef5d563f50 100644
--- a/cvat-canvas3d/README.md
+++ b/cvat-canvas3d/README.md
@@ -5,14 +5,6 @@
The CVAT module written in TypeScript language.
It presents a canvas to viewing, drawing and editing of 3D annotations.
-## Versioning
-
-If you make changes in this package, please do following:
-
-- After not important changes (typos, backward compatible bug fixes, refactoring) do: `yarn version --patch`
-- After changing API (backward compatible new features) do: `yarn version --minor`
-- After changing API (changes that break backward compatibility) do: `yarn version --major`
-
## Commands
- Building of the module from sources in the `dist` directory:
diff --git a/cvat-canvas3d/src/typescript/canvas3d.ts b/cvat-canvas3d/src/typescript/canvas3d.ts
index eb716b96d9a4..84ef9adb4cfa 100644
--- a/cvat-canvas3d/src/typescript/canvas3d.ts
+++ b/cvat-canvas3d/src/typescript/canvas3d.ts
@@ -3,7 +3,6 @@
//
// SPDX-License-Identifier: MIT
-import pjson from '../../package.json';
import { Canvas3dController, Canvas3dControllerImpl } from './canvas3dController';
import {
Canvas3dModel,
@@ -22,8 +21,6 @@ import {
} from './canvas3dView';
import { Master } from './master';
-const Canvas3dVersion = pjson.version;
-
interface Canvas3d {
html(): ViewsDOM;
setup(frameData: any, objectStates: any[]): void;
@@ -125,7 +122,7 @@ class Canvas3dImpl implements Canvas3d {
}
export {
- Canvas3dImpl as Canvas3d, Canvas3dVersion, ViewType, MouseInteraction, CameraAction, Mode as CanvasMode,
+ Canvas3dImpl as Canvas3d, ViewType, MouseInteraction, CameraAction, Mode as CanvasMode,
};
export type { ViewsDOM };
diff --git a/cvat-core/README.md b/cvat-core/README.md
index b890f7eb48a5..b1fac63e07fa 100644
--- a/cvat-core/README.md
+++ b/cvat-core/README.md
@@ -5,14 +5,6 @@
This CVAT module is a client-side JavaScript library for management of objects, frames, logs, etc.
It contains the core logic of the Computer Vision Annotation Tool.
-## Versioning
-
-If you make changes in this package, please do following:
-
-- After not important changes (typos, backward compatible bug fixes, refactoring) do: `yarn version --patch`
-- After changing API (backward compatible new features) do: `yarn version --minor`
-- After changing API (changes that break backward compatibility) do: `yarn version --major`
-
### Commands
- Dependencies installation
diff --git a/cvat-core/src/api.ts b/cvat-core/src/api.ts
index 60de43fd4b18..f5a8d1bc1edf 100644
--- a/cvat-core/src/api.ts
+++ b/cvat-core/src/api.ts
@@ -39,7 +39,6 @@ import {
import { mask2Rle, rle2Mask, propagateShapes } from './object-utils';
import User from './user';
-import pjson from '../package.json';
import config from './config';
import implementAPI from './api-implementation';
@@ -327,9 +326,6 @@ function build(): CVATCore {
config.jobMetaDataReloadPeriod = value;
},
},
- client: {
- version: `${pjson.version}`,
- },
enums,
exceptions: {
Exception,
@@ -481,7 +477,6 @@ function build(): CVATCore {
cvat.lambda = Object.freeze(cvat.lambda);
// logger: todo: logger storage implemented other way
cvat.config = Object.freeze(cvat.config);
- cvat.client = Object.freeze(cvat.client);
cvat.enums = Object.freeze(cvat.enums);
cvat.exceptions = Object.freeze(cvat.exceptions);
cvat.cloudStorages = Object.freeze(cvat.cloudStorages);
diff --git a/cvat-core/src/index.ts b/cvat-core/src/index.ts
index 4eff35601f70..d6b930637d88 100644
--- a/cvat-core/src/index.ts
+++ b/cvat-core/src/index.ts
@@ -189,9 +189,6 @@ export default interface CVATCore {
requestsStatusDelay: typeof config.requestsStatusDelay;
jobMetaDataReloadPeriod: typeof config.jobMetaDataReloadPeriod;
},
- client: {
- version: string;
- };
enums,
exceptions: {
Exception: typeof Exception,
diff --git a/cvat-data/README.md b/cvat-data/README.md
index 1fae6821dfd5..646607016afc 100644
--- a/cvat-data/README.md
+++ b/cvat-data/README.md
@@ -5,11 +5,3 @@ yarn run build # build with minification
yarn run build --mode=development # build without minification
yarn run server # run debug server
```
-
-## Versioning
-
-If you make changes in this package, please do following:
-
-- After not important changes (typos, backward compatible bug fixes, refactoring) do: `yarn version --patch`
-- After changing API (backward compatible new features) do: `yarn version --minor`
-- After changing API (changes that break backward compatibility) do: `yarn version --major`
diff --git a/cvat-ui/README.md b/cvat-ui/README.md
index 5205041568e6..35adddc8daca 100644
--- a/cvat-ui/README.md
+++ b/cvat-ui/README.md
@@ -4,17 +4,6 @@
This is a client UI for Computer Vision Annotation Tool based on React, Redux and Antd
-## Versioning
-
-If you make changes in this package, please do following:
-
-- After not important changes (typos, bug fixes, refactoring) do: `yarn version --patch`
-- After adding new features do: `yarn version --minor`
-- After significant UI redesign do: `yarn version --major`
-
-Important: If you have changed versions for `cvat-core`, `cvat-canvas`, `cvat-data`,
-you also need to do `yarn install` to update `package-lock.json`
-
## Commands
- Installing dependencies:
diff --git a/cvat-ui/package.json b/cvat-ui/package.json
index ce374b2e2be6..cbc584303933 100644
--- a/cvat-ui/package.json
+++ b/cvat-ui/package.json
@@ -1,6 +1,6 @@
{
"name": "cvat-ui",
- "version": "1.67.0",
+ "version": "2.25.1",
"description": "CVAT single-page application",
"main": "src/index.tsx",
"scripts": {
diff --git a/cvat-ui/src/components/global-error-boundary/global-error-boundary.tsx b/cvat-ui/src/components/global-error-boundary/global-error-boundary.tsx
index ce4786782a9d..0e8185a40084 100644
--- a/cvat-ui/src/components/global-error-boundary/global-error-boundary.tsx
+++ b/cvat-ui/src/components/global-error-boundary/global-error-boundary.tsx
@@ -27,8 +27,6 @@ interface OwnProps {
interface StateToProps {
job: any | null;
serverVersion: string;
- coreVersion: string;
- canvasVersion: string;
uiVersion: string;
}
@@ -53,8 +51,6 @@ function mapStateToProps(state: CombinedState): StateToProps {
return {
job,
serverVersion: server.version as string,
- coreVersion: packageVersion.core,
- canvasVersion: packageVersion.canvas,
uiVersion: packageVersion.ui,
};
}
@@ -109,7 +105,7 @@ class GlobalErrorBoundary extends React.PureComponent {
public render(): React.ReactNode {
const {
- restore, job, serverVersion, coreVersion, canvasVersion, uiVersion,
+ restore, job, serverVersion, uiVersion,
} = this.props;
const { hasError, error } = this.state;
@@ -173,14 +169,6 @@ class GlobalErrorBoundary extends React.PureComponent {
Server:
{serverVersion}
-
- Core:
- {coreVersion}
-
-
- Canvas:
- {canvasVersion}
-
UI:
{uiVersion}
diff --git a/cvat-ui/src/components/header/header.tsx b/cvat-ui/src/components/header/header.tsx
index 0feeae4be574..26e721cfc0a1 100644
--- a/cvat-ui/src/components/header/header.tsx
+++ b/cvat-ui/src/components/header/header.tsx
@@ -259,14 +259,6 @@ function HeaderComponent(props: Props): JSX.Element {
Server version:
{` ${about.server.version}`}
-
- Core version:
- {` ${about.packageVersion.core}`}
-
-
- Canvas version:
- {` ${about.packageVersion.canvas}`}
-
UI version:
{` ${about.packageVersion.ui}`}
diff --git a/cvat-ui/src/cvat-canvas-wrapper.ts b/cvat-ui/src/cvat-canvas-wrapper.ts
index 6df2d6384cb0..408db585c3ee 100644
--- a/cvat-ui/src/cvat-canvas-wrapper.ts
+++ b/cvat-ui/src/cvat-canvas-wrapper.ts
@@ -5,7 +5,6 @@
import {
Canvas,
CanvasMode,
- CanvasVersion,
RectDrawingMethod,
CuboidDrawingMethod,
CanvasHint as _CanvasHint,
@@ -36,5 +35,5 @@ export type HighlightSeverity = _HighlightSeverity;
export type CanvasHint = _CanvasHint;
export {
- Canvas, CanvasMode, CanvasVersion, RectDrawingMethod, CuboidDrawingMethod,
+ Canvas, CanvasMode, RectDrawingMethod, CuboidDrawingMethod,
};
diff --git a/cvat-ui/src/cvat-canvas3d-wrapper.ts b/cvat-ui/src/cvat-canvas3d-wrapper.ts
index a6d95279549a..9b730f6602a4 100644
--- a/cvat-ui/src/cvat-canvas3d-wrapper.ts
+++ b/cvat-ui/src/cvat-canvas3d-wrapper.ts
@@ -5,7 +5,6 @@
import {
Canvas3d,
- Canvas3dVersion,
MouseInteraction,
ViewType,
CameraAction,
@@ -14,7 +13,7 @@ import {
} from 'cvat-canvas3d/src/typescript/canvas3d';
export {
- Canvas3d, Canvas3dVersion, MouseInteraction, ViewType, CameraAction, CanvasMode,
+ Canvas3d, MouseInteraction, ViewType, CameraAction, CanvasMode,
};
export type { ViewsDOM };
diff --git a/cvat-ui/src/reducers/about-reducer.ts b/cvat-ui/src/reducers/about-reducer.ts
index a9558212b5f0..77dac31306d9 100644
--- a/cvat-ui/src/reducers/about-reducer.ts
+++ b/cvat-ui/src/reducers/about-reducer.ts
@@ -2,8 +2,6 @@
//
// SPDX-License-Identifier: MIT
-import { getCore } from 'cvat-core-wrapper';
-import { CanvasVersion } from 'cvat-canvas-wrapper';
import { BoundariesActions, BoundariesActionTypes } from 'actions/boundaries-actions';
import { AboutActions, AboutActionTypes } from 'actions/about-actions';
import { AuthActions, AuthActionTypes } from 'actions/auth-actions';
@@ -13,8 +11,6 @@ import pjson from '../../package.json';
const defaultState: AboutState = {
server: {},
packageVersion: {
- core: getCore().client.version,
- canvas: CanvasVersion,
ui: pjson.version,
},
fetching: false,
diff --git a/cvat-ui/src/reducers/index.ts b/cvat-ui/src/reducers/index.ts
index 337ef29927b2..25116ae5b2c3 100644
--- a/cvat-ui/src/reducers/index.ts
+++ b/cvat-ui/src/reducers/index.ts
@@ -338,8 +338,6 @@ export interface PluginsState {
export interface AboutState {
server: any;
packageVersion: {
- core: string;
- canvas: string;
ui: string;
};
fetching: boolean;
diff --git a/dev/update_version.py b/dev/update_version.py
index 7419a581ef4c..9b4cdc66cdff 100755
--- a/dev/update_version.py
+++ b/dev/update_version.py
@@ -162,6 +162,11 @@ def apply(self, new_version: Version, *, verify_only: bool) -> bool:
re.compile(r"^cvat-sdk==[\d.]+$", re.M),
lambda v, m: f"cvat-sdk=={v.major}.{v.minor}.{v.patch}",
),
+ ReplacementRule(
+ "cvat-ui/package.json",
+ re.compile(r'^ "version": "[\d.]+",$', re.M),
+ lambda v, m: f' "version": "{v.major}.{v.minor}.{v.patch}",',
+ ),
]