<div dir="ltr"><div>The spreadsheet is the solution for data entry, data is in VCS under our control, but really should just be synced.</div><div><br></div><div>We are at the point where flat files just don't work for us anymore and we need a real database. For example to read a compatibility entry, we have to glob the entire compat list, the entire game list, the entire engine list and the entire company list. It's luckily not a huge amount of data and we can (and should) leverage caching to just have it all in memory.</div><div><br></div><div>I consider this the "best of both" scenario - we have a structured way to enter and validate data but still read and keep everything in VCS (in fact, if we ever lose the spreadsheet, we can just recreate it from the data). The alternative is to build a whole CMS system or leverage an existing one. If anyone has a better idea I'm open to it.<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 15, 2020 at 12:44 AM Will Herrmann <<a href="mailto:wjherrmann@gmail.com">wjherrmann@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">Thanks for putting so much work into improving the quality of the data of the website!<div><br></div><div>Question: is the spreadsheet intended to be a solution long-term? If it’s a temporary measure as we’re migrating data, that’s fine. But I think long-term, we should have the relevant data in VCS under our control, rather than externally hosted on Google. This will ensure that there will never be access issues and that changes are properly tracked (as well as having our project built by FOSS at all levels).</div><div><div><br><blockquote type="cite"><div>On Sep 14, 2020, at 12:59 PM, Matan Bareket <<a href="mailto:mataniko@gmail.com" target="_blank">mataniko@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div>If you do not add data to the website (demos, compatibility, etc.) you can skip reading this mail.</div><div><br></div><div>Over the last few months I've been working on improving the data behind our website culminating with <a href="https://github.com/scummvm/scummvm-web/pull/131" target="_blank">https://github.com/scummvm/scummvm-web/pull/131</a> <br></div><div><br></div><div>From now on, most data is managed via a spreadsheet, with a script to pull data into the repository to convert to YAML. You can find the new sheet here: <a href="https://docs.google.com/spreadsheets/d/1QzwFleEKXOsE59cYMOcQB7C2f0Np48uAQOCG8kicX_s/edit?usp=sharing" target="_blank">https://docs.google.com/spreadsheets/d/1QzwFleEKXOsE59cYMOcQB7C2f0Np48uAQOCG8kicX_s/edit?usp=sharing</a><br></div><div><br></div><div>Data is structured similar to a relational database, with sheets for games, companies, versions, engines, game series and demos. (More to be added).</div><div><br></div><div>When adding entries that reference other entities, please make sure you are not referencing a non-existing entity (sheets have some validation rules to help).</div><div><br></div><div><br></div><div>Compatibility saw the most drastic change, since we now reuse old compatibility entries if they haven't changed. If you want to add a new entry:</div><div>1. Add a new line in the sheet</div><div>2. Fill up the id (game id), version the entry is relevant for, and supported platforms</div><div>3. Platforms are comma separated values, based on the platforms sheet</div><div>4. Optionally, add unsupported platforms</div><div>5. Optionally, add any additional notes - you DO NOT need to enter "game is supported, no problems" or "only dos version is supported" instead we will generate these messages based on the status and platforms</div><div>6. Once you're done - run the update script and commit the changes to the repository (composer update-data)</div><div><br></div><div><br></div><div>Q&A</div><div><br></div><div>Q: This looks just like a database, why not use a database</div><div>A: I wanted to keep the data open, and not require us to build a whole setup to update the database. <br></div><div><br></div><div>Q: Why do all this work?<br></div><div>A: By using a "database" we can support more features in the site. Filtering, grouping, sorting, etc. It also keeps our data persistent across pages (demos, compat, eventually screenshots)</div><div><br></div><div>Q: I don't have access to the spreadsheet</div><div>A: Please reach out to me for access<br></div></div>
_______________________________________________<br>Scummvm-devel mailing list<br><a href="mailto:Scummvm-devel@lists.scummvm.org" target="_blank">Scummvm-devel@lists.scummvm.org</a><br><a href="https://lists.scummvm.org/listinfo/scummvm-devel" target="_blank">https://lists.scummvm.org/listinfo/scummvm-devel</a><br></div></blockquote></div><br></div></div></blockquote></div>