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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions