Giter Site home page Giter Site logo

writingmodules's Introduction

Writing PowerShell Modules

Materials

An important note: The content of this session made implicit assumptions, for better or worse. For example, It should be available on the PowerShell Gallery (or an internal repository) requires that you use a proper module manifest

References

These references were directly mentioned or used in coming up with the Writing PowerShell Modules: Tips, Tools, and Best Practices session at the 2017 PowerShell + DevOps Global Summit, or just related to the topic : )

Interesting Community Module Designs

And many more. Poke around other community modules to see what folks are doing!

Module Building Tools

Tools and References

Getting and publishing modules:

Package repositories:

Source control and related tooling:

  • GitHub - Recommended for public projects. Many folks have auth, many tools integrate, PowerShell team uses it
  • GitLab - Community edition is fantastic, enables CI
  • VSTS - If you already paid for it. Personally not a fan of build systems that aren't defined in code

Example tools that integrate with GitHub:

Avoid fun with maml, xml:

  • Platyps - Generate documentation from markdown, and vice versa
  • EZOut - Simplify writing format files. Alternatively, just poke around other folks' psm1xml

Mentioned during tips on functions, and making it feel PowerShell-y:

Discussions on module design:

Linting and testing:

CI/CD - Run your tests, among other things:

  • AppVeyor - Free, perfect for public PowerShell modules
  • GitLab CE CI
  • Jenkins
  • VSTS - If you already paid for it. Maybe. Personally not a fan of build systems that aren't defined in code
  • Invoke-BuildUsed in an example of non-PowerShelly authoring. Awesome for users, harder for contributors
  • Psake - Not as much functionality as Invoke-Build, and was dead, but this might change...

On module and function design, among other things:

Misc:

writingmodules's People

Contributors

gerane avatar ramblingcookiemonster avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.