sp-pnp-js@3.0.0-beta & the road ahead

sp-pnp-js 3.0.0 beta

Today we are releasing the first beta version of 3.0.0 for sp-pnp-js. This is a breaking change and may require updates to your code. You can see a run down of the changes here, and please remember these changes themselves might change before the final release. Under the hood we have rewritten much of the internals of the library, including the request pipeline and the class inheritance structure. These changes were big, but are our first move down a longer term plan (see below). It is not recommended to upgrade to this beta version for anything going to production as it may change - or simply not work in some way we didn't catch in our testing.

Because this is a beta we welcome extra feedback from folks, especially in a few key areas (once you've made any needed updates to your code). You can log an issue in the normal place, but please put "3.0.0-beta" in the title to help us triage.

  • Any code that was working still works. This is number 1, we can't break folks.
  • Try out the graph functionality and let us know how things are working
  • Are all the exports you were using in the global namespace available in the sub namespaces

Known Limitations

There are some known limitations with this beta release, and would ask that you please not log an issue regarding them

  • Graph requests only work within SPFx and through the GraphHttpClient and are subject to the same scoping limitations. This is not the end state, we understand folks would like to use the library in node and plain javascript applications - that will come.
  • Global exports are not available in the distributed pnp.js files.
  • The dist file sizes are getting bigger, see below for our plan to address this
  • Graph batching is not yet supported


the future

When we started this project I did not anticipate how it would grow in both scale and popularity. This is an amazing and humbling problem to have and I want to thank everyone in the community for the support, contributions, and interest in our work. But it means we need to make some changes. 3.0.0 will be the last major release of sp-pnp-js. We will leave the repo in place and continue to patch critical bugs, but we will be moving new development to a new organization within github and a new repo. As part of this move we will completely restructure the library, breaking things up into smaller packages you can combine as needed. This will take a lot of work - but it is the right thing to do to support our long term goals:

  • Expand our support of O365 services beyond SharePoint
  • Provide a mix of packages instead of a single library, allowing folks to use only what they need more easily (and help with size)
  • Create a smooth transition from sp-pnp-js to the new libraries with clear guidance
  • Updated docs to reflect the changes

We'll provide more details as we solidify things and make beta versions available ASAP to get feedback early. While we recognize these changes will be disruptive we believe it is the best way to provide the best service possible to you. As always please share your thoughts. Thanks!