Skip to main content

On the subject of "Dreaming what Salesforce DX could be" I'm thinking a package manager would be super handy. In a recent post, I outlined how we're using packages and namespaces with DX. Since then we've progressed along nicely and we're really starting to see the enterprise in this. So, with packages comes more packages, and with that we're starting to get into dependency management hell.

 

I recently had a talk with Dileep and others around the limits of DX, and right now there is no limit to the number of packages we can install, so why not push this to the limit right?

 

So what I'd like to see in the future is a package manager, with some of the following features in mind:

  • A dev hub can register a "names" which can be used for package grouping. We currently have a number of SF namespaces, however it would be nice to just have one big one - e.g. guidion
  • Package can be given a developer friendly name which can be used to install the package from the "name" as above. For example sfdx force:manager:install --dependency guidion/string --package my-package. This would install the package "String" under the name "Guidion" as a dependency into the my-package in the sfdx-project.json. Think of this as npm install @babel/cli
  • When doing sfdx:force:org:create a new option for --install-dependencies would parse the sfdx-project.json file and install all packages listed. For now i'm okay with the installs queuing, however it would be nice if the org is snapshotted and just all dependencies installed to make it quicker to boot up
  • A package could be public or private
    • Public: anyone can sfdx force:manager:install the package (guidion/string). Can also be searched by users
    • Private: When you install/search for packages, it checks the hub org for private packages with friendly names to install
  • As above point, you can search for packages using sfdx:manager:search for example. It would be good to have some sort of site similar to how NPM does this too so we don't have to go browsing to find out how to implement it.

 

Does anyone else have thoughts, opinions on how this could work? The more we ask for, the more new things we can get!

3 comentarios
0/9000