Here's a straw proposal for how to manage keeping ASF4 up to date, patching its bugs, and adding enhancements.
- Create a new
adafruit/asf4 repo. In branch master, commit the latest downloaded/scraped snapshot of all the code we might want. Top-level dir is asf4, with device/family-specific directories as necessary: asf4/samd21, asf4/same21, asf4/samd51j, or whatever. (I don't know how ASF4 distinguishes variants that are only pin changes.)
- Create branch
master-bugfixes. Commit changes that are bugs found and fixed by us.
- Create project branches, like
circuitpython or seesaw. They will derive from master-bugfixes. Commit changes in project branchesthat are enhancements, such as the additions @tannewt made for internal flash filesystems.
- As necessary, update
master, and then merge its changes into master-bugfixes and subsequently into the project branches.
The current asf4 dirs in adafruit/circuitpython will become a submodule pointing to the circuitpython branch of adafruit/asf4.
This will avoid having to maintain explicit patches and keep a good history of what was changed. Essentially we are creating the missing repo that Microchip might have provided.
This basic isn't restricted to ASF4 and Atmel START. Something similar could be used to keep the nordic nRF upstream releases organized and patched. There we'll probably just get zip/tar files to update master, like the older ASF3 releases.
Here's a straw proposal for how to manage keeping ASF4 up to date, patching its bugs, and adding enhancements.
adafruit/asf4repo. In branchmaster, commit the latest downloaded/scraped snapshot of all the code we might want. Top-level dir isasf4, with device/family-specific directories as necessary:asf4/samd21,asf4/same21,asf4/samd51j, or whatever. (I don't know how ASF4 distinguishes variants that are only pin changes.)master-bugfixes. Commit changes that are bugs found and fixed by us.circuitpythonorseesaw. They will derive frommaster-bugfixes. Commit changes in project branchesthat are enhancements, such as the additions @tannewt made for internal flash filesystems.master, and then merge its changes intomaster-bugfixesand subsequently into the project branches.The current
asf4dirs inadafruit/circuitpythonwill become a submodule pointing to thecircuitpythonbranch ofadafruit/asf4.This will avoid having to maintain explicit patches and keep a good history of what was changed. Essentially we are creating the missing repo that Microchip might have provided.
This basic isn't restricted to ASF4 and Atmel START. Something similar could be used to keep the nordic nRF upstream releases organized and patched. There we'll probably just get zip/tar files to update
master, like the older ASF3 releases.