Skip to content

Releases: Sha0huaZhang/MacWave

Index Update-2026092301

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 23 Sep 12:18

Index Update 索引更新

Add pacakges: fzf tmux

新增软件包:fzf tmux

由于wave install会自动拉取最新数据,你无需手动更新

Because of wave install automatically pulls the latest data, you don't need to update manually.

MacWave 2.2

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 22 Sep 10:08
68c1986

Release Note 更新日志

新增:支持含有依赖的软件包,采用引用计数和依赖自动管理,无需手动处理依赖

软件包和依赖均支持多版本共存,且均在MacWave目录下,减小系统库更新造成的影响

新增软件包:ffmpeg

New: Support for software packages with dependencies, using reference counting and automatic dependency management, with no need to handle dependencies manually.

Both software packages and dependencies support multi-version coexistence, and they are all stored under the MacWave directory, reducing the impact caused by system library updates.

New software packages: ffmpeg

Install 安装

运行以下命令以下载/更新到此版本
Run the following command to download/update to this version.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Sha0huaZhang/MacWave/2.2.0/lib/install.sh)"

MacWave 2.1

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 13 Sep 01:48
6b660b7

About This Release / 关于本次发布

Due to numerous unexpected and hard-to-fix bugs in 2.0RC and early 2.1.0 betas, we decided to rewrite the project from the ground up. The 2.0 stable release is skipped, and all earlier 2.1.0 betas are deprecated. This is the new starting point.

由于 2.0RC 和早期 2.1.0 Beta 出现大量非预期、难以修复的 bug,我们决定从底层重写整个项目。2.0 正式版跳过,此前的所有 2.1.0 Beta 作废。此版本是重写后的新起点。

What's Included / 本版本包含

  • wave install <package>@<version> — install packages with mandatory version suffix
    安装软件包,强制带版本号
  • wave uninstall <package>[@<version>|@*] — uninstall single, multiple, or all versions
    卸载单个、多个或全部版本
  • wave list — list installed packages
    列出已安装的软件包
  • wave search <query> — search packages in the remote infosource
    在远程 infosource 中搜索软件包
  • wave info <package> — show package info (local if installed, remote otherwise)
    查看软件包信息(已安装查本地,未安装查远程)
  • SHA256 verification before extraction
    解压前进行 SHA256 校验
  • Resumable downloads (-C / --continue)
    断点续传
  • Rate limiting (--limit-rate)
    限速
  • Proxy support (--proxy)
    代理支持
  • SSL verification toggle (--skip-ssl)
    SSL 校验开关
  • Support for 8 archive formats: no-extension, .zip, .tar.gz, .tar.bz2, .tar.xz, .tar, .gz, .bz2
    支持 8 种压缩格式
  • CI workflow that tests all 8 archive formats on every push
    每次 push 自动在 macOS runner 上跑覆盖全部 8 种格式的 CI 测试

What's Removed / 已移除

  • wave upgrade — use uninstall + install instead
    请用 uninstall + install 替代
  • Local caching — metadata is now fetched live from infosource
    本地缓存 —— 元数据改为从 infosource 实时拉取
  • parser.rb custom DSL parser — data is now read as JSON
    自定义 DSL 解析 —— 数据改为直接读取 JSON

Known Limitations / 已知限制

  • Dependency handling is not yet available. Only packages without dependencies can be installed. This is planned for 2.2.
    暂不支持依赖处理。 目前仅能安装无依赖的软件包。计划在 2.2 版本引入。
  • surfboard/ modules are present but not active.
    surfboard/ 模块已存在但暂未启用。

For Developers / 面向开发者

  • Modular architecture: wave.py is a pure dispatcher; install/query/uninstall logic live in separate modules.
    模块化架构wave.py 只做调度,安装/查询/卸载逻辑各自独立成模块。
  • Clear contracts: each module exposes a single entry function.
    接口清晰:每个模块只暴露一个入口函数。
  • Unified style: see STYLE.md.
    风格统一:参见 STYLE.md
  • CI-verified: every push runs a format test on macOS runners.
    CI 验证:每次 push 都会在 macOS runner 上自动跑格式测试。
  • Reusable test script: scripts/format_test.sh runs the same tests locally and in CI.
    测试脚本可复用:本地和 CI 共用同一套测试。
  • Shared dev config: .vscode/ is committed, so new contributors can debug and run tests immediately.
    共享开发配置.vscode/ 已提交,新成员 clone 后即可调试和测试。

Install / 安装

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Sha0huaZhang/MacWave/main/lib/install.sh)"

Feedback / 反馈

If you encounter bugs, please open an issue on GitHub with your OS version, reproduction steps, and error logs.
如果你遇到 bug,请在 GitHub Issues 中反馈,附上系统版本、复现步骤、报错日志。

MacWave 2.0RC

MacWave 2.0RC Pre-release
Pre-release

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 31 Aug 02:57
d516b65

更新说明 Release Note

1.解耦了数个程序。原来的wave.pypkginstaller.py被拆分成wave.py(调用接口); pkginstaller.py(下载和删除软件包); versionparser.py(解析软件包版本号); help.py(输出帮助信息)。
1. Decoupled several modules. The original wave.py and pkginstaller.py have been split into: wave.py (interface caller); pkginstaller.py (package download and removal); versionparser.py (version number parsing); help.py (help message output).

2.创建Linux分支。MacWave产生分支LinuxWave,专门服务于Linux。
2. Created a Linux branch. MacWave spawned a branch LinuxWave, dedicated to serving Linux.

3.更多的目录选择。macOS可安装到~/.local/macwave/opt/macwave/usr/local/macwave(仅Intel Mac)或自定义目录,Linux可安装到~/.local/linuxwave/opt/linuxwave/usr/local/linuxwave/home/linuxwave/.linuxwave或自定义目录。
3. More directory options. macOS can be installed to ~/.local/macwave, /opt/macwave, /usr/local/macwave (Intel Mac only), or a custom directory. Linux can be installed to ~/.local/linuxwave, /opt/linuxwave, /usr/local/linuxwave, /home/linuxwave/.linuxwave, or a custom directory.

4.清晰分类Git目录。现在,所有Git文件都被放置在pkg/lib/templates/scripts/目录中。
4. Clear categorization of Git directories. All Git files are now placed in the pkg/, lib/, templates/, and scripts/ directories.

5.清晰分类用户目录wave不再和软件包放在同一目录。现在,有关软件包的程序和文件(pkginfo_arm64(amd64).txt; pkgparser.rb; pkginstaller.py; versionparser.py; repo_cache.json; installed.json)均放置在pkg/,核心文件(wavehelp.py)放置在lib/,临时目录(tmp/)放置在downloads/,软件包放置在bin/,做好了结构分离。
5. Clear categorization of user directories. wave is no longer placed in the same directory as packages. Programs and files related to packages (pkginfo_arm64(amd64).txt; pkgparser.rb; pkginstaller.py; versionparser.py; repo_cache.json; installed.json) are now placed in pkg/. Core files (wave and help.py) are placed in lib/. Temporary directories (tmp/) are placed in downloads/. Packages are placed in bin/, achieving a clear structural separation.

6.分离出配置文件config.jsonVERSION.json),并放在固定位置(/opt/macwave_config
6. Separated configuration files (config.json, VERSION.json) and placed them in a fixed location (/opt/macwave_config).

7.引入自定义的微型DSL(特定领域语言): pkginfo_arm64.txt pkginfo_amd64.txt
7. Introduced a custom mini-DSL (Domain-Specific Language): pkginfo_arm64.txt pkginfo_amd64.txt.

8.软件包索引(pkginfo_arm64(amd64).txt)下载到本地,无需从网络获取。
8. The package index (pkginfo_arm64(amd64).txt) is downloaded locally, eliminating the need to fetch it from the network.

9.重写pkginstaller.py
9. Rewrote pkginstaller.py.

10.改进了部分输出
10. Improved some output messages.

架构图参考附加文件的图片: Arch_digram_Modules.png Arch_digram_Dir.png Flowchart_Download.png Flowchart_Uninstall.png
For the architecture diagram, please refer to the image in the attached file.: Arch_digram_Modules.png Arch_digram_Dir.png Flowchart_Download.png Flowchart_Uninstall.png

若要安装此版本,请先执行下列命令完全删除MacWave 2.0 beta 2之前的版本(如有):
To install this version, please first execute the following command to completely remove the previous version of MacWave 2.0 beta 2 (if any):

rm -rf ~/.local/macwave

执行下列命令以下载2.0RC版本:
Execute the following command to download version 2.0RC:

/bin/bash -c "$(curl -fsSL https://github.com/Sha0huaZhang/MacWave/releases/download/v2.0.0-rc/install.sh)"

MacWave 2.0.0-beta2

MacWave 2.0.0-beta2 Pre-release
Pre-release

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 31 Aug 02:35
d516b65

更新说明 Release Note

1.解耦了数个程序。原来的wave.pypkginstaller.py被拆分成wave.py(调用接口); pkginstaller.py(下载和删除软件包); versionparser.py(解析软件包版本号); help.py(输出帮助信息)。
1. Decoupled several modules. The original wave.py and pkginstaller.py have been split into: wave.py (interface caller); pkginstaller.py (package download and removal); versionparser.py (version number parsing); help.py (help message output).

2.创建Linux分支。MacWave产生分支LinuxWave,专门服务于Linux。
2. Created a Linux branch. MacWave spawned a branch LinuxWave, dedicated to serving Linux.

3.更多的目录选择。macOS可安装到~/.local/macwave/opt/macwave/usr/local/macwave(仅Intel Mac)或自定义目录,Linux可安装到~/.local/linuxwave/opt/linuxwave/usr/local/linuxwave/home/linuxwave/.linuxwave或自定义目录。
3. More directory options. macOS can be installed to ~/.local/macwave, /opt/macwave, /usr/local/macwave (Intel Mac only), or a custom directory. Linux can be installed to ~/.local/linuxwave, /opt/linuxwave, /usr/local/linuxwave, /home/linuxwave/.linuxwave, or a custom directory.

4.清晰分类Git目录。现在,所有Git文件都被放置在pkg/lib/templates/scripts/目录中。
4. Clear categorization of Git directories. All Git files are now placed in the pkg/, lib/, templates/, and scripts/ directories.

5.清晰分类用户目录wave不再和软件包放在同一目录。现在,有关软件包的程序和文件(pkginfo_arm64(amd64).txt; pkgparser.rb; pkginstaller.py; versionparser.py; repo_cache.json; installed.json)均放置在pkg/,核心文件(wavehelp.py)放置在lib/,临时目录(tmp/)放置在downloads/,软件包放置在bin/,做好了结构分离。
5. Clear categorization of user directories. wave is no longer placed in the same directory as packages. Programs and files related to packages (pkginfo_arm64(amd64).txt; pkgparser.rb; pkginstaller.py; versionparser.py; repo_cache.json; installed.json) are now placed in pkg/. Core files (wave and help.py) are placed in lib/. Temporary directories (tmp/) are placed in downloads/. Packages are placed in bin/, achieving a clear structural separation.

6.分离出配置文件config.jsonVERSION.json),并放在固定位置(/opt/macwave_config
6. Separated configuration files (config.json, VERSION.json) and placed them in a fixed location (/opt/macwave_config).

7.引入自定义的微型DSL(特定领域语言): pkginfo_arm64.txt pkginfo_amd64.txt
7. Introduced a custom mini-DSL (Domain-Specific Language): pkginfo_arm64.txt pkginfo_amd64.txt.

8.软件包索引(pkginfo_arm64(amd64).txt)下载到本地,无需从网络获取。
8. The package index (pkginfo_arm64(amd64).txt) is downloaded locally, eliminating the need to fetch it from the network.

9.重写pkginstaller.py
9. Rewrote pkginstaller.py.

架构图参考附加文件的图片: Arch_digram_Modules.png Arch_digram_Dir.png Flowchart_Download.png Flowchart_Uninstall.png
For the architecture diagram, please refer to the image in the attached file.: Arch_digram_Modules.png Arch_digram_Dir.png Flowchart_Download.png Flowchart_Uninstall.png

若要安装此版本,请先执行下列命令完全删除MacWave之前的版本(如有):
To install this version, please first execute the following command to completely remove the previous version of MacWave (if any):

rm -rf ~/.local/macwave

执行下列命令以下载2.0Beta2版本:
Execute the following command to download version 2.0Beta2:

/bin/bash -c "$(curl -fsSL https://github.com/Sha0huaZhang/MacWave/releases/download/v2.0.0-beta2/install.sh)"

MacWave v2.0.0-beta1

MacWave v2.0.0-beta1 Pre-release
Pre-release

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 27 Aug 01:35
d516b65

更新说明 Releases Note

不再兼容 repo.json,改为 pkginfo_arm64.txt pkginfo_amd64.txt
Dropped compatibility with repo.json and switched to pkginfo_arm64.txt pkginfo_amd64.txt instead

新增pkginstaller.py
Added pkginstaller.py

执行以下命令以更新到 2.0.0-beta1
Run the following command to update to 2.0.0-beta1:

/bin/bash -c "$(curl -fsSL https://github.com/Sha0huaZhang/MacWave/releases/download/v2.0.0-beta1/install.sh)"

MacWave 1.1

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 26 Aug 10:40
d516b65

更新说明 Release Note

修复了更新时可能导致死锁的问题
Fixed an issue that could cause a deadlock during updates

packageinstaller.py 更名为 pkginstaller.py
Renamed packageinstaller.py to pkginstaller.py

执行以下命令以更新到 1.1:
Run the following command to update to 1.1:

/bin/bash -c "$(curl -fsSL https://github.com/Sha0huaZhang/MacWave/releases/download/v1.1.0/install.sh)"

MacWave 1.1RC

MacWave 1.1RC Pre-release
Pre-release

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 26 Aug 06:15
d516b65

更新说明 Release Note

修复了更新时可能导致死锁的问题
Fixed an issue that could cause a deadlock during updates

packageinstaller.py 更名为 pkginstaller.py
Renamed packageinstaller.py to pkginstaller.py

执行以下命令以更新到 1.1RC:
Run the following command to update to 1.1RC:

/bin/bash -c "$(curl -fsSL https://github.com/Sha0huaZhang/MacWave/releases/download/v1.1.0-rc/install.sh)"

MacWave v1.1.0-beta3

MacWave v1.1.0-beta3 Pre-release
Pre-release

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 22 Aug 04:01
d516b65

更新说明 Release Note

删除了有问题的软件包(ChOma v1.0-macwaveteam1),添加了新版软件包(ChOma v1.0-macwaveteam2)

Delete the problematic package (ChOma v1.0-macwaveteam1) and add its new version(ChOma v1.0-macwaveteam2)

执行以下命令以更新到 1.1.0 beta3:
Run the following command to update to 1.1.0 beta3:

/bin/bash -c "$(curl -fsSL https://github.com/Sha0huaZhang/MacWave/releases/download/v1.1.0-beta3/install.sh)"

MacWave v1.1.0-beta2

MacWave v1.1.0-beta2 Pre-release
Pre-release

Choose a tag to compare

@Sha0huaZhang Sha0huaZhang released this 21 Aug 00:56
2cb8348

更新说明 Releases Note

修复了部分情况下版本号显示异常的问题

Fixed an issue where the version number was displayed incorrectly in some cases

新增软件包 choma ,版本为 1.0-macwaveteam1

注:此版本为MacWave作者使用M4和Intel Mac编译的由opa334开发的Choma(原链接为https://github.com/opa334/ChOma),作者fork后发布Release(链接为https://github.com/Sha0huaZhang/ChOma-macwave/releases/tag/v1.0-macwaveteam1

Added a new software package choma, version 1.0-macwaveteam1

Note: This version is compiled by the MacWave author using M4 and Intel Mac, based on Choma developed by opa334 (original link: https://github.com/opa334/ChOma). The author forked the repository and published a Release (link: https://github.com/Sha0huaZhang/ChOma-macwave/releases/tag/v1.0-macwaveteam1)

执行以下命令以更新到 1.1.0 beta2:
Run the following command to update to 1.1.0 beta2:

/bin/bash -c "$(curl -fsSL https://github.com/Sha0huaZhang/MacWave/releases/download/v1.1.0-beta2/install.sh)"