Wolfram Language Paclet Repository: One Year In

Bob Sandheinrich

({{"[◼]", "GIPHYGIF" }})["First Birthday"]

Paclet Development Office Hour 1PM CDT Today

Paclet Repository Refresher

Paclets

A tool for bundling up Wolfram Language content so it can be shared and easily integrated into a Wolfram Language environment.

Contain code, but much more (documentation, stylesheets, ...)

Named and Versioned

Wolfram Language Paclet Repository

Released at WTC 2022

Official distribution mechanism for Wolfram Language Paclets

Like other Wolfram repositories, requires a PublisherID and definition notebook to contribute

After one year, what is in the Paclet Repository?

131 paclets (857 version releases)

Leading publishers: AntonAntonov, PeterBurbery, KirillBelov, WolframChemistry

Variety of domains: AI, Math, Art, Development tools, etc

Variety of statuses: released, prototype, etc.

Developers at Wolfram are increasingly using the paclet repository to release early versions of work that will eventually be part of the core Wolfram Language.

A Few Favorite Paclets

And a few ways to load paclet code

AntonAntov/DataReshapers

Features a collection of related data manipulation functions many of which were previously published in the Function Repository.

data=ResourceData["Sample Data: 1993 US Cars"][All,{"Manufacturer","Type"}]

PacletInstall["AntonAntonov/DataReshapers"]

Needs["AntonAntonov`DataReshapers`"]

CrossTabulate[data[All,{"Manufacturer","Type"}]]

RohanMehta/OpenChemicalSystems

Simulating chemical reactions modelled as discrete systems

brusselator=({{, initPetriNet }})[({{, generatePetriNet }})[\[LeftAssociation]rxn1->{{X,X,Y},{X,X,X}},rxn2->{{B,X},{Y,Q}},rxn3->{{X},{L}},rxn4->{{A},{X}}\[RightAssociation]],{X->1,Y->1},{rxn1->1,rxn2->5,rxn3->1,rxn4->1}]

({{, graphConcentrations }})[({{, spnUpdate }})[brusselator,100]]

PeterBurbery/RecreationalMathematics

Math is fun, right? This paclet has a nice collection of functions for spending an afternoon experimenting in mathematics.

Needs["PeterBurbery`RecreationalMathematics`"->None]

PeterBurbery`RecreationalMathematics`DiagonalWalkPlot[4,{1,-1}]//Multicolumn

StianRamsnes/MaXrd

Dedicated tools for crystallography

Needs["StianRamsnes`MaXrd`"->"crystal`"]

crystal`ResetCrystalData[];
Manipulate[TableForm[Table[crystal`CrystalPlot[key,"StructureSize"->{1,1,1}*s,"UnitCellDisplay"->displayOption],{s,{0,1}}],TableDirections->Row],Row[{Control[{{key,RandomChoice@Keys@crystal`$CrystalData,""},Keys@crystal`$CrystalData}],Control[{{displayOption,"Box",""},{"Box","Axes","None"}}]},Spacer[10]]]

Contributing to the Paclet Repository

To publish a paclet in the Paclet Repository, use a definition notebook

CreateNotebook["PacletResource"]

Update an existing paclet

NotebookOpen[FileNameJoin[{,"Games/ResourceDefinition.nb"}]]

What’s coming

Paclet dependency handling

PacletA requires PacletB which requires PacletC

Paclet version administration tools

“Pre-release” versions

Learn more

Videos

Hyperlink["Get Started Developing Paclets for the Paclet Repository (2022 WTC Presentation)","https://www.youtube.com/watch?v=LjK-r-pIWyU"]

Hyperlink["Using Paclets from the Wolfram Language Paclet Repository (2022 WTC Presentation)","https://www.youtube.com/watch?v=crU1s-LsEJY&t=470s"]

Documentation

Hyperlink["Prepare a Paclet for WLPR Workflow","https://reference.wolfram.com/language/workflow/PrepareAPacletForPublication"]

Hyperlink["Share a Paclet Workflow","https://reference.wolfram.com/language/workflow/ShareAPaclet"]

Hyperlink["Guide to creating a paclet for WLPR","https://resources.wolframcloud.com/PacletRepository/creating-paclets"]

Hyperlink["WLPR Guidelines","https://resources.wolframcloud.com/PacletRepository/guidelines"]