I am looking for best practices for an ExtJS project when using Git for source control. After some searching there seems to be a couple options, but I am struggling with the best option to make it the most convenient for our group of developers whenever we bring in a new release of ExtJS. We self-host our Git repos and are not using Architect.

Option 1: Use Git submodules. This seems the most common, but it assumes you have an ExtJS Git repo to be used as the submodule. With no read-only access to the Git repos from Sencha to pull from, what would be the best way to bring in a new release. If we self-host an ExtJS repo it seems like a bit of a nightmare to update this repo when there is a new release from Sencha.

Option 2: Just ignore/exclude the ExtJS dir from Git in our project. This simplifies the project repo, but it requires every developer to create a symbolic link to the correct ExtJS version dir on clone. How would you manage or track which version is required for the project? There could be multiple branches of the project that require different versions of ExtJS. How would developers know which ExtJS version they need to symbolic link too?

Are there any other options that I am missing? I'm trying to ease the effort involved for our developers when managing multiple branches which require different versions of ExtJS and also when bringing a new release of ExtJS into the fold.