chore: upgrade 7zip binaries to v24.09 and add documentation#28
chore: upgrade 7zip binaries to v24.09 and add documentation#28ollm wants to merge 15 commits intodevelar:masterfrom
Conversation
… [7-Zip 24.08 (2024-08-11)]
…anges for SZ instead of SZA prefixes added additional documentation to index.d.ts
|
This is absolutely brilliant, thank you! Could you split out your auto-update script into a separate PR? I'd like to leverage it with some CI/CD automation for download/committing directly to the repo during CI/CD and utilize Github's attestation feature to secure binaries coming from this repo. Then I can add a deployment CD job for publishing to npm. Context: I'm now very adverse to adding binaries directly to repo's from user's local machines, especially in light of a recent supply chain vulnerability that happened with changeset-files GHA. Instead, I propose we take the same route as to what I'm implementing in |
|
Thanks for your reply!
I have removed the auto-update script in this pull request
I think it's a great idea, I'm not very familiar with GitHub automation/actions, so if anything needs to be changed, let me know. |
|
Your other PR looks solid, I can merge it once it's in Ready For Review state Re: the GHA CI/CD, it'll look something like these: If you're willing to give it a shot, happy to provide pointers! Otherwise just let me know and I can add this to my lengthy to-do list 😅 The gist of it is:
With Changesets/CLI automation, release PRs look like this mmaietta/electron-builder-binaries#39 and automate the binary generation+commit+release |
|
Thanks! I'm happy to give it a shot. I'll take a look at the examples you shared, and if I have any questions along the way, I’ll be sure to reach out. |
|
Hi @mmaietta. I've made some progress with the GitHub action, although I have some issues/questions.
Let me know if I missed anything or need to make changes. Progress so far:
GitHub actions runs:
|
|
Hi @mmaietta. I've finished implementing automatic updates and publishing to npm. For now, I've done it in a separate repository (ollm/7zip-bin-full) to test the npm publishing. If everything looks good to you, I'll send a new pull request with the new changes. I switched from Update binariesScript: Publish to npmWorkflow: Npm packagePackage: 7zip-bin-full |
|
@mmaietta Can you take another look ? |
|
Holy moly, your linked changes (workflow/script/all of it), it looks great.
My one nit pick is regarding package versioning. I personally think we should retain the previous versioning system with a VERSION.txt in the repo representing the version of the package. Ideally, the package structure would look akin to
What are your thoughts? |
|
Hi @mmaietta.
I would prefer to align the package version with the 7zip version, if possible. Since this package only distributes the 7zip binaries and does not provide its own API, so I don't think maintaining a separate versioning scheme adds much value, it mainly makes it harder to identify the actual 7zip version. While using independent version numbers may have made sense in the past when there were multiple 7zip versions, I don't think that's necessary anymore. The version number is also used for checks, such as aborting when the package version matches the 7zip version If you feel the current versioning system is more appropriate, I can make the necessary changes to switch to it. Regarding |
|
The use cases I'm thinking of are for when:
|
|
I think in these cases it's fine to increase the patch number, since 7zip uses Looking at the commit history of The only potential issue I can see is if a major change is required in the repository, but I don't think that's likely. And in that case, we could just wait for the next 7zip release before publishing it. |
|
Sounds good to me. Will you be opening a new PR with the workflow changes? |
|
I've opened the new pull request (#30) that includes three commits: the first adds the necessary changes for automatic updates via GitHub Actions, the second adds an updated 7zz binary for Linux to be used in the action, and the last one removes the old binaries and adds placeholder (empty) binaries that will be replaced when the GitHub Action runs. Commits: |
|
Upgrade to 25.01 is necessary as versions < 25.0 have vulnerabilities associated with them https://www.zerodayinitiative.com/advisories/ZDI-25-950/ and https://www.zerodayinitiative.com/advisories/ZDI-25-949/ |
|
Hi folks, so with the changes to NPM publishing and related tokens, I'm not able to push out updates to this npm package anymore. Only @develar can enable that publishing connection. What I CAN do though is serve these binaries out of electron-builder-binaries monorepo. You might be able to directly I have full admin rights on the artifacts generated through the pipelines on that repo. |
|
Hi @mmaietta, I'm currently using my fork in my project (ollm/7zip-bin-full), which can be installed directly from npm (7zip-bin-full). For now, I'm committed to maintaining it until @develar updates this repository, in case anyone else wants to use it. |
This pull request its based on the #27 of @mmaietta, so it also includes its changes.
Updating to the latest binaries fixes some vulnerabilities in the current binaries and homogenizing all the binaries to the same version with the same features, functions and performance improvements.
Fixes: #21, #22, #26 and probably some more.
Pull rquest changes
Updated all bianries to
v24.09from official release on GitHub: https://github.com/ip7z/7zip/releasesAll binaries are now full feature versions #27 (comment)
7z.exeand7z.dllare extracted from windows installer7zzare extracted from tar.xz7zzand7zzsare extracted from tar.xzChanged package version to match
7zipversion, this way it is easier to know which version7zip-binis using: package.jsonExport a new
path7zzsto use7zzsbinarie in Linux: index.jsAdd package documentation usage in README.md
Add auto update script to easy update all bianries from official release on GitHub: update.jsBinaries status
7z.exeand7z.dll7z.exeand7z.dll7z.exeand7z.dll7z.exeand7z.dll7zz7zz7zzand7zzs7zzand7zzs7zzand7zzs7zzand7zzsI've only been able to test the x64 binaries, as I don't have any devices with other architecture.
If anyone wants to try it an test, they can install it from my fork.
Please let me know if the pull request needs any changes.