Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Install BarShelf on my Mac and scaffold my first widget.
1. Download the latest release from
https://github.com/Open330/barshelf/releases/latest, unzip the
BarShelf-<version>-arm64.zip, move BarShelf.app into /Applications, and open it.
The current v0.3.11 build is Developer ID signed, notarized, and stapled.
The current v0.3.12 build is Developer ID signed, notarized, and stapled.
2. Download the barshelf CLI — it ships as a separate release asset
(barshelf-cli-<version>-arm64.tar.gz). Extract it and put barshelf on my PATH.
3. Scaffold a widget: barshelf new my-widget --kind workflow
Expand All @@ -90,7 +90,7 @@ scaffold a widget. Prefer the manual steps? The human install guide is right bel

Grab `BarShelf-<version>-arm64.zip` from
**[Releases](https://github.com/Open330/barshelf/releases/latest)**, move it to
`/Applications`, then open it normally. The current v0.3.11 asset is Developer ID
`/Applications`, then open it normally. The current v0.3.12 asset is Developer ID
signed, Apple-notarized, and includes a stapled ticket for offline verification.

BarShelf checks for updates itself and can install them in place — only when
Expand Down
2 changes: 1 addition & 1 deletion RELEASED_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.3.11
0.3.12
9 changes: 1 addition & 8 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
# BarShelf 0.3.12
# BarShelf 0.3.13

> Unreleased. Requires macOS 13+ on Apple Silicon.

## Fixes

- **Menu bar items stay where you put them.** Each item now has its own
name, so macOS remembers an arrangement made with ⌘-drag across launches
and updates. Before, only the BarShelf icon kept its place, and an item
could reappear on the far side of other apps' icons.
2 changes: 1 addition & 1 deletion Sources/BarShelfCLI/BarShelfKit/BarShelfMain.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public enum BarShelfMain {
/// Must match `APP_VERSION` in `scripts/build_app.sh`: `release.sh` refuses
/// to package a release whose app and CLI report different versions, and
/// `scripts/check-release-versions.py` catches the drift in CI first.
public static let version = "0.3.12"
public static let version = "0.3.13"

public static let usage = """
barshelf — BarShelf widget developer CLI
Expand Down
16 changes: 8 additions & 8 deletions docs/INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ BarShelf은 macOS **메뉴바 앱**(`BarShelf.app`)과 선택 설치하는 개

1. [Releases](https://github.com/Open330/barshelf/releases)에서 `BarShelf-<버전>-arm64.zip` 다운로드
2. 압축 해제 후 `BarShelf.app`을 `/Applications`로 이동
3. 현재 **v0.3.11은 Developer ID 서명·Apple 공증·티켓 스테이플을 통과한 빌드**이므로 일반 더블클릭으로 실행한다.
3. 현재 **v0.3.12은 Developer ID 서명·Apple 공증·티켓 스테이플을 통과한 빌드**이므로 일반 더블클릭으로 실행한다.
4. 메뉴바에 아이콘이 나타나면 클릭 → 온보딩 시작. 로그인 시 자동 실행은 시스템 설정 → 일반 → 로그인 항목에서 추가

> 릴리스 설명과 `SHA256SUMS`를 함께 확인한다. v0.3.11 앱은 최종 ZIP을 다시 풀어 `codesign`, `stapler`, `spctl`, `syspolicy_check` 배포 검사를 통과했다.
> 릴리스 설명과 `SHA256SUMS`를 함께 확인한다. v0.3.12 앱은 최종 ZIP을 다시 풀어 `codesign`, `stapler`, `spctl`, `syspolicy_check` 배포 검사를 통과했다.

### barshelf CLI (선택)

Expand All @@ -28,7 +28,7 @@ sudo mv barshelf bsf /usr/local/bin/
barshelf --version
```

> v0.3.11 CLI는 Developer ID로 서명되고 Apple 공증 티켓에 각 바이너리의
> v0.3.12 CLI는 Developer ID로 서명되고 Apple 공증 티켓에 각 바이너리의
> CDHash가 등록된다. 릴리스 스크립트는 최종 TAR의 CDHash까지 대조하며,
> 미공증 산출물은 `dist/local-release/`에만 생성한다.

Expand Down Expand Up @@ -59,7 +59,7 @@ DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift run barshelf-app
로컬 검증용 패키지(zip/tar.gz + SHA256SUMS) 생성:

```bash
VERSION=0.3.11 NOTARIZE=0 ALLOW_UNNOTARIZED=1 SIGN_IDENTITY=- bash scripts/release.sh
VERSION=0.3.12 NOTARIZE=0 ALLOW_UNNOTARIZED=1 SIGN_IDENTITY=- bash scripts/release.sh
```

공개 릴리스는 `VERSION`, Developer ID Application `SIGN_IDENTITY`, App Store
Expand Down Expand Up @@ -90,7 +90,7 @@ load formula ... from untrusted tap`이 나오면 안내대로
> `uninstall quit:`가 있지만 Homebrew가 앱을 종료하려면 Automation 권한이 필요하고,
> 없으면 조용히 넘어간다(이 맥에서 실제로 그랬다). 업그레이드 후 메뉴바 아이콘을
> 종료했다가 다시 열어라.
현재 cask는 서명·공증된 v0.3.11 자산과 검증된 SHA-256을 사용한다.
현재 cask는 서명·공증된 v0.3.12 자산과 검증된 SHA-256을 사용한다.

> 이 저장소에도 cask 사본이 있었지만 삭제했다. 탭의 사본과 갈라져 0.1.3에 멈춰
> 있었고, 그 결과 탭으로 설치한 사람은 앱에게 "brew로 올려라"라는 말을 듣고
Expand Down Expand Up @@ -146,7 +146,7 @@ load formula ... from untrusted tap`이 나오면 안내대로

| 증상 | 해결 |
|---|---|
| "확인되지 않은 개발자" 경고 | v0.3.11 이상인지와 `SHA256SUMS`를 확인한 뒤 공식 Releases에서 다시 다운로드. 계속되면 이슈에 macOS 버전과 `spctl -a -vv -t exec BarShelf.app` 결과 첨부 |
| "확인되지 않은 개발자" 경고 | v0.3.12 이상인지와 `SHA256SUMS`를 확인한 뒤 공식 Releases에서 다시 다운로드. 계속되면 이슈에 macOS 버전과 `spctl -a -vv -t exec BarShelf.app` 결과 첨부 |
| 아이콘이 안 보임 | 메뉴바 공간 부족 — 다른 아이콘 정리 후 재실행 |
| script 위젯에 "Install Deno" 카드 | `brew install deno` 후 위젯 카드에서 Refresh |
| otpeek 위젯 패스워드 오류 | [`docs/WIDGET-SPEC.md`](WIDGET-SPEC.md)의 Keychain 설정(`security add-generic-password …`) 참조 |
Expand All @@ -156,8 +156,8 @@ load formula ... from untrusted tap`이 나오면 안내대로

| 단계 | 상태 |
|---|---|
| GitHub Releases | ✅ v0.3.11 서명·공증 산출물 준비 완료 |
| GitHub Releases | ✅ v0.3.12 서명·공증 산출물 준비 완료 |
| Developer ID 서명 + 공증 | ✅ 앱/CLI Accepted, 앱 티켓 스테이플 및 배포 검사 통과 |
| 자가 업데이트 | ✅ 앱은 **Check for Updates…**, 터미널은 `barshelf upgrade` — Sparkle 없이 직접 구현(런타임 의존성 0). Homebrew 설치본은 `brew upgrade`로 안내 |
| Homebrew cask (`brew install --cask barshelf`) | ✅ v0.3.11 체크섬 반영 |
| Homebrew cask (`brew install --cask barshelf`) | ✅ v0.3.12 체크섬 반영 |
| Mac App Store | ❌ 계획 없음 — 임의 CLI 실행이 샌드박스와 충돌 (라이트 에디션만 장기 검토) |
2 changes: 1 addition & 1 deletion scripts/build_app.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ APP_BUNDLE_NAME=${APP_BUNDLE_NAME:-"${APP_DISPLAY_NAME}.app"}
BUILD_CONFIGURATION=${BUILD_CONFIGURATION:-release}
OUTPUT_DIR=${OUTPUT_DIR:-"${PROJECT_ROOT}/dist"}
BUNDLE_IDENTIFIER=${BUNDLE_IDENTIFIER:-com.barshelf.app}
APP_VERSION=${APP_VERSION:-0.3.12}
APP_VERSION=${APP_VERSION:-0.3.13}
APP_BUILD=${APP_BUILD:-"$(date +%Y%m%d%H%M)"}
# Provenance: which commit produced this binary. CFBundleVersion has to stay a
# period-separated number for App Store validation, so the commit goes in its
Expand Down
10 changes: 5 additions & 5 deletions site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -844,15 +844,15 @@ <h3 class="en">Keep state</h3><h3 class="ko">상태 유지</h3>
<div class="label"><span class="en">Install</span><span class="ko">설치</span></div>
<h2 class="en">Get the app, then add widgets.</h2>
<h2 class="ko">앱을 설치하고 위젯을 추가하세요.</h2>
<p class="en">BarShelf is open source and ships with checksums plus CLI tooling for widget authors. v0.3.11 is Developer ID signed, notarized, and stapled.</p>
<p class="ko">BarShelf는 오픈소스이며 체크섬과 위젯 제작용 CLI를 함께 제공합니다. v0.3.11은 Developer ID 서명·Apple 공증·티켓 스테이플을 통과했습니다.</p>
<p class="en">BarShelf is open source and ships with checksums plus CLI tooling for widget authors. v0.3.12 is Developer ID signed, notarized, and stapled.</p>
<p class="ko">BarShelf는 오픈소스이며 체크섬과 위젯 제작용 CLI를 함께 제공합니다. v0.3.12은 Developer ID 서명·Apple 공증·티켓 스테이플을 통과했습니다.</p>
</div>
<div class="terminal-grid reveal">
<article class="terminal">
<h3 class="en">Direct download</h3><h3 class="ko">직접 다운로드</h3>
<pre>BarShelf-*.zip
→ /Applications
→ Open normally (v0.3.11)</pre>
→ Open normally (v0.3.12)</pre>
<p class="en">Download from GitHub Releases and verify SHA256SUMS before installing.</p>
<p class="ko">GitHub Releases에서 받은 뒤 설치 전에 SHA256SUMS를 확인하세요.</p>
</article>
Expand All @@ -861,8 +861,8 @@ <h3>Homebrew</h3>
<pre>brew tap Open330/barshelf \
https://github.com/Open330/barshelf
brew install --cask barshelf</pre>
<p class="en">Install the same notarized v0.3.11 archive through the project tap.</p>
<p class="ko">프로젝트 tap에서도 동일한 공증 v0.3.11 아카이브를 설치합니다.</p>
<p class="en">Install the same notarized v0.3.12 archive through the project tap.</p>
<p class="ko">프로젝트 tap에서도 동일한 공증 v0.3.12 아카이브를 설치합니다.</p>
</article>
<article class="terminal">
<h3 class="en">Widget CLI</h3><h3 class="ko">위젯 CLI</h3>
Expand Down