개발자
Papy 는 모든 소스가 GitHub 에 공개되어 있습니다. 버그 수정, 문서 개선, 새 기능 — 작은 Pull Request 도 환영합니다.
가장 쉬운 기여 — 웹에서 바로 수정
- 이 사이트 모든 페이지 아래의 “이 페이지 수정 제안”을 누릅니다.
- GitHub 편집기에서 고친 뒤 Commit changes… → Propose changes 를 누릅니다.
- GitHub 가 Fork 와 브랜치를 자동으로 만들고 Pull Request 화면으로 안내합니다. Create pull request 를 누르면 끝입니다.
코드 없이 의견만 있다면 Issue 나 문의로 알려 주세요. 처음이라면 good first issue 라벨부터 보세요.
Pull Request 절차
- Fork 후 내 저장소를 받습니다.
git clone https://github.com/<내-계정>/papy.git cd papy git remote add upstream https://github.com/namjh654/papy.git - 최신
main에서 브랜치를 만듭니다 —feature/*,fix/*,docs/*.git fetch upstream git switch -c fix/pdf-zoom upstream/main - 고친 영역의 검증을 돌립니다 (아래 표). CI 도 같은 명령을 실행합니다.
- 커밋하고 push 한 뒤 Compare & pull request 를 누릅니다.
git push -u origin fix/pdf-zoom - PR 템플릿의 체크리스트와 테스트 결과를 채우면 리뷰 후 병합합니다.
| 바꾼 곳 | 로컬 검증 명령 |
|---|---|
engine/ | cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings && cargo test --workspace |
apps/desktop/ | pnpm --filter @papy/desktop typecheck · pnpm desktop:dev |
website/ | pnpm --filter @papy/website test |
apps/mobile/ | cd apps/mobile && scripts/orca.sh check |
규칙 전체는 CONTRIBUTING.md 에 있습니다. 문서 본문·개인 경로를 로그에 남기지 않기, 엔진이 UI 에 의존하지 않기가 핵심입니다.
개발 환경
| 도구 | 버전 |
|---|---|
| Rust | 1.99.1 (rust-toolchain.toml 이 자동 설치) |
| Node.js / pnpm | 24 이상 / 10.27.0 |
| Tauri | 2.x stable — OS 별 선행 조건 |
| 모바일 | JDK 21, Android SDK, Xcode(macOS) |
pnpm install
pnpm desktop:dev # 데스크톱 앱 실행
cd engine && cargo test --workspace
저장소 구조
| 폴더 | 내용 |
|---|---|
engine/ | Rust 문서 엔진 — 파싱·모델·렌더링. UI 프레임워크에 의존하지 않음 |
apps/desktop/ | Tauri 2 + React 데스크톱 앱 (Windows·macOS·Linux) |
apps/mobile/ | Kotlin Multiplatform — Android Compose, iOS SwiftUI (후속) |
apps/web/ | 브라우저 뷰어 (WASM 검증 후) |
website/ | 이 사이트 |
docs/ | 아키텍처, 결정 기록(ADR), 포맷·라이선스 문서 |
진행 중인 작업
라이선스
Papy 는 PolyForm Noncommercial 1.0.0 을 따릅니다. Pull Request 를 보내면 기여물을 같은 라이선스로 제공하는 데 동의한 것으로 봅니다. GPL·AGPL 처럼 상업적 사용 제한과 충돌하는 라이선스의 코드는 받을 수 없습니다.