Release Highlights
Feature: npm package provenance (security)
igir
is now being published to npm with package provenance.
I would search "supply chain attacks" if you're curious, but the summary is: anyone can validate that igir
(and other open-source projects like it) does not itself contain any malicious code, but that does not guarantee the version published to npm wasn't manipulated by a malicious actor during the build & publish process. With package provenance, packages built on trusted platforms (such as GitHub Actions) can prove that what is published to npm is exactly what was under source control at the time, and there is a certificate chain for it.
That's a lot of words to say: you can trust new versions of igir
on npm even more than you did before.
Feature/fix: detecting symlink permissions on Windows
Some newer versions of Windows require administrator privileges to create symlinks, even when the current user has full permissions on the source & target directories. igir
now tries to detect this lack of permissions at startup when specifying the igir symlink
command, and will offer the advice to try "run as administrator."
Fix: --dir-letter-limit
with multi-ROM games
Unfortunately, v1.9.1 didn't fully fix all of the issues introduced in v1.8.0.
Multi-ROM games were being sorted by their ROM name, not their game name. Hopefully this has been fixed for good.
As an example, the No-Intro Commodore Amiga (Flux) DAT has the game:
<game name="Apidya (Unknown)">
<description>Apidya (Unknown)</description>
<rom name="disk1\apidya_disk1_00.0.raw" size="265730" crc="555b1be8" md5="b1f8d70e604226932b07fd4689bcf585" sha1="af96ba0c5682f16b2b8dcb0547876c51c918fc87"/>
<rom name="disk1\apidya_disk1_00.1.raw" size="256990" crc="9ef64ba6" md5="e99e9d0353df6e3262178b639a974489" sha1="1dee444cbadb98fe1a1058f014b943bee9e5caaa"/>
<!-- ... -->
</game>
ROMs from this games were getting sorted into the "D" subdirectory because of the leading "D" in disk*_apidya_*.raw
. But because this is a multi-ROM game, it should get sorted into the "A" subdirectory because of the leading "A" in Apidya (Unknown)/
.
Fix: the ROM writer threads could exceed --writer-threads <num>
If multiple DATs were written at once, there was a chance that the ROM writer threads could exceed the intended max. This would result in higher CPU and seemingly long file write times.
All changes
26 August 2023 - 4239e0b
- v1.9.3 (#625)
26 August 2023 - 8fd1ddd
- CI: comment back on the version bump PR after drafting a release (#624)
26 August 2023 - 74ce5a5
- CI: GitHub Actions efficiency (#623)
26 August 2023 - 0463bbf
- CI: add some console logs to debug tests in Windows (#622)
26 August 2023 - 346e138
- Fix: logger log level prefix CLI formatting (#621)
25 August 2023 - 7067751
- Feature: add {batocera} support for Amiga CDTV, MSX2, MSX2+, and MSX TurboR (#620)
25 August 2023 - 1dbfc9e
- Fix: Windows symlink permissions check (#619)
25 August 2023 - cb59eb1
- CI: Renovate: separate ESLint updates, try to fix TypeScript files (#618)
25 August 2023 - 458dce0
- CI: Renovate: limit PR open time, use GitHub auto-merge (#617)
25 August 2023 - 3903204
- Fix: pad the last line of wrapped logs with spaces (#615)
25 August 2023 - b7e4bc2
- Fix: prevent writer threads from exceeding the maximum (#616)
25 August 2023 - 76c9f63
- Fix: dir letter of games with multiple ROMs (#613)
25 August 2023 - 5072263
- Refactor: eliminate some File & ArchiveEntry promises (#612)
25 August 2023 - 3668793
- Refactor: underline notice logs (#614)
25 August 2023 - be4a6da
- CI: publish to npm with provenance (#611)
24 August 2023 - 2825d6b
- Refactor: more efficient array duplicate element removal (#603)
igir
, and other open-source projects like it, are a labor of love. They wouldn't be nearly as meaningful without the community supporting them. Constructive feedback and general positivity will always be welcome. Be kind to others, and be kind to yourselves.