cargo-shear: เครื่องมือ CLI สำหรับตัดการพึ่งพา Rust ที่ไม่ได้ใช้งาน
cargo-shear โดย Boshen มุ่งเป้าไปที่การขยายความขึ้นอยู่ในโครงการ Rust โดยการสแกนโค้ดและเอกสารเพื่อระบุรายการ crate ที่ไม่ได้ใช้ในการคอมไพล์ เครื่องมือนี้ทำงานข้ามพื้นที่ทำงานและสามารถลบรายการที่ไม่ได้ใช้โดยอัตโนมัติเมื่อได้รับการอนุมัติ ขณะเน้นการทำงานที่รวดเร็วและการออกแบบคำสั่งที่ไม่ต้องการการกำหนดค่าซึ่งรวมเข้ากับเครื่องมือ Cargo มันมีเป้าหมายที่วิศวกร Rust ผู้ดูแลซอฟต์แวร์โอเพนซอร์ส และทีม DevOps ที่ต้องการเอกสารที่เบาลงและรอบการสร้างที่สั้นลง。
การตรวจจับการพึ่งพาที่ไม่ได้ใช้งานเชื่อถือได้แค่ไหน?
เครื่องมือวิเคราะห์แหล่งที่มาของโปรเจกต์และเปรียบเทียบการประกาศกับการใช้งานจริง ซึ่งมุ่งเน้นการเสนอการลบไปยังรายการที่ไม่ได้ถูกอ้างอิงโดยโค้ด การตรวจจับเป็นอัตโนมัติ และออกแบบมาเพื่อมุ่งเป้าไปที่การบวมของ manifest มากกว่าพฤติกรรมในระหว่างการทำงาน ผู้ตรวจสอบสังเกตว่ากระบวนการทำงานนำเสนอผู้สมัครสำหรับการลบแทนที่จะบังคับให้มีการเปลี่ยนแปลงโดยไม่ต้องตรวจสอบ ซึ่งช่วยหลีกเลี่ยงการลบที่ไม่ตั้งใจของ crates ที่ใช้ตามเงื่อนไข
ผลกระทบต่อระบบในระหว่างการสแกนและการทำงาน CI เป็นอย่างไร?
การสแกนเสร็จสิ้นอย่างรวดเร็วขอบคุณประสิทธิภาพของ Rust ที่เป็นพื้นฐานและการดำเนินการที่เน้นความเร็วในการดำเนินการ ซึ่งทำให้เครื่องมือมีความเหมาะสมสำหรับการตรวจสอบในท้องถิ่นและท่อการรวมอย่างต่อเนื่อง เครื่องมือเป็นข้ามแพลตฟอร์มและต้องการ Rust toolchain และ Cargo เพื่อทำงาน; แพลตฟอร์มที่รองรับรวมถึง:
การออกแบบที่มีการกำหนดค่าต่ำช่วยลดความยุ่งยากในการตั้งค่าสำหรับการทำงานอัตโนมัติในการสร้างปลอดภัยหรือไม่ที่จะใช้การเปลี่ยนแปลง manifest อัตโนมัติในโปรเจกต์?
เครื่องมือสามารถแก้ไข Cargo.toml เมื่อเปิดใช้งานตัวเลือกการแก้ไขอัตโนมัติ ดังนั้นการปฏิบัติด้านความปลอดภัยจึงมีความสำคัญ กระบวนการทำงานที่แนะนำ คือการทำการสแกนแบบแห้งก่อนและตรวจสอบการลบที่เสนอ ก่อนที่จะอนุญาตให้มีการแก้ไขอัตโนมัติ ซึ่งเป็นการป้องกันที่ผู้พัฒนาชี้แจงไว้อย่างชัดเจนเพื่อป้องกันการเปลี่ยนแปลง manifest ที่ไม่ตั้งใจในฐานข้อมูลโค้ดผลิตภัณฑ์
ใครสามารถใช้งานได้โดยไม่ต้องมีการเรียนรู้ที่สูง?
ส่วนต่อประสานบรรทัดคำสั่งและแนวทางที่ไม่มีการกำหนดค่าตรงกับนักพัฒนาที่สะดวกสบายกับเครื่องมือในเทอร์มินัลและกระบวนการทำงานของ Cargo ผู้ดูแลระบบของพื้นที่ทำงานขนาดใหญ่ได้รับประโยชน์จากการวิเคราะห์แบบกลุ่ม ในขณะที่วิศวกร DevOps สามารถรวมการสแกนในท่อได้ เครื่องมือเหมาะสำหรับผู้ใช้ที่ยอมรับการทำงานของ CLI เป็นส่วนต่อประสานหลักแทนที่จะเป็นทางเลือกกราฟิก
ตัวเลือกที่ใช้งานได้จริงสำหรับทีม Rust ที่เน้น CLI โดยมีการตรวจสอบก่อน
เครื่องมือนี้เป็นตัวเลือกที่มีเหตุผลสำหรับวิศวกร Rust และผู้ดูแลระบบที่ต้องการลดขนาดของ manifest อย่างรวดเร็วในขณะที่ยังคงควบคุมการเปลี่ยนแปลง เนื่องจากมันรวมเข้ากับเครื่องมือ Cargo และทำงานบนแพลตฟอร์มเดสก์ท็อปปัจจุบัน ข้อแลกเปลี่ยนหนึ่งคือมันสมมติว่ามีการทำงานแบบ command-line และเครื่องมือ Rust ในเครื่อง ดังนั้นทีมที่ชอบเครื่องมือกราฟิกหรือขาดการตั้งค่า CI มาตรฐานอาจต้องมีการปรับเปลี่ยนเพิ่มเติม แนะนำให้ใช้.
ข้อดี
- การดำเนินการอย่างรวดเร็วโดยใช้ประสิทธิภาพของ Rust แบบเนทีฟ
- จัดการ Rust workspaces สำหรับการวิเคราะห์หลายแพ็คเกจ
- มีโหมดการแก้ไขอัตโนมัติเพื่ออัปเดต Cargo.toml
ข้อเสีย
- ต้องมี Rust toolchain และ Cargo ที่ติดตั้งแล้ว
- อินเทอร์เฟซเฉพาะบรรทัดคำสั่งอาจทำให้ผู้ใช้ที่ชอบ GUI รู้สึกไม่สะดวก
- การแก้ไขอัตโนมัติควรได้รับการตรวจสอบก่อนที่จะนำไปใช้