Parent company | Idea and Design Works, LLC |
---|---|
Traded as | NASDAQ: IDWM |
Founded | 1999; 20 years ago |
Founder | |
Country of origin | United States |
Headquarters location | San Diego, California |
Distribution | Diamond Comic Distributors (comics)[1] Penguin Random House Publisher Services (US books) Diamond Book Distributors (international books)[2] |
Key people |
|
Publication types | Comics |
Fiction genres | |
Imprints |
|
Owner(s) | IDW Media Holdings, Inc. |
Official website | www.idwpublishing.com |
Most of what you will find in our boutique’s showcases is custom designed jewellery. Please visit our gallery to view the entire collection – it is unlike anything else in Winnipeg! We have two GIA trained Graduate Gemmologists on-site to help you navigate diamond qualities. This is important to note as many jewellery stores do not have.
IDW Publishing is an American publisher of comic books, graphic novels, art books, and comic strip collections. It was founded in 1999 as the publishing division of Idea and Design Works, LLC (IDW), itself formed in 1999, and is regularly recognized as the fifth-largest comic book publisher in the United States, behind Marvel, DC, Dark Horse and Image Comics, ahead of other major comic book publishers such as Archie, Boom!, Dynamite and Oni Press.[3] The company is perhaps best known for its licensed comic book adaptations of movies, television shows, video games, and cartoons.
- 1History
- 2Imprints
- 4Adaptations in other media
History[edit]
Origin in 1999[edit]
Idea and Design Works (IDW) was formed in 1999 by a group of comic book managers and artists that met at Wildstorm Productions included Ted Adams, Robbie Robbins, Alex Garner, and Kris Oprisko for an outsource art and graphic design firm. Each of the four was equal partners, owning 25%. With Wildstorm owner Jim Lee selling to DC Comics in 1999, Lee turned that company's creative service department, previously run by Adams, clients over to IDW allowing IDW to be profitable its first year. With these profits, the firm decided to fund a new venture every year.
2000s[edit]
In 2000, they developed a TV show concept, getting as far as a pilot episode. For 2001's project, Adams's Ashley Wood talked to them about publishing an art book, thus starting up IDW Publishing. Una Fanta was published in March 2002. Woods had Steve Niles send Adams some of his rejected screenplays. Adams selected one, 30 Days of Night, and paired him with artist Ben Templesmith for a comic adaptation as a three issue series, beginning in August 2002. With low pre-orders, Adams personally pushed the comic with the distributor and major comic book stores. Soon the title's back issue were hot and were followed up with Wood's Popbot.[4]
In 2007, IDT Corporation purchased a 53% majority interest in IDW from the company's founders, removing Garner & Oprisko, while reducing Adams & Robbins to minority owners collectively at 47%. Then, in 2009, IDT proceeded to increase its interest to the current 76%, reducing Adams & Robbins's interest once again to the current 24%. Then, shortly afterwards, IDT created CTM Media Holdings via a tax-free spin-off. This new company consisted of the majority interest in IDW and CTM Media Group.[5] Eight years later, on April 3, 2015, CTM Media Holdings announced it would continue operations under a new name, becoming IDW Media Holdings, which would continue to consist of the majority interest in IDW and CTM Media Group.[6]
The company's first traditional comic series, 30 Days of Night, created by Steve Niles and Ben Templesmith started a seven-figure bidding war between DreamWorks, MGM, and Senator International, with Senator winning and Sam Raimi attached to produce.[7][8]
IDW Publishing's second title, Popbot, won two Gold Spectrum Awards.[9]
IDW Publishing also publishes comics based on the TV franchises Star Trek and CSI. The company's other licensed comics include Topps' Mars Attacks, Sony's Underworld, FX' The Shield, Fox' 24,[10] and Angel; Universal’s Land of the Dead and Shaun of the Dead; and Konami’s Silent Hill,[11]Castlevania, Metal Gear Solid, and Speed Racer. The company has also had success with comic license from toy company Hasbro brands: The Transformers (with Takara), G.I. Joe, My Little Pony, and Jem. Transformers has had as many as five different titles running concurrently.
Beginning in 2008, the company licensed the Doctor Who series from the BBC, launching two concurrent titles: Doctor Who Classics, which reprints colorized comic strips featuring the past Doctors such as the Fourth Doctor and Fifth Doctor originally published in the late 1970's-early 1980's by Doctor Who Magazine, and Doctor Who: Agent Provocateur, an original six-part limited series featuring the Tenth Doctor and overseen and written by TV series script editor Gary Russell. An additional six-part limited series titled Doctor Who: The Forgotten started in mid-2008 by Tony Lee and Pia Guerra,[12][13] as well as a series of monthly one-shot, self-contained stories. July 2009 saw the beginning of Doctor Who, an ongoing series featuring the Tenth Doctor, written by Tony Lee and illustrated by a rotating art team.[14]
IDW Publishing acquired the G.I. Joe comics license in May 2008 (previously held by Devil's Due Publishing) and released three new series under editor Andy Schmidt,[15] from writers such as Chuck Dixon, Larry Hama, and Christos Gage. Other comics were released in time to tie-in with the summer 2009 G.I. Joe film.[16][17]
In March 2009, IDW Publishing forged an agreement with Mike Gold's Comicmix.com to publish print versions of Comicmix's online comic books. The agreement stipulates Comicmix must provide two comic books a month to IDW Publishing to publish, as well as graphic novels and trade paperbacks as demanded by the market. The books are published with both the IDW Publishing and Comicmix.com logos on the covers. As of the end of 2009, the agreement has produced print versions of the Grimjack series The Manx Cat; the Jon Sable series Ashes of Eden; Mark Wheatley and Robert Tinnell's pulp hero series Lone Justice; the graphic novel Demons of Sherwood by Tinnell and Bo Hampton; and a graphic novel collecting Trevor Von Eeden's The Original Johnson. A collection of Munden's Bar stories original to Comicmix's website is also forthcoming.[18]
In 2004, 2005, and 2006 IDW Publishing was named Publisher of the Year by Diamond Comic Distributors.[19]
2010s[edit]
In 2010, IDW Publishing released the sequel to Michael San Giacomo's 'Phantom Jack' Image Comics series with 'Phantom Jack: The Nowhere Man Agenda.' The graphic novel is notable because it features the death of the main character, a reporter who can turn invisible.
IDW Publishing formed an imprint with EA Games in late 2009, called EA Comics, to focus on adaptations of the latter's video games, with initial titles including Army of Two andDragon Age.[20]
In January 2011, IDW Publishing announced a new Dungeons & Dragons comic series, under license from Hasbro and Wizards of the Coast. Set in the D&D4th Edition core setting, the new ongoing series Dungeons & Dragons (Fell's Five) ran for 16 issues. Several mini-series were also published including The Legend of Drizzt: Neverwinter Tales written by R.A. Salvatore.[21] Since 2014, five five-issue mini-series have been published in the D&D 5th Edition core setting.[22] A sixth five-issue mini-series, Infernal Tide, is set to be published in in November 2019.[23]
September 6, 2011, for the 10th anniversary of 9/11, IDW Publishing teamed up Charlie Foxtrot Entertainment and released the graphic novel Code Word: Geronimo, written by retired Marine Corps Captain Dale Dye and Julia Dye, drawn by Gerry Kissell with inker Amin Amat.[24] Code Word: Geronimo reached #22 on Diamond Comics top 100 list its first month after release.[25] During that same year, the company has published its first crossover series Infestation.[26]
In March 2012 IDW Publishing announced it would release new comics based on Judge Dredd and The Crow.[27] Also in 2012, Hasbro licensed the use of My Little Pony: Friendship Is Magic for an IDW comic book series. The company also published Infestation 2.[28]
In February 2013, IDW Publishing announced a partnership with Cartoon Network to publish comics based on the network's television series and reprint older Cartoon Network comics.[29]
On January 6, 2015, IDW Publishing announced it had acquired Top Shelf Productions.[30]
In February 2015, it was announced that IDW Publishing made a deal with Disney to continue the publication of the following comic books: Uncle Scrooge, Donald Duck, Mickey Mouse, and Walt Disney's Comics and Stories.[31]
In 2016, IDW launched the Hasbro Reconstruction initiative to present a shared universe of Hasbro brands, which was later known as the Hasbro Comic Book Universe. The first event was Revolution, followed by First Strike on 2017.[32]
In July 2017, Sega announced a partnership with IDW to publish comics based on Sonic the Hedgehog beginning in 2018, following the conclusion/cancellation of the previous series by Archie Comics.[33][34][35] IDW has also launched new imprint called Black Crown, handling creator-owned comics.[36]
In April 2018, publishers IDW Publishing and Oni Press announced a crossover between the Rick and Morty comic book and Dungeons & Dragons co-written by Jim Zub and Patrick Rothfuss with art by Troy Little.[37] The four issue mini-series, Rick and Morty vs. Dungeons & Dragons, was first published in August 2018.[38] In May 2019, a sequel mini-series was announced: Rick and Morty vs. Dungeons & Dragons: Chapter II: Painscape. It will be written by Jim Zub and Sarah Stern with art by Troy Little.[39][40]
In 2019, the company went under financial difficulties and got help from JPMorgan Chase, but it succeed on remaining active.[citation needed]
In May 2019, IDW offered itself as investor of Clover Press, a new independent imprint founded by Adams (cofounder and former CEO of IDW) and Robbins (cofounder, executive vice president and art director at IDW).[41][42]
Imprints[edit]
IDW has several imprints that they have developed or acquired:
- Black Crown
- Blue Dream Studios
- EA Comics
- The Library of American Comics
- Worthwhile Books
- Yoe! Books
Yoe! Books[edit]
- The Creativity of Ditko
- Dick Briefer's Frankenstein (The Chilling Archives of Horror Comics)
- The Golden Collection of Klassic Krazy Kool Kids Komics
- The Great Treasury of Christmas Comic Book Stories
- Bob Powell's Terror (The Chilling Archives of Horror Comics)
- Zombie (The Chilling Archives of Horror Comics)
The Library of American Comics[edit]
Titles
- Street Fighter x G.I. JOE and Transformers
- Chuck Jones: The Dream that Never Was ('Crawford')
- 'LOAC Essentials' (including Baron Bean, The Gumps, and Polly and her Pals)
In 2008, the first volume of The Complete Terry and the Pirates received an Eisner Award for Best Archival Collection.
Worthwhile Books and Blue Dream Studios[edit]
IDW Publishing launched two new imprints in 2008: Worthwhile Books, part of their children's books division,[43] and Scott Christian Sava's Blue Dream Studios, previously a separate self-publishing venture.[44][45]
Publications[edit]
Adaptations in other media[edit]
Konami acquired the video game rights, and minority ownership, in IDW Publishing's CVO: Covert Vampiric Operations.[dead link][46]
30 Days of Night has been adapted into a film of the same name in 2007, starring Josh Hartnett and Melissa George, directed by David Slade, and produced by Spider-Man director Sam Raimi. It is distributed by Columbia Pictures.
Dimension Films has an option on two Steve Niles/IDW Publishing properties: Wake the Dead, with X2 screenwriter Michael Dougherty attached to write, and Hyde, with Mike Fleiss (The Bachelor, The Texas Chainsaw Massacre) attached to produce.[47][48]
The motion comic version of Transformers: Movie Prequel titled Transformers: Beginnings (albeit excluding characters not present in the movie) is included in the Transformers DVD.
Syfy announced a television adaptation of Wynonna Earp, which premiered on April 1, 2016.
Upcoming projects[edit]
- In June 2012, Deadline reported that Hideo Nakata will direct the film adaptation of The Suicide Forest for Vertigo Entertainment.[49]
- USA Network announced a pilot for Brooklyn Animal Control produced by David Goyer.[50][51]
- Paramount Pictures has an option on the Steve Niles/IDW Publishing property Aleister Arcane.[52] In June 2016, Variety reported that Jim Carrey will star in Eli Roth's film adaptation of Aleister Arcane for Amblin Entertainment.[53]
- October Faction created by Steve Niles received a 10 episode series order from Netflix on September 28, 2018 with High Park Entertainment producing in association with IDW Entertainment, who would also distribution the series internationally.[54]
- Darkness Visible by Mike Carey is being developed as a TV series[55]
References[edit]
- ^'Contact – IDW Publishing'. www.idwpublishing.com.
- ^'IDW moves to Penguin Random House for book distribution'. September 13, 2016.
- ^Albert, Aaron. 'Here is a List of the Top Comic Book Publishers and Companies'. ThoughtCo. Retrieved June 26, 2018.
- ^Bradley, Drew (February 16, 2015). 'IDW: The Small Press Days'. Multiversity Comics. Retrieved June 8, 2018.
- ^'CTM HOLDINGS'. ctmholdings.com. Archived from the original on February 22, 2016. Retrieved December 31, 2015.
- ^IDW MEDIA HOLDINGS (April 3, 2015). 'CTM MEDIA HOLDINGS (CTMMA; CTMMB) TO BECOME IDW MEDIA HOLDINGS'. idwmediaholdings.com. Retrieved April 3, 2015.
- ^SignonSanDiego.com (July 2006) A Hollywood ending
- ^IGN.com (2007) 30 Days of Night
- ^Locus index to SF awards: 2002 Spectrum Awardshttps://web.archive.org/web/20151104210653/http://www.locusmag.com/SFAwards/Db/Spectrum12002.html.
- ^Weiland, Jonah (March 2004). 'IDW Publishing to Release Comic Based on TV Show '24''. Comic Book Resources.
- ^Weiland, Jonah (July 2003). 'IDW Publishing Joins Konami for 'Silent Hill' Comic Book'. Comic Book Resources.
- ^The Timeline Of A Time Lord: Lee talks 'Doctor Who'. Comic Book Resources. June 26, 2008
- ^Tony Lee and The Doctors in the House, Newsarama. July 14, 2008
- ^'Tony Lee on the Doctor Who Ongoing Series'. Newsarama. July 10, 2009
- ^'Schmidt to Oversee G.I. Joe at IDW Publishing'. Comic Book Resources. June 4, 2008
- ^'IDW Announces GI Joe Plans'. Newsarama. September 9, 2008
- ^Jensen, Van (September 23, 2008). 'IDW Launches G.I. Joe Invasion'. Publishers Weekly.
- ^'IDW and ComicMix Join Forces'. ComicMix. Retrieved December 31, 2015.
- ^'IDW's Gem-Award Triple Crown'. Diamond Comic Distributors. April 2006. Archived from the original on May 23, 2011.
- ^'EA and IDW Launch Army of Two and Dragon Age Comics'. (press release), Reuters. October 5, 2009
- ^'IDW Publishing | The home of 30 Days of Night, Star Trek, Terminator, Transformers, G.I. Joe...'web.archive.org. January 26, 2011. Retrieved June 14, 2019.
- ^'Dungeons & Dragons | IDW Publishing'. www.idwpublishing.com. Retrieved June 14, 2019.
- ^'IDW Announces Dungeons & Dragons: Infernal Tide at D&D Live 2019'. www.bleedingcool.com. Retrieved June 14, 2019.
- ^Gustines, George Gene. 'Graphic Books Best Sellers: True Life Comics'.
- ^'Diamond Comic Distributors, Inc. - Top 100 Graphic Novels: September 2011'. Diamond Comic Distributors, Inc. Retrieved December 31, 2015.
- ^Lamar, Cyriaque. 'IDW's Infestation: Ghostbusters, G.I. Joe, Star Trek, and Transformers vs. Zombies'. io9. Retrieved January 2, 2017.
- ^'Chiller'. Chiller. Archived from the original on April 13, 2012. Retrieved December 31, 2015.CS1 maint: BOT: original-url status unknown (link)
- ^'IDW Unleashes 'Infestation 2''. Comic Book Resources. November 18, 2016. Retrieved December 26, 2016.
- ^
- ^'IDW Publishing Acquires Top Shelf Productions'. Comic Book Resources. Retrieved December 31, 2015.
- ^'Disney Comics in Stores April 2015'. IDW Publishing. Retrieved December 31, 2015.
- ^Ching, Albert (April 20, 2017). 'Hasbro Crossover First Strike Aims to 'Destroy all the Transformers''. CBR. Retrieved April 20, 2017.
- ^@sonic_hedgehog (July 21, 2017). 'SEGA and IDW are thrilled to announce a partnership to bring Sonic Comics to fans new and old. The new series arrives 2018!' (Tweet) – via Twitter.
- ^Frank, Allegra (October 9, 2017). 'Sonic the Hedgehog's next comics get a fantastic facelift (correction)'. Polygon. Retrieved November 13, 2017.
- ^Devore, Jordan. 'Sonic comics return April 2018 with writer Ian Flynn'. destructoid. Retrieved November 13, 2017.
- ^Staley, Brandon (July 21, 2017). 'IDW Announces Expansion to Black Crown Imprint'. CBR. Retrieved May 13, 2019.
- ^Mufson, Beckett; Messman, Lauren (April 9, 2018). 'Rick and Morty Are Going on a 'Dungeons & Dragons' Adventure'. Vice. Retrieved June 14, 2019.
- ^Mufson, Beckett; McManus, Brian (July 31, 2018). ''Rick and Morty vs. Dungeons and Dragons' Is Basically Nerd Heaven'. Vice. Retrieved June 14, 2019.
- ^Lanier, Liz; Lanier, Liz (May 17, 2019). ''Rick and Morty' Getting a D&D Tabletop Game This Fall'. Variety. Retrieved June 14, 2019.
- ^'Rick and Morty D&D Chapter 2 Comic Unveiled at D&D Live 2019'. www.bleedingcool.com. Retrieved June 14, 2019.
- ^'Syndicated Comics'. The Beat. May 29, 2019. Retrieved June 14, 2019.
- ^'Ted Adams to Launch Clover Press'. PublishersWeekly.com. Retrieved June 14, 2019.
- ^'IDW Launches New Children's Division and Imprint'. Comic Book Resources. January 10, 2008
- ^'Blue Dream becomes imprint of IDW'[permanent dead link]. Newsarama. March 4, 2008
- ^Dueben, Alex (December 3, 2008). 'Scott Christian Sava Talks 'Dreamland Chronicles'. Comic Book Resources.
- ^'IDW Continues Popular Franchise With 'CVO: Covert Vampiric Operations—Rogue State'. Silver Bullet Comics. Archived October 21, 2006, at the Wayback Machine
- ^Comics2Film.com Books 'HYDE' Film Rightshttps://web.archive.org/web/20131015114305/http://www.comics2film.com/FanFrame.php?f_id=4537/Dimension
- ^Horror.com (November 2003) Dimension to 'Wake The Dead'
- ^Fleming Jr, Mike (June 14, 2012). 'Hideo Nakata To Direct Graphic Novel Adaptation 'The Suicide Forest''. Deadline Hollywood. Retrieved September 26, 2017.
- ^Andreeva, Nellie. ''Brooklyn Animal Control' Comic Gets USA Drama Pilot Order, David Goyer Producing'. Deadline Hollywood. Retrieved June 23, 2016.
- ^Andreeva, Nellie. 'USA To Redevelop 'Brooklyn Animal Control' Pilot, Passes On 'Poor Richard's Almanack''. Deadline Hollywood. Retrieved June 23, 2016.
- ^'Par gains 'Arcane' rights'. Comics2Film.com (June 2004) Archived February 14, 2005, at the Wayback Machine
- ^McNary, Dave. 'Jim Carrey, Eli Roth Team on Horror Film 'Aleister Arcane''. Variety.com. Retrieved July 8, 2016.
- ^Otterson, Joe (September 28, 2018). 'Netflix Orders Three Sci-Fi Shows, Including Kate Bosworth Produced 'I-Land''. Variety. Retrieved September 28, 2018.
- ^Petski, Denise (November 6, 2017). ''Darkness Visible': IDW Entertainment Developing Supernatural Comic Series For TV'. Deadline. Retrieved November 19, 2018.
External links[edit]
Wikimedia Commons has media related to IDW Publishing. |
- Official website
- Dueben, Alex (January 17, 2008). 'In-Depth with IDW Publisher Chris Ryall'. Comic Book Resources.
- 'IDW's Drusilla/Angel'https://web.archive.org/web/20131105035521/http://www.fearnet.com/news/b16032_exclusive_5_pages_from_idws.html. FEARnet.
- Gustines, George (September 9, 2011). 'Graphic Books Best Sellers: True Life Comics'. New York Times. Retrieved February 17, 2013.
![Publishing Publishing](https://www.sjhpublishing.com/wp-content/uploads/2017/11/Website-images-template_Shop_DNA1.jpg)
This topic describes recommended steps used by Microsoft teams to ensure the packages published tothe PowerShell Gallery will be widely adopted and provide high value to users, based on how thePowerShell Gallery handles manifest data and on feedback from large numbers of PowerShell Gallery users.Packages that are published following these guidelines will be more likely to be installed, trusted, and attract more users.
Included below are guidelines for what makes a good PowerShell Gallery package, what optional Manifest settings are most important,improving your code with feedback from initial reviewers and Powershell Script Analyzer,versioning your module, documentation, tests & examples for how to use what you have shared.Much of this documentation follows the guidelines for publishing High Quality DSC Resource Modules.
For the mechanics of publishing a package to the PowerShell Gallery, see Creating and Publishing a Package.
Feedback on these guidelines is welcomed. If you do have feedback, please open issues in our Github documentation repository.
Best practices for publishing packages
The following best practices are what the users of PowerShell Gallery items say is important, and are listed in nominal priority order.Packages that follow these guidelines are far more likely to be downloaded and adopted by others.
- Use PSScriptAnalyzer
- Include documentation and examples
- Be responsive to feedback
- Provide modules rather than scripts
- Provide links to a project site
- Tag your package with the compatible PSEdition(s) and platforms
- Include tests with your modules
- Include and/or link to license terms
- Sign your code
- Follow SemVer guidelines for versioning
- Use common tags, as documented in Common PowerShell Gallery tags
- Test publishing using a local repository
- Use PowerShellGet to publish
Each of these is covered briefly in the sections below.
Use PSScriptAnalyzer
PSScriptAnalyzer is a free static code analysis tool that works on PowerShell code.PSScriptAnalyzer will identify the most common issues seen in PowerShell code, and often a recommendation for how to fix the issue.The tool is easy to use, and categorizes the issues as Errors (severe, must be addressed), Warning (need to be reviewed & should be addressed), and Information (worth checking out for best practices).All packages published to the PowerShell Gallery will be scanned using PSScriptAnalyzer, and any errors will be reported back to the owner and must be addressed.
The best practice is to run Invoke-ScriptAnalyzer
with -Recurse
and -Severity
Warning.
Review the results, and ensure that:
- All Errors are corrected or addressed in your documentation
- All Warnings are reviewed, and addressed where applicable
Users who acquire packages from the PowerShell Gallery are strongly encouraged to run PSScriptAnalyzer and evaluate all Errors and Warnings.Users are very likely to contact package owners if they see that there is an error reported by PSScriptAnalyzer.If there is a compelling reason for your package to keep code that is flagged as an error, add that information to your documentation to avoid having to answer the same question many times.
Include documentation and examples
Documentation and examples are the best way to ensure users can take advantage of any shared code.
Documentation is the most helpful thing to include in packages published to the PowerShell Gallery.Users will generally bypass packages without documentation, as the alternative is to read the code to understand what the package is and how to use it.There are several articles available about how to provide documentation with PowerShell packages, including:
- Guidelines for providing help are in How to Write Cmdlet Help
- Creating cmdlet help, which is the best approach for any PowerShell script, function, or cmdlet.For information about how to create cmdlet help, start with How to Write Cmdlet Help.To add help within a script, see About Comment Based Help.
- Many modules also include documentation in text format, such as MarkDown files.This can be particularly helpful when there is a project site in Github, where Markdown is a heavily used format.The best practice is to use Github-flavored Markdown
Examples show users how the package is intended to be used.Many developers will say that they look at examples before documentation to understand how to use something.The best type of examples show basic use, plus a simulated realistic use case, and the code is well-commented.Examples for modules published to the PowerShell Gallery should be in an Examples folder under the module root.
A good pattern for examples can be found in the PSDscResource module under the ExamplesRegistryResource folder.There are four sample use cases with a brief description at the top of each file that documents what is being demonstrated.
Respond to feedback
Package owners who respond properly to feedback are highly valued by the community.Users who provide constructive feedback are important to respond to, as they are interested enough in the package to try to help improve it.
There are two feedback methods available in the PowerShell Gallery:
- Contact Owner: This allows a user to send an email to the package owner(s). As an package owner, is important to monitor the email address used with the PowerShell Gallery packages, and respond to issues that are raised. The one disadvantage to this method is that only the user and owner will ever see the communication, so the owner may have to answer the same question many times.
- Comments: At the bottom of the package page is a Comment field.The advantage to this system is that other users can see the comments and responses, which reduces the number of times any single question must be answered.As a package owner, it is strongly recommended that you Follow the comments made for each package.See Providing Feedback via Social Media or Comments for details on how to do that.
Owners who respond to feedback constructively are appreciated by the community.Use the opportunity in the report to request more information if needed, provide a workaround, or identify if an update fixes a problem.
If there is inappropriate behavior observed from either of these communication channels, use the Report Abuse feature of the PowerShell Gallery to contact the Gallery Administrators.
Modules Versus Scripts
Sharing a script with other users is great, and provides others with examples of how to solve problems they may have.The issue is that scripts in the PowerShell Gallery are single files without separate documentation, examples, and tests.
PowerShell Modules have a folder structure that allows multiple folders and files to be included with the package.The module structure enables including the other packages we list as best practices: cmdlet help, documentation, examples, and tests.The biggest disadvantage is that a script inside a module must be exposed and used as a function.For information on how to create a module, see Writing a Windows PowerShell Module.
There are situations where a script provides a better experience for the user, particularly with DSC configurations.The best practice for DSC configurations is to publish the configuration as a script with an accompanying module that contains the docs, examples, and tests.The script lists the accompanying module using RequiredModules = @(Name of the Module).This approach can be used with any script.
Standalone scripts that follow the other best practices provide real value to other users.Providing comment-based documentation and a link to a Project Site are highly recommended when publishing a script to the PowerShell Gallery.
Provide a link to a project site
A Project Site is where a publisher can interact directly with the users of their PowerShell Gallery packages.Users prefer packages that provide this, as it allows them to get information about the package more easily.Many packages in the PowerShell Gallery are developed in GitHub, others are provided by organizations with a dedicated web presence.Each of these can be considered a project site.
Adding a link is done by including ProjectURI in the PSData section of the manifest as follows:
When a ProjectURI is provided, the PowerShell Gallery will include a link to the Project Site on the left side of the package page.
Tag your package with the compatible PSEdition(s) and platforms
Use the following tags to demonstrate to users which packages will work well with their environment:
- PSEdition_Desktop : Packages that are compatible with Windows PowerShell
- PSEdition_Core : Packages that are compatible with PowerShell Core
- Windows : Packages that are compatible with the Windows Operating System
- Linux : Packages that are compatible with Linux Operating Systems
- MacOS : Packages that are compatible with the Mac Operating System
By tagging your package with the compatible platform(s) it will be included in the Gallery searchfilters on the left pane of the search results. If you host your package on GitHub, when you tag your package, you can alsotake advantage of our PowerShell Gallery compability shields.
Include tests
![Diamond Gallery Publishing Diamond Gallery Publishing](https://image.isu.pub/180112102201-6b17ded22c8ca6be192895a4f7d863ed/jpg/page_17_thumb_large.jpg)
Including tests with open-source code is important to users, as it gives them assurance about what you validate, and provides information on how your code works. It also allows users to ensure they do not break your original functionality if they modify your code to fit their environment.
It is strongly recommended that tests be written to take advantage of the Pester test framework, which has been designed specifically for PowerShell.Pester is available in GitHub, the PowerShell Gallery, and ships in Windows 10, Windows Server 2016, WMF 5.0 and WMF 5.1.
The Pester project site in GitHub includes good documentation on writing Pester tests, from getting started to best practices.
The targets for test coverage are called out in the High Quality Resource Module documentation, with 70% unit test code coverage recommended.
Include and/or link to license terms
All packages published to the PowerShell Gallery must specify the license terms, orbe bound by the license included in the Terms of Use under 'Exhibit A'.The best approach to specifying a different license is to provide a link to the license using the LicenseURI in PSData.You can find an example in the Recommended Manifest Fields topic.
Sign your code
Code signing provides users with the highest level of assurance for who published the package, and that the copy of the code they acquire is exactly what the publisher released.To learn more about code signing generally, see Introduction to Code Signing.PowerShell supports validation of code signing through two primary approaches:
- Signing script files
- Catalog signing a module
Signing PowerShell files is a well-established approach to ensuring that the code being executed was produced by a reliable source, and has not been modified.Details on how to sign PowerShell script files is covered in the About Signing topic.In overview, a signature can be added to any .PS1 file that PowerShell validates when the script is loaded.PowerShell can be constrained using the Execution Policy cmdlets to ensure use of signed scripts.
Catalog signing modules is a feature added to PowerShell in version 5.1.How to sign a module is covered in the Catalog Cmdlets topic.In overview, catalog signing is done by creating a catalog file, which contains a hash value for every file in the module, and then signing that file.The PowerShellGet publish-module, install-module, save-module, and update-module cmdlets will check the signature to ensure it is valid, then confirm that the hash value for each package matches what is in the catalog.If a previous version of the module is installed on the system, install-module will confirm that the signing authority for the new version matches what was previously installed.Catalog signing works with, but does not replace signing script files. PowerShell does not validate catalog signatures at module load time.
Follow SemVer guidelines for versioning
SemVer is a public convention that describes how to structure and change a version to allow easy interpretation of changes.The version for your package must be included in the manifest data.
- The version should be structured as 3 numeric blocks separated by periods, as in 0.1.1 or 4.11.192
- Versions starting with '0' indicate that the package is not yet production ready, and the first number should only begin with '0' if that is the only number used
- Changes in the first number (1.9.9999 to 2.0.0) indicate major and breaking changes between the versions
- Changes to the second number (1.1 to 1.2) indicate feature-level changes, such as adding new cmdlets to a module
- Changes to the third number indicate non-breaking changes, such as new parameters, updated samples, or new tests
- When listing versions, PowerShell will sort the versions as strings, so 1.01.0 will be treated as greater than 1.001.0
PowerShell was created before SemVer was published, so it provides support for most but not all elements of SemVer, specifically:
- It does not support prerelease strings in version numbers. This is useful when a publisher wishes to deliver a preview release of a new major version after providing a version 1.0.0. This will be supported in a future release of the PowerShell Gallery and PowerShellGet cmdlets.
- PowerShell and the PowerShell Gallery allow version strings with 1, 2, and 4 segments. Many early modules did not follow the guidelines, and product releases from Microsoft include build information as a 4th block of numbers (for example 5.1.14393.1066). From a versioning standpoint, these differences are ignored.
Test using a local repository
The PowerShell Gallery is not designed to be a target for testing the publishing process.The best way to test out the end-to-end process of publishing to the PowerShell Gallery is to set up and use your own local repository.This can be done in a few ways, including:
- Set up a local PowerShell Gallery instance, using the PS Private Gallery project in Github. This preview project will help you set up an instance of the PowerShell Gallery that you can control, and use for your tests.
- Set up an internal Nuget repository. This will require more work to set up, but will have the advantage of validating a few more of the requirements, notably validating use of an API key, and whether or not dependencies are present in the target when you publish.
- Set up a file share as the test “repository”. This is easy to set up, but since it is a file share, the validations noted above will not take place. One potential advantage in this case is that the file share does not check the (required) API key, so you can use the same key you would to publish to the PowerShell Gallery.
With any of these solutions, use Register-PSRepository to define a new 'repository', which you use in the -Repository property for Publish-Module.
One additional point about test publishing: any package you publish to the PowerShell Gallery cannot be deleted without help from the operations team, who will confirm that nothing is dependent upon the package you wish to publish.For that reason, we do not support the PowerShell Gallery as a testing target, and will contact any publisher who does so.
Use PowerShellGet to publish
It is strongly recommended that publishers use the Publish-Module and Publish-Script cmdlets when working with the PowerShell Gallery.PowerShellGet has been created to help you avoid remembering important details about installing from and publishing to the PowerShell Gallery.On occasion, publishers have chosen to skip PowerShellGet and use the NuGet client, or PackageManagement cmdlets, instead of Publish-Module.There are a number of details that are easily missed, which results in a variety of support requests.
If there is a reason that you cannot use Publish-Module or Publish-Script, please let us know.File an issue in the PowerShellGet GitHub repo, and provide the details that cause you to choose NuGet or PackageManagement.
Recommended workflow
The most successful approach we have found for packages published to the PowerShell Gallery is this:
- Do initial development in a an open-source project site. The PowerShell Team uses Github.
- Use feedback from reviewers and Powershell Script Analyzer to get the code to stable state
- Include documentation, so others know how to use your work
- Test out the publishing action using a local repository.
- Publish a stable or Alpha release to the PowerShell Gallery, making sure to include the documentation and link to your project site
- Gather feedback and iterate on the code in your project site, then publish stable updates to the PowerShell Gallery
- Add examples and Pester tests in your project and your module
- Decide if you want to code sign your package
- When you feel the project is ready to use in a production environment, publish a 1.0.0 version to the PowerShell Gallery
- Continue to gather feedback and iterate on your code based on user input