adapter.js is a shim to insulate apps from spec changes and prefix differences. In fact, the standards and protocols used for WebRTC implementations are highly stable, and there are only a few prefixed names. For full interop information, see webrtc.org/web-apis/interop.
npm install webrtc-adapter
bower install webrtc-adapter
Copy to desired location in your src tree or use a minify/vulcanize tool (node_modules is usually not published with the code). See webrtc/samples repo as an example on how you can do this.
In the gh-pages branch prebuilt ready to use files can be downloaded/linked directly. Latest version can be found at https://webrtc.github.io/adapter/adapter-latest.js. Specific versions can be found at https://webrtc.github.io/adapter/adapter-N.N.N.js, e.g. https://webrtc.github.io/adapter/adapter-1.0.2.js.
You will find adapter.js
in bower_components/webrtc-adapter/
.
In node_modules/webrtc-adapter/out/ folder you will find 4 files:
adapter.js
- includes all the shims and is visible in the browser under the globaladapter
object (window.adapter).adapter_no_edge.js
- same as above but does not include the Microsoft Edge (ORTC) shim.adapter_no_edge_no_global.js
- same as above but is not exposed/visible in the browser (you cannot call/interact with the shims in the browser).adapter_no_global.js
- same asadapter.js
but is not exposed/visible in the browser (you cannot call/interact with the shims in the browser).
Include the file that suits your need in your project.
Detailed information on developing in the webrtc github repo can be found in the WebRTC GitHub repo developer's guide.
Head over to test/README.md and get started developing.
- Go the the adapter repository root directory
- Make sure your repository is clean, i.e. no untracked files etc. Also check that you are on the master branch and have pulled the latest changes.
- Depending on the impact of the release, either use
patch
,minor
ormajor
in place of<version>
. Runnpm version <version> -m 'bump to %s'
and type in your password lots of times (setting up credential caching is probably a good idea). - Create and merge the PR if green in the GitHub web ui
- Go to the releases tab in the GitHub web ui and edit the tag.
- Add a summary of the recent commits in the tag summary and a link to the diff between the previous and current version in the description, example.
- Go back to your checkout and run
git pull
- Run
npm publish
(you need access to the webrtc-adapter npmjs package) - Done! There should now be a new release published to NPM and the gh-pages branch.
Note: Currently only tested on Linux, not sure about Mac but will definitely not work on Windows.
In some cases it may be necessary to do a patch version while there are significant changes changes on the master branch. To make a patch release,
- checkout the latest git tag using
git checkout tags/vMajor.minor.patch
. - checkout a new branch, using a name such as patchrelease-major-minor-patch.
- cherry-pick the fixes using
git cherry-pick some-commit-hash
. - run
npm version patch
. This will create a new patch version and publish it on github. - check out the branch created earlier and publish the new version using
npm publish
. - the branch can now safely be deleted. It is not necessary to merge it into the main branch since it only contains cherry-picked commits.