Skip to content

Commit c27641a

Browse files
committed
Use renovatebot/pep440
1 parent 509bac3 commit c27641a

13 files changed

Lines changed: 460 additions & 444 deletions

File tree

api/package-lock.json

Lines changed: 11 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,10 @@
3535
},
3636
"devDependencies": {
3737
"@types/node": "^22.0.0",
38-
"@types/semver": "^7.5.8",
3938
"@types/vscode": "^1.99.0",
4039
"typescript": "^5.1.3"
4140
},
4241
"dependencies": {
43-
"semver": "^7.8.0"
42+
"@renovatebot/pep440": "^3.1.0"
4443
}
4544
}

api/src/main.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4-
import type * as semver from 'semver';
54
import {
65
Disposable,
76
Event,
@@ -21,6 +20,8 @@ import {
2120
* This is the public API for other extensions to interact with the Python Environments extension.
2221
*/
2322

23+
export type { Pep440Version } from '@renovatebot/pep440';
24+
import type { Pep440Version } from '@renovatebot/pep440';
2425
/**
2526
* The path to an icon, or a theme-specific configuration of icons.
2627
*/
@@ -698,7 +699,7 @@ export interface PackageManager {
698699
* @param environment - The Python environment context.
699700
* @returns A promise that resolves to a SemVer object, or `undefined` if not available.
700701
*/
701-
getVersion?(environment: PythonEnvironment): Promise<semver.SemVer | undefined>;
702+
getVersion?(environment: PythonEnvironment): Promise<Pep440Version | undefined>;
702703

703704
/**
704705
* Retrieves the list of available versions for a given package.
@@ -707,7 +708,7 @@ export interface PackageManager {
707708
* @returns A promise that resolves to an array of version strings (newest first),
708709
* or `undefined` if this manager does not support version listing.
709710
*/
710-
getAvailableVersions?(packageName: string, environment: PythonEnvironment): Promise<semver.SemVer[] | undefined>;
711+
getAvailableVersions?(packageName: string, environment: PythonEnvironment): Promise<Pep440Version[] | undefined>;
711712
}
712713

713714
/**
@@ -1076,14 +1077,14 @@ export interface PythonPackageManagementApi {
10761077
managePackages(environment: PythonEnvironment, options: PackageManagementOptions): Promise<void>;
10771078
}
10781079

1079-
export interface PythonPackageVersionApi {
1080+
export interface Pep440VersionApi {
10801081
/**
10811082
* Get the version of the package manager tool associated with the given environment.
10821083
*
10831084
* @param environment The Python Environment whose package manager version is requested.
10841085
* @returns The SemVer version of the package manager tool, or `undefined` if not available.
10851086
*/
1086-
getPackageManagerVersion(environment: PythonEnvironment): Promise<semver.SemVer | undefined>;
1087+
getPackageManagerVersion(environment: PythonEnvironment): Promise<Pep440Version | undefined>;
10871088

10881089
/**
10891090
* Get the list of available versions for a package from the package manager
@@ -1093,7 +1094,7 @@ export interface PythonPackageVersionApi {
10931094
* @param environment The Python Environment context for the lookup.
10941095
* @returns An array of version strings (newest first), or `undefined` if not supported.
10951096
*/
1096-
getAvailableVersions(packageName: string, environment: PythonEnvironment): Promise<semver.SemVer[] | undefined>;
1097+
getAvailableVersions(packageName: string, environment: PythonEnvironment): Promise<Pep440Version[] | undefined>;
10971098
}
10981099

10991100
export interface PythonPackageManagerApi
@@ -1102,7 +1103,7 @@ export interface PythonPackageManagerApi
11021103
PythonPackageGetterApi,
11031104
PythonPackageManagementApi,
11041105
PythonPackageItemApi,
1105-
PythonPackageVersionApi {}
1106+
Pep440VersionApi {}
11061107

11071108
export interface PythonProjectCreationApi {
11081109
/**

package-lock.json

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,7 @@
734734
},
735735
"dependencies": {
736736
"@iarna/toml": "^2.2.5",
737+
"@renovatebot/pep440": "^3.1.0",
737738
"@vscode/extension-telemetry": "^0.9.7",
738739
"@vscode/test-cli": "^0.0.10",
739740
"dotenv": "^16.4.5",

src/api.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4-
import type * as semver from 'semver';
54
import type {
65
Disposable,
76
Event,
@@ -15,6 +14,9 @@ import type {
1514
Uri,
1615
} from 'vscode';
1716

17+
export type { Pep440Version } from '@renovatebot/pep440';
18+
import type { Pep440Version } from '@renovatebot/pep440';
19+
1820
/**
1921
* The path to an icon, or a theme-specific configuration of icons.
2022
*/
@@ -691,7 +693,7 @@ export interface PackageManager {
691693
* Returns the version of the underlying package management tool (e.g., pip, conda).
692694
* @returns A promise that resolves to a SemVer object, or `undefined` if not available.
693695
*/
694-
getVersion?(environment: PythonEnvironment): Promise<semver.SemVer | undefined>;
696+
getVersion?(environment: PythonEnvironment): Promise<Pep440Version | undefined>;
695697

696698
/**
697699
* Retrieves the list of available versions for a given package.
@@ -700,7 +702,7 @@ export interface PackageManager {
700702
* @returns A promise that resolves to an array of version strings (newest first),
701703
* or `undefined` if this manager does not support version listing.
702704
*/
703-
getAvailableVersions?(packageName: string, environment: PythonEnvironment): Promise<semver.SemVer[] | undefined>;
705+
getAvailableVersions?(packageName: string, environment: PythonEnvironment): Promise<Pep440Version[] | undefined>;
704706
}
705707

706708
/**
@@ -1069,14 +1071,14 @@ export interface PythonPackageManagementApi {
10691071
managePackages(environment: PythonEnvironment, options: PackageManagementOptions): Promise<void>;
10701072
}
10711073

1072-
export interface PythonPackageVersionApi {
1074+
export interface Pep440VersionApi {
10731075
/**
10741076
* Get the version of the package manager tool associated with the given environment.
10751077
*
10761078
* @param environment The Python Environment whose package manager version is requested.
10771079
* @returns The SemVer version of the package manager tool, or `undefined` if not available.
10781080
*/
1079-
getPackageManagerVersion(environment: PythonEnvironment): Promise<semver.SemVer | undefined>;
1081+
getPackageManagerVersion(environment: PythonEnvironment): Promise<Pep440Version | undefined>;
10801082

10811083
/**
10821084
* Get the list of available versions for a package from the package manager
@@ -1086,7 +1088,7 @@ export interface PythonPackageVersionApi {
10861088
* @param environment The Python Environment context for the lookup.
10871089
* @returns An array of version strings (newest first), or `undefined` if not supported.
10881090
*/
1089-
getAvailableVersions(packageName: string, environment: PythonEnvironment): Promise<semver.SemVer[] | undefined>;
1091+
getAvailableVersions(packageName: string, environment: PythonEnvironment): Promise<Pep440Version[] | undefined>;
10901092
}
10911093

10921094
export interface PythonPackageManagerApi
@@ -1095,7 +1097,7 @@ export interface PythonPackageManagerApi
10951097
PythonPackageGetterApi,
10961098
PythonPackageManagementApi,
10971099
PythonPackageItemApi,
1098-
PythonPackageVersionApi {}
1100+
Pep440VersionApi {}
10991101

11001102
export interface PythonProjectCreationApi {
11011103
/**

src/features/envCommands.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,8 +337,8 @@ export async function handlePackageVersionManagement(context: unknown, em: Envir
337337

338338
if (availableVersions && availableVersions.length > 0) {
339339
const items = availableVersions.map((v) => ({
340-
label: v.version,
341-
description: v.version === pkg.version ? `$(check) ${l10n.t('Installed')}` : undefined,
340+
label: v.public,
341+
description: v.public === pkg.version ? `$(check) ${l10n.t('Installed')}` : undefined,
342342
}));
343343

344344
const selected = await showQuickPick(items, {

0 commit comments

Comments
 (0)