Commit Graph
22 Commits
Author SHA1 Message Date
Evan Hu d59be91390 refactor(ci): move every release shell step into scripts/ci
release.yml had grown thirteen inline shell and PowerShell blocks, some of them twenty lines, which made the workflow hard to read and impossible to lint or run outside Actions. Each one is now a file under scripts/ci and the workflow only wires them up.

Two things fall out of the move rather than being separate changes. The two signing steps were near-duplicates and are now one sign-binaries.ps1 taking a path list, used for both the packaged binaries and the finished installer. The pinned Inno Setup language file URL and checksum move to the packaging job's env, where they read as configuration instead of being buried mid-script.

The Server job now checks this repository out into automation/ for its two scripts. That checkout has to come after the MSIME-Server one, because checkout cleans its destination and the workspace root would take automation/ with it.

shellcheck is clean on all six shell scripts. The PowerShell is not syntax-checked here for lack of pwsh, but four of the seven are verbatim from steps that already ran green in run 33953797415.
2026-09-05 17:19:51 +09:00
Evan a7a3fc42b5 revert: leave the unused boost_path alone 2026-09-05 16:54:15 +09:00
Evan f9e52d98a8 fix(scripts): read vcpkg and boost roots from the environment 2026-09-05 16:53:49 +09:00
Evan Hu 03b3f5f45a ci: build and publish the installer from a release workflow
The Windows installer has been produced by hand: build the TSF DLLs and the Server locally, build the settings page, copy dictionaries out of a developer checkout, then run the msime-installer scripts against a self-signed certificate. This automates that end to end, keeping the same artifact name the releases have always carried, MetasequoiaIME_Setup_v<version>.exe.

The workflow follows the shape of MSIME-Apple's release.yml. release-please owns version.txt and opens a release PR; merging it creates a draft release, which the publish path then builds and fills in. A manual dispatch can rebuild an existing draft tag, and validates that the tag matches version.txt at an immutable commit SHA before anything is built.

Four jobs feed the packaging job: the TSF DLLs for x64 and Win32, the Server Release build, and the settings page. msime-installer needs no changes because the packaging job stages each checkout under the historical directory name its scripts already address, so Prepare-PackageFiles.ps1 and Compile-Installer.ps1 run unmodified. windows-2025 ships Inno Setup 6.7.1, above the 6.6 the scripts require.

Dictionaries are not rebuilt here. They are downloaded from a dict-* release of metasequoiaime/MSIME-Dict and checked against its SHA256SUMS.txt, with the Mozc IPAdic / ICOT / Okinawa notice placed where Prepare-PackageFiles.ps1 expects so it reaches the installed product.

Signing follows the pattern MSIME-Apple uses: sign when the certificate secrets are configured, otherwise publish with an -unsigned suffix and say in the release notes that uiAccess will not take effect. Sign-PackageBinaries-Local.ps1 mints a self-signed certificate for local testing and is never invoked here.

release-please cannot drive the VERSIONINFO block in the resource script, which spells the version both as a comma quad and as a dotted string, so scripts/apply_version.py stamps it from version.txt before the release build configures CMake. It also has a --check mode. The committed resource moves off the stale 1.0.0.1 placeholder to the current 0.0.9.

The manifest starts at 0.0.9 rather than the four-part 0.0.9.2 that semver cannot express, so the next release will be 0.0.10, which still sorts after every existing tag.
2026-09-05 16:10:33 +09:00
fanlusky 8e825920c5 Add inline preedit in-time ars result support for voice input. 2026-08-17 00:56:22 +08:00
fanlusky b5ded50274 Add English input mode. 2026-08-01 23:11:02 +08:00
fanlusky c17e6a1070 Fix host-process crashes (notably QQ) on text commit.
Build the TSF tip with /MT so it no longer depends on the host's MSVCP140,
skip SetText(empty) in OnCompositionTerminated after normal EndComposition,
and guard SetText/EndComposition with SEH.
2026-07-22 10:40:20 +08:00
fanlusky 66110ade2a Continue cleaning up some unused codes. 2026-06-25 22:52:04 +08:00
fanlusky 2a6cc3dd3b Clean up some window-related codes. 2026-06-25 22:40:47 +08:00
fanlusky 502256e470 Remove unused codes. 2026-06-25 21:31:09 +08:00
fanlusky a36fd5e13b add compile release scripts 2026-04-02 18:24:39 +08:00
fanlumaster 6224292fd2 sign dll with certum certificate 2026-03-04 01:48:43 +08:00
fanlumaster eb104a9616 [config]: Update to VS2026 2025-12-29 21:55:53 +08:00
fanlumaster 29c4252042 squashed commits for create word feat 2025-10-25 12:44:29 +08:00
fanlumaster 3919be71e9 [Project]: Rename IME name again 2025-06-10 17:53:10 +08:00
fanlumaster 4483a6eb2c [Project]: Project name is ready 2025-06-10 16:04:39 +08:00
fanlumaster 4200ee8e93 [dependency]: Using vcpkg to install and use utfcpp 2025-06-06 22:26:01 +08:00
fanlumaster 495bd1fc52 [feat]: Do not embed preedit string to VSCode like apps 2025-06-06 16:38:25 +08:00
fanlumaster 20072b6e0c [docs]: Build steps 2025-06-01 00:52:01 +08:00
fanlumaster e22c57567b [env]: Scripts for generating project config 2025-06-01 00:24:42 +08:00
fanlumaster ace57e9531 [dev]: Refactor 2025-05-30 22:03:24 +08:00
fanlumaster f29d6ad681 minimal integration of direct2d and directwrite 2025-01-28 03:57:15 +08:00