Skip to content

Help understanding/documenting parts of the Manifest  #17

@gerane

Description

@gerane

There are parts of the manifest that I haven't been able to figure out yet. I was hoping to get more information on certain portions. I was just noting everything as I was going through and trying to get a good understanding of everything. Figured I might get some feedback and maybe this could be added to the documentation once refined.

I tried to leave questions I had in bold. I think it would be beneficial to have a list of the Nodes and their potential values etc. It would also be nice to have a place for proposed or potential ones as well. I did see one potential issue that I am going to file a bug report for with the Module Manifest.

PlasterManifest

Metadata

  • id - Unique ID to for the Package
  • title - Name of Package to Show in UIs
  • description - Description message for UIs
  • version - Package version
  • tags - I am assuming these will be searchable if there is eventually a gallery type store or when searching through your own templates?

Parameters:

  • Is the parameters section where you want a User to set a Custom variable? You could add a new type called Define or similar and they could so something like the following:
<parameter name='CustomDateFormat' type='define' default="$(([DateTime]::Now).ToString('yyyyMMdd'))" store='true'/>
<parameter name='StaticVariable' type='define' default="NoPromptStaticVariableValue" store='true'/>

I am not exactly sure what you had decided on with Code Execution and how that would impact this. If a user needed access to something like a Custom DateTime format, they could create their own variable like above. You could also just define variables without prompts. These could also be defined in a config file, but do you plan to give the ability to define variables in a config file without them needing a prompt

  • The possible types and/or planned types
    • input - Prompts user for input
    • choice - Prompts user to select 1 choice
    • mulitchoice - Prompts user to select 1 or multiple choices
  • required - The Parameter is required
  • store - I'm not quite sure yet, I am guessing this has something to do with stored variables in a config file that is not fully implemented yet. I didn't see anything in invokeplaster.ps1 at first glance.
  • prompt - What is prompted to the user. Is this Required? Can it be omitted? If omitted will the user still be prompted with a blank prompt?

Parameter Choice

  • The Choices for a choice or multichoice Type. These are used with a $host.ui.PromptforChoice dialogue that should work in editors as well.
  • label - Value Shown in Prompt to User
  • help - Small Help Messahe explaining Choice
  • value - The Actual Value

Dependencies

  • id - Potential Dependency IDs based on package metadata IDs

Content

  • This section defines the scaffolding to be built.
  • Content Elements:
  • file
    • source - Source File that will be copied.
    • destination - Destination where the file will be copied
    • condition - Condition that must be met for this to be invoked.
    • encoding - File encoding
    • template - Templates will have Plaster Variables that will be replaced.
  • newModuleManifest - Creates a new Module Manifest for the Project.
    • destination - Module psd1
    • moduleVersion - Package version
    • rootModule - Module psm1
    • author - Author of the Module
    • condition - A little confused on the condition for newModuleManifest. $FileNode.condition is referenced to define the condition, but newModuleManifest is its own node and not a FileNode. If you add a condition to the Manifest, it will not respect it. I would need to test if creating a File Node for a Manifest and setting the condition to false would carry over to the newModuleManifest Node
  • modify - Modifies Content with options for Conditions.
    • path - Path to file being modified
    • encoding - Encoding of the File (Should this be validated?)
    • condition - Condition that must be met for this to be invoked.
      • Replacement - Replaces content via pattern.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions