Getting the source
The source for linux-firmware in Ubuntu is available via git.
git clone git://kernel.ubuntu.com/ubuntu/linux-firmware.git
The master branch tracks the master branch of the upstream linux-firmware git repository. There are also branches for each Ubuntu release.
The upstream linux-firmware maintainers do not do formal releases, so there is no upstream version number to use when packaging for Ubuntu. The Ubuntu version numbers for linux-firmware are of the format 1.x[.y], e.g. 1.127.10 or 1.138. For the development release the y component is omitted, and the x component is incremented for each new release. The first stable release in a series will have the y component added and set to 1, and the y component is incremented for each subsequent stable release.
Each new release should be accompanied by a signed tag in git, e.g.
git tag -sa -m "Ubuntu-1.139" Ubuntu-1.139
Updating against upstream
Updating linux-firmware against upstream is done by rebasing the Ubuntu patches on top of the upstream master branch. E.g.
git remote add upstream git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git git fetch upstream git checkout <branch> git rebase -i upstream/master
Then sanity check the patches that git says will be rebased and resolve any conflicts that arise during the rebase.
When testing after a rebase, be sure to test installation along with linux-firmware-nonfree. Firmware files may have been added upstream which are already present in linux-firmware-nonfree, which may lead to conflicts.