Question [Tutoriel] Gestion des versions d’un module
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 8 ans 6 mois #22076
par Laurent Dardenne
Tutoriels PowerShell
[Tutoriel] Gestion des versions d’un module a été créé par Laurent Dardenne
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<br><br>Message édité par: Laurent Dardenne, à: 30/08/19 09:51
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<br><br>Message édité par: Laurent Dardenne, à: 30/08/19 09:51
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 8 ans 6 mois #22078
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Tutoriel] Gestion des versions d’un module
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...
A suivre...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 8 ans 5 mois #22109
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Tutoriel] Gestion des versions d’un module
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:1]
using Module @{
ModuleName = 'Computer';
Guid = '{2b7f4daf-ddb7-43b3-82e6-812af3def67e}' ;
RequiredVersion = '1.0' }
[/code:1]
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:1]
#requires -PSEdition Core
[/code:1]
Post sur using
Message édité par: Laurent Dardenne, à: 28/07/16 11:12<br><br>Message édité par: Laurent Dardenne, à: 24/10/16 20:16
.
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:1]
using Module @{
ModuleName = 'Computer';
Guid = '{2b7f4daf-ddb7-43b3-82e6-812af3def67e}' ;
RequiredVersion = '1.0' }
[/code:1]
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:1]
#requires -PSEdition Core
[/code:1]
Post sur using
Message édité par: Laurent Dardenne, à: 28/07/16 11:12<br><br>Message édité par: Laurent Dardenne, à: 24/10/16 20:16
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 8 ans 4 mois #22263
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Tutoriel] Gestion des versions d’un module
Dans le document j'indique que :
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:1]
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()
[/code:1]
On récupère ces informations via la fonction Test-ScriptFileInfo :
[code:1]
$O=Test-ScriptFileInfo -Path c:\temp\version.ps1
$O.psobject.typenames
# Microsoft.PowerShell.Commands.PSScriptInfo
# System.Management.Automation.PSCustomObject
# System.Object
[/code:1]
La liste des propriétés :
[code:1]
$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 :
[/code:1]
La fonction Update-ScriptFileInfo met à jour ces propriétés :
[code:1]
Update-ScriptFileInfo -path c:\temp\version.ps1 -Version 2.0 -Force
[/code:1]
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<br><br>Message édité par: Laurent Dardenne, à: 30/09/16 09:52
Il s'agit des métadonnées accessibles via Get-Command.Seul un module possède un numéro de version via son manifeste qui attache des métadonnées à un module.
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:1]
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()
[/code:1]
On récupère ces informations via la fonction Test-ScriptFileInfo :
[code:1]
$O=Test-ScriptFileInfo -Path c:\temp\version.ps1
$O.psobject.typenames
# Microsoft.PowerShell.Commands.PSScriptInfo
# System.Management.Automation.PSCustomObject
# System.Object
[/code:1]
La liste des propriétés :
[code:1]
$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 :
[/code:1]
La fonction Update-ScriptFileInfo met à jour ces propriétés :
[code:1]
Update-ScriptFileInfo -path c:\temp\version.ps1 -Version 2.0 -Force
[/code:1]
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<br><br>Message édité par: Laurent Dardenne, à: 30/09/16 09:52
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 8 ans 3 mois #22333
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Tutoriel] Gestion des versions d’un module
La version 6.0 proposerait
une classe
de gestion sémantique de version (à priori pour PackageManagement uniquement).
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 8 ans 3 mois #22447
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Tutoriel] Gestion des versions d’un module
Issue de la dernière version de PackageManagment [code:1][Microsoft.PackageManagement.Provider.Utility.SemanticVersion]::new('1.0.0-beta-exp.sha.5114f85')
Version SpecialVersion
1.0.0.0 beta-exp.sha.5114f85[/code:1]
Avec le caractère '+' :
[code:1][Microsoft.PackageManagement.Provider.Utility.SemanticVersion]::new('1.0.0+beta-exp.sha.5114f85')
Version SpecialVersion
1.0.0.0 [/code:1]
[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<br><br>Message édité par: Laurent Dardenne, à: 12/05/17 11:52
Version SpecialVersion
1.0.0.0 beta-exp.sha.5114f85[/code:1]
Avec le caractère '+' :
[code:1][Microsoft.PackageManagement.Provider.Utility.SemanticVersion]::new('1.0.0+beta-exp.sha.5114f85')
Version SpecialVersion
1.0.0.0 [/code:1]
[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<br><br>Message édité par: Laurent Dardenne, à: 12/05/17 11:52
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.121 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- [Tutoriel] Gestion des versions d’un module