ν΄κ²°νλ €λ λ¬Έμ λ₯Ό μ€λͺ
νμμμ€.
crates.ioμ λν κ°μ₯ μΌλ°μ μΈ μ§μ μμ²μ ν¬λ μ΄νΈλ₯Ό μμ νλ κ²μ
λλ€. λ€λ₯Έ μμ/μλΉμλ₯Ό κΉ¨λ¨λ¦¬λ κ²μ λ°©μ§νκΈ° μν΄ μ΄λ¬ν μμ²μ κ±°μ μν μ μμ΅λλ€. μμ²μ λν μΌλ°μ μΈ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
-
μ _
μ¬μ΄λ₯Ό λ³κ²½νκ±°λ μμμ λ/μλ¬Έμ( foo
vs Foo
)λ₯Ό μμ νκ³ μΆμ΅λλ€.μνλ μ루μ
μ€λͺ
κ²μνλ λμ cargo
λ ν¬λ μ΄νΈκ° μ΄μ μ κ²μλμλμ§ νμΈν μ μμ΅λλ€. μ΄κ²μ΄ 첫 λ²μ§Έ κ²μμΈ κ²½μ° cargo
λ μ¬μ©μμκ² λ€μν ν¬λ μ΄νΈ λ©νλ°μ΄ν°λ₯Ό νμΈνλΌλ λ©μμ§λ₯Ό νμν©λλ€. νΉν, μ¬μ©μλ ν¬λ μ΄νΈ μ΄λ¦μ μ νν μ² μμ authors
μ λ΄μ©μ νμΈν΄μΌ ν©λλ€. μ¬μ©μλ ν¬λ μ΄νΈκ° κ²μλλ©΄ μ΄ λ°μ΄ν°λ₯Ό λ³κ²½νκ±°λ μ κ±°ν μ μλ λ°©λ²μ΄ μμμ μλ €μΌ ν©λλ€.
μ΄κΈ° κ²μ ν authors
Cargo.toml
λν λͺ
μμ λ³κ²½μ΄λ―λ‘ μ΄ νμΈμ ν λ²λ§ λ°μνλ©΄ λ©λλ€. λλ cargo new
μ μΌλΆλ‘ μ μ μ격 ν둬ννΈλ₯Ό μνν μ μμ΅λλ€.
μΌλΆ μμλ CI λλ κΈ°ν μ€ν¬λ¦½νΈλ₯Ό ν΅ν΄ κ²μλ©λλ€. μ΄ μ¬μ© μ¬λ‘λ₯Ό μλ°νμ§ μμΌλ €λ©΄ νμΈ λ° ν둬ννΈκ° λνν TTYμμλ§ λ°μν΄μΌ ν©λλ€. --yes
μ€νμΌ μΈμλ₯Ό μΆκ°νκ³ λΉλνν 첫 λ²μ§Έ κ²μμ λν΄ μΈμκ° λλ½λ κ²½μ° κ²½κ³ ν μ μμ§λ§ λνν ν둬ννΈλ§μΌλ‘λ μ¬κΈ°μ λλΌμμ κ²ͺλ λλ€μμ μ¬μ©μλ₯Ό λ€λ£° μ μλ€κ³ μκ°ν©λλ€.
λ
ΈνΈ
μμ λ€ λ²μ§Έ κΈλ¨Έλ¦¬ κΈ°νΈλ₯Ό λ€λ£¨κΈ° μν΄ μ¬μ©μλ₯Ό μ€ν
μ΄μ§ λ μ§μ€νΈλ¦¬ κ΅¬μ± μ§μΉ¨μ μ°κ²°ν μ μμ΅λλ€. κ·Έλ¬λ μ°μ μμλ κ²μ ν ν¬λ μ΄νΈ μ΄λ¦μ΄ λ³κ²½λμ§ μλλ€λ κ²μ μ¬μ©μμκ² λͺ
ννκ² μ λ¬νκ³ μλ μμ±λ μ μκΆ μ 보λ₯Ό 곡μ νλ λ° μ΅μνλ€λ κ²μ νμΈνλ κ²μ΄μ΄μΌ νλ€κ³ μκ°ν©λλ€.
μ΄λ‘ μ μΌλ‘ λ체 λ μ§μ€νΈλ¦¬λ₯Ό μ¬μ©νλ©΄ μμμ μ΄λ¦μ λ°κΎΈκ±°λ λ³κ²½ν μ μμ΅λλ€. λλ μ΄κ²μ΄ cargo
μ μνκ³μ λ§μ κ°μ μ κΉ¨λ¨λ¦΄ κ²μ΄λΌκ³ μκ°ν©λλ€. λ°λΌμ μ΄ κ²μ¬λ λͺ¨λ λ μ§μ€νΈλ¦¬μ μ μ©λμ΄μΌ νμ§λ§ μνλ κ²½μ° crates.ioμλ§ μ μ©ν μ μλ€κ³ μκ°ν©λλ€. (μ¬μ©μμκ² μ€ν
μ΄μ§μ μ§μνκΈ°λ‘ κ²°μ νλ€λ©΄ κΈ°λ³Έ crates.io λ μ§μ€νΈλ¦¬μ λν΄μλ§ μνλμ΄μΌ ν©λλ€.)
μ΄μ λν λμμ crates.ioκ° κΈ°λ³Έμ μΌλ‘ μ ν¬λ μ΄νΈλ₯Ό "ν μ€νΈ μ€ν"νμ¬ κ²μνκ³ ν¬λ μ΄νΈ κ²μμ/μμ μμκ² μ΄λ©μΌμ λ³΄λ΄ κ²μν κ²μμ νμΈνλ κ²μ λλ€. ν¬λ μ΄νΈλ μμΈμ μΆκ°λμ§ μμΌλ©° μΉ UI(λλ API)λ₯Ό ν΅ν΄ κ²μκ° νμΈλ λκΉμ§ λ€μ΄λ‘λ λ±μ μ¬μ©ν μ μμ΅λλ€. μ΄λ μ¬λ¬ ν¨μΉλ₯Ό μ°μμ μΌλ‘ λΉ λ₯΄κ² κ²μνμ§ μκ³ README λλ κΈ°ν μ μ¬ν λ©νλ°μ΄ν°μ λν λ³κ²½ μ¬νμ ν μ€νΈνλ κ²½μ°μλ μ μ©ν μ μμ΅λλ€.
νμ§λ§ ꡬνμ΄ ν¨μ¬ λ μ΄λ €μ 보μ΄κΈ° λλ¬Έμ μ΄ λ¬Έμ μ μ μμ΄ μ²« λ²μ§Έ λ¨κ³κ° λ μ μμ΅λλ€.
μμ±μμκ² μΈλΆ μ¬νμ νμΈνλλ‘ μμ²νλ κ² μΈμλ Cargoλ μΌλ°μ μΈ μ€μμ λν κ²μ¬λ₯Ό ꡬννκ³ μ΄μ λν΄ κ²½κ³ ν μ μμ΅λλ€.
κ²½κ³ : ν¬λ μ΄νΈ μ΄λ¦μ λλ¬Έμκ° ν¬ν¨λμ΄ μμ΅λλ€. Rust ν¬λ μ΄νΈ μ΄λ¦μ λμλ¬Έμλ₯Ό ꡬλΆνμ§ μμΌλ©° λλΆλΆμ ν¬λ μ΄νΈλ μΌκ΄μ±μ μν΄ λͺ¨λ μλ¬Έμ μ΄λ¦μ μ¬μ©ν©λλ€.
κ²½κ³ : ν¬λ μ΄νΈ μ΄λ¦μ νμ΄νμ΄ ν¬ν¨λμ΄ μμ΅λλ€. μ½λμμ ν¬λ μ΄νΈλ₯Ό μ¬μ©ν λ νμ΄νμ λ°μ€λ‘ λ³νλ©λλ€. ν¬λ μ΄νΈ μ΄λ¦μ νμ΄νμ μ¬μ©νλ©΄ ν¬λ μ΄νΈκ° μ½λμμμ crates.ioμμ λ€λ₯Έ μ΄λ¦μ κ°κ² λ©λλ€.
λ±.
"ν μ€νΈ μ€ν" κ²μ
μ΄κ²μ λμκ² μμΌλ©΄ μ’μ κ²μΈ ν₯λ―Έλ‘μ΄ κΈ°λ₯ μμ² rust-lang/crates.io#1515λ₯Ό μκ°λκ² ν©λλ€.
ν¬λ μ΄νΈλ μμΈμ μΆκ°λμ§ μμΌλ©° μΉ UI(λλ API)λ₯Ό ν΅ν΄ κ²μκ° νμΈλ λκΉμ§ λ€μ΄λ‘λ λ±μ μ¬μ©ν μ μμ΅λλ€.
μ΄μ λν λ¬Έμ κ° μλ€κ³ μκ°νμ§λ§ μ΄λμ κ° crates.ioκ° ν¬λ μ΄νΈ μ΄λ¦μ μκ° μ ν μμ½μ νμ©ν μ μλ€λ μ μμ 보μμ΅λλ€(λͺ κ°μλ§λ€ μλμΌλ‘ μλ‘ κ³ μΉ μ μμ). μ΄λ¦μ μμ½ν μ μλ μΈνλΌκ° μλ€λ©΄ κ·Έ μμ 첫 λ²μ§Έ κ²μλ₯Ό μν νΉμ μΌμ΄μ€λ₯Ό λ§λ€ μ μμ΅λλ€. μμ½λ μμκ° κ²μμ νμλκ³ ν΄λΉ μμκ° μμ½λμκ±°λ 보λ₯ μ€μ΄λΌλ μΌμ’ μ λλ© νμ΄μ§κ° νμλκΈ°λ₯Ό μν©λλ€. (κ·Έλ¦¬κ³ μμ½λ μ΄λ¦μ 첫 λ²μ§Έ λ²μ μ΄ λμ¬ λκΉμ§ νΈνλλ λ°©μμΌλ‘ μ‘°μ λ μ μμ΅λλ€.
μ΄λ μ¬λ¬ ν¨μΉλ₯Ό μ°μμ μΌλ‘ λΉ λ₯΄κ² κ²μνμ§ μκ³ README λλ κΈ°ν μ μ¬ν λ©νλ°μ΄ν°μ λν λ³κ²½ μ¬νμ ν μ€νΈνλ κ²½μ°μλ μ μ©ν μ μμ΅λλ€.
λ΄ λΉλλ μ 릴리μ€μ READMEμ λ¬Έμ κ° μλ κ²μ λ³΄κ³ λͺ λΆ νμ 릴리μ€κ° λ§λ€μ΄μ§κΈ° λλ¬Έμ μ΄ μμ΄λμ΄κ° μ λ§ μ’μ΅λλ€. μμ --dry-run[=verify]
λ° μ²« λ²μ§Έ κ²μ μ κ·Ό λ°©μμ λ°μ΄λμ΅λλ€. μ¬μ©μλ --dry-run=pending
λ‘ κ²μν μ μμΌλ©° λ²μ μ 보λ₯ μ€μΌλ‘ νμλμ§λ§( yanked
μ μ μ¬) ν¬λ μ΄νΈ μμ μλ§ λ³΄λ₯ μ€μΈ λ²μ μ λ³Ό μ μμ΅λλ€. νΉν READMEμ κ²½μ° κ°μ₯ ν° λ¬Έμ λ S3μμ μ 곡λ λ μΊμλ μ μλ€λ κ²μ
λλ€(νμ¬ 1μΌ λμ). λ°λΌμ 보λ₯ μ€μΈ λ²μ μ λν΄ νΉλ³ν κ²½μ°κ° νμν μ μμ΅λλ€.
μ΄λ¬ν κΈ°λ₯μ΄ ν¨κ» μ μλνκ³ μ μ§μ μΈ λ³κ²½μ μν μ’μ κ²½λ‘λ₯Ό μ 곡ν μ μλ€κ³ μκ°ν©λλ€. λν νμ¬λ‘μλ 첫 λ²μ§Έ κ²μ μλ² μΈ‘μ νΉμ μΌμ΄μ€μ λ§μ μμ μ΄ νμνλ€λ λ° λμν©λλ€. μ΄ λͺ¨λ μ΅μ μ λ μμΈν μ΄ν΄λ³΄κ³ μΆμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄μ λν λμμ crates.ioκ° κΈ°λ³Έμ μΌλ‘ μ ν¬λ μ΄νΈλ₯Ό "ν μ€νΈ μ€ν"νμ¬ κ²μνκ³ ν¬λ μ΄νΈ κ²μμ/μμ μμκ² μ΄λ©μΌμ λ³΄λ΄ κ²μν κ²μμ νμΈνλ κ²μ λλ€. ν¬λ μ΄νΈλ μμΈμ μΆκ°λμ§ μμΌλ©° μΉ UI(λλ API)λ₯Ό ν΅ν΄ κ²μκ° νμΈλ λκΉμ§ λ€μ΄λ‘λ λ±μ μ¬μ©ν μ μμ΅λλ€. μ΄λ μ¬λ¬ ν¨μΉλ₯Ό μ°μμ μΌλ‘ λΉ λ₯΄κ² κ²μνμ§ μκ³ README λλ κΈ°ν μ μ¬ν λ©νλ°μ΄ν°μ λν λ³κ²½ μ¬νμ ν μ€νΈνλ κ²½μ°μλ μ μ©ν μ μμ΅λλ€.
νμ§λ§ ꡬνμ΄ ν¨μ¬ λ μ΄λ €μ 보μ΄κΈ° λλ¬Έμ μ΄ λ¬Έμ μ μ μμ΄ μ²« λ²μ§Έ λ¨κ³κ° λ μ μμ΅λλ€.