Flash info

"Les IT Pros sont en train de migrer rapidement car PowerShell est plus facile et plus puissant que VBScript."

Microsoft Scripting Guys

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5655
graph
Karma: 206  
[Tutoriel] Gestion des versions d’un module - 14/07/16 11:30 Voici un tutoriel sur la gestion des versions d’un module (psv4 & ps v5).

Il aborde également une solution de contrôle de version pour les instances de classes Powershell version 5 hébergées dans un module.
Le plus souvent un traitement distant récupère simplement des données, si on souhaite réhydrater (reconstruire) une instance, la classe utilisée doit être identique sur le(s) distant(s) et le local.
[edit]
class SemanticVersion (PackagaManagement)

RequiredModules causes incorrect "cyclic dependency"

Préversions de module

Versioning limitations in Net.

Remove Class from Memory in PowerShell

Message édité par: Laurent Dardenne, à: 23/08/16 12:19

Message édité par: Laurent Dardenne, à: 1/05/17 07:57

Message édité par: Laurent Dardenne, à: 3/01/18 11:28

Message édité par: Laurent Dardenne, à: 26/07/19 09:46

Message édité par: Laurent Dardenne, à: 30/08/19 09:51
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5655
graph
Karma: 206  
Re:[Tutoriel] Gestion des versions d’un module - 14/07/16 11:51 La version 5.1 de Powershell proposera une notion supplémentaire autour d'une nouvelle propriété MaximumVersion dans la classe Microsoft.PowerShell.Commands.ModuleSpecification.
A suivre...
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5655
graph
Karma: 206  
Re:[Tutoriel] Gestion des versions d’un module - 28/07/16 09:50 WMF 5.1 Preview améliore la gestion des version pour l'instruction using
.
Sous Ps v5.0 cette instruction ne fonctionne pas si un module est versionné( get-module Name renvoi 2 modules), maintenant la 5.1 gère ce cas :
Code:

  using Module @{    ModuleName 'Computer';    Guid '{2b7f4daf-ddb7-43b3-82e6-812af3def67e}' ;   RequiredVersion '1.0' }


Ici aussi l'instruction 'Using Module Computer' dépend de l'ordre de déclaration des path et PS charge la version maximum disponible.

[Edit]
La clause requires autorise une nouvelle valeur :
Code:

  #requires -PSEdition Core  



Post sur using
Message édité par: Laurent Dardenne, à: 28/07/16 11:12

Message édité par: Laurent Dardenne, à: 24/10/16 20:16
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5655
graph
Karma: 206  
Re:[Tutoriel] Gestion des versions d’un module - 6/09/16 16:41 Dans le document j'indique que :

Seul un module possède un numéro de version via son manifeste qui attache des métadonnées à un module.

Il s'agit des métadonnées accessibles via Get-Command.

On peut désormais publier des scripts sur Powershell Gallery, pour permettre une gestion de version, le module PowerShellGet (PSModule.psm1) propose l'ajout de métadonnées.
Celles-ci le sont sous forme de commentaires structurés, la fonction New-ScriptFileInfo crée le squelette d'un script :
Code:

  New-ScriptFileInfo -Path c:\temp\version.ps1 -Description Test type  c:\temp\version.ps1 # <#PSScriptInfo #  # .VERSION 1.0 #  # .GUID 4dd5c2ec-aa78-43f5-a82f-49dacde41d09 #  # .AUTHOR Laurent #  # .COMPANYNAME #  # .COPYRIGHT #  # .TAGS #  # .LICENSEURI #  # .PROJECTURI #  # .ICONURI #  # .EXTERNALMODULEDEPENDENCIES #  # .REQUIREDSCRIPTS #  # .EXTERNALSCRIPTDEPENDENCIES #  # .RELEASENOTES #  #  # #> #  # <# #  # .DESCRIPTION #  Test #  # #> # Param()


On récupère ces informations via la fonction Test-ScriptFileInfo :
Code:

  $O=Test-ScriptFileInfo -Path c:\temp\version.ps1 $O.psobject.typenames # Microsoft.PowerShell.Commands.PSScriptInfo # System.Management.Automation.PSCustomObject # System.Object


La liste des propriétés :
Code:

  $O|select * # Name                       : version # Version                    : 1.0 # Guid                       : 4dd5c2ec-aa78-43f5-a82f-49dacde41d09 # Path                       : C:\temp\version.ps1 # ScriptBase                 : C:\temp # Description                : Test # Author                     : Laurent # CompanyName                : # Copyright                  : # Tags                       : # ReleaseNotes               : # RequiredModules            : # ExternalModuleDependencies : # RequiredScripts            : # ExternalScriptDependencies : # LicenseUri                 : # ProjectUri                 : # IconUri                    : # DefinedCommands            : # DefinedFunctions           : # DefinedWorkflows           :


La fonction Update-ScriptFileInfo met à jour ces propriétés :
Code:

  Update-ScriptFileInfo  -path c:\temp\version.ps1 -Version 2.0 -Force


Mais pour le moment elle est buggée, une version corrigée doit être publié prochainement.
[edit]
La version 1.1.0.0 de PowershellGet corrige le bug de .Update-ScriptFileInfo

Message édité par: Laurent Dardenne, à: 6/09/16 17:42

Message édité par: Laurent Dardenne, à: 30/09/16 09:52
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5655
graph
Karma: 206  
Re:[Tutoriel] Gestion des versions d’un module - 25/09/16 09:42 La version 6.0 proposerait une classe de gestion sémantique de version (à priori pour PackageManagement uniquement). Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5655
graph
Karma: 206  
Re:[Tutoriel] Gestion des versions d’un module - 30/09/16 09:10 Issue de la dernière version de PackageManagment
Code:

 [Microsoft.PackageManagement.Provider.Utility.SemanticVersion]::new('1.0.0-beta-exp.sha.5114f85') Version SpecialVersion ------- -------------- 1.0.0.0 beta-exp.sha.5114f85


Avec le caractère '+' :
Code:

 [Microsoft.PackageManagement.Provider.Utility.SemanticVersion]::new('1.0.0+beta-exp.sha.5114f85') Version SpecialVersion ------- -------------- 1.0.0.0 




[edit]
BNF pour semver 2.0
Message édité par: Laurent Dardenne, à: 30/09/16 10:11

Message édité par: Laurent Dardenne, à: 1/10/16 11:46
Bug avec ScriptToProcess et -version

Message édité par: Laurent Dardenne, à: 12/05/17 11:52
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5655
graph
Karma: 206  
Re:[Tutoriel] Gestion des versions d’un module - 30/03/17 16:13 Une RFC liée au versionning :
PowerShellGet and PowerShell Gallery Pre-Release Version Support

Edit:
La documentation Prerelease Module Versions

Message édité par: Laurent Dardenne, à: 6/12/17 11:29
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5655
graph
Karma: 206  
Re:[Tutoriel] Gestion des versions d’un module - 31/05/19 14:40 La v7 peut rechercher un module qualifié avec un path (Get-Module).
C'est un breaking change, et la classe ModuleSpecification n'est pas impactée par cette évolution. Le nom de sa propriété Name étant aussi, à mon avis, implicitement considérée comme FullPathName
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
© 2019 PowerShell-Scripting.com