Update Smart Items from repo
Updating smart items manually doesn't scale. The process involves manually hunting down and deleting old versions of all items (based on just the thumbnail, the name is not visible), and then re-uploading in small batches bc the browser often gets stuck while doing this. There needs to be a way to do it in bulk, because there are currently ~270 smart items.
All the default smart items from the Decentraland asset packs are stored in this repo:
https://github.com/decentraland/smart-items
The repo already has implemented a GitHub workflow that runs for every commit to master, implemented by @menduz. This workflow includes some necessary steps, but not the whole flow. It builds each item and stores it in the repo's artifacts. The step that is missing is to automate the upload of these items into the Builder itself.
Smart items are uploaded in the Builder using the Land Pool account (0xDc13378daFca7Fe2306368A16BCFac38c80BfCAD), so authentication could be an obstacle. If getting around this authentication is too hard, maybe at least there could be a non-automatic way to bulk upload all items, that still requires signing from this account.
Today there are dozens of bugs in smart items that have already been fixed in the repo, but that aren't updated to the Builder. The main problem is that most of the uploaded smart items use an old version of the "decentraland-builder-scripts" library, and this old version brings problems when exporting the scene from the Builder to work on the SDK. This means that almost all items currently need to be updated.
Hi @nearnshaw, this has been a known issue for us as well, I agree that having a script that we could use to upload a repo of assets / smart items into an instance of the builder server would make the management of environments way easier (let alone prod, even setting up a test or local environment is a pita). The thing is this has never been prioritized yet.. and even less since the development of the Builder was halted. But i will bring this to the rest of the team and get back to you.