명령은 하나.
배포 대상은 전부.
npm, jsr, crates.io, 사설 레지스트리까지 한 번에 배포합니다. 중간에 실패하면 pubm이 전체 변경을 자동으로 되돌립니다.
매니페스트만 두면, 나머지는 pubm이 처리합니다.
package.json은 npm, jsr.json은 jsr, Cargo.toml은 crates.io로 연결됩니다. pubm이 프로젝트를 읽고 레지스트리를 판단하므로 설정 파일이 필요 없습니다.
깨지지 않는 릴리스
모든 단계는 실행 전에 검증됩니다. 문제가 생기면 전체가 롤백됩니다. 반쯤만 배포된 패키지는 남지 않습니다.
모든 레지스트리, 하나의 명령
npm, jsr, crates.io, 사설 레지스트리를 한 번에 처리합니다. 모노레포는 의존 순서대로 배포됩니다. 이어 붙일 스크립트가 필요 없습니다.
자동 롤백
레지스트리에서 패키지를 거부하더라도 pubm이 버전 변경, git 태그, 커밋을 되돌립니다. 반쯤 배포된 상태도, 수동 정리도 없습니다.
사전 점검
브랜치, 워킹 트리, 원격 동기화, 로그인 상태, 배포 권한까지 pubm이 실제 변경 전에 모두 확인합니다.
같은 명령, 로컬과 CI 모두
터미널에서는 대화형 프롬프트로, CI에서는 완전 무인으로 동작합니다. 별도 설정도, 외울 플래그도 없습니다.
처음부터 제대로. 마이그레이션은 없습니다.
대부분의 릴리스 도구는 특정 셋업에 묶이게 만듭니다. pubm은 프로젝트가 커져도 워크플로우를 바꾸지 않고 레지스트리, 패키지, 생태계를 확장할 수 있습니다.
- 마이그레이션 비용 없음지금은 npm만으로 시작하고 준비되면 jsr이나 crates.io를 추가하세요. 워크플로우는 바뀌지 않습니다.
- JS + Rust, 하나의 파이프라인npm 패키지와 Rust crate를 함께 배포하나요? pubm은 package.json과 Cargo.toml을 모두 읽고 전부 함께 릴리스합니다.
- 첫날부터 모노레포 대응오늘은 패키지 하나, 내일은 열 개여도 괜찮습니다. pubm은 의존 순서대로 배포해 순서 문제로 릴리스가 깨지지 않습니다.
하나의 명령이 전부 처리합니다.
pubm을 실행하면 버전 선택, 사전 점검, 테스트, 빌드, 멀티 레지스트리 배포까지 이어서 처리합니다.
버전 선택
인자 없이 pubm을 실행하고 patch, minor, major 중 다음 버전을 선택합니다.
사전 점검과 인증
브랜치, 워킹 트리, 원격 동기화, 레지스트리 자격 증명을 먼저 확인합니다.
테스트, 빌드, 태그
테스트와 빌드를 실행하고 버전을 올린 뒤 git 커밋과 태그를 원자적으로 생성합니다.
모든 곳에 배포
모든 레지스트리에 동시에 배포하며, 실패 시 전체 변경을 자동으로 롤백합니다.