การเปลี่ยนแปลงที่จะเกิดขึ้นสองประการใน TinyTeX และ tinytex

logo.png

เมื่อเร็ว ๆ นี้ฉันได้รับอีเมลจาก CRAN ซึ่งฉันได้เรียนรู้เกี่ยวกับอุบัติเหตุที่เกี่ยวข้องกับ TinyTeX CRAN ขอให้ฉันทำการเปลี่ยนแปลงเพื่อหลีกเลี่ยงอุบัติเหตุดังกล่าวในอนาคต และฉันต้องการที่จะกล่าวถึงการเปลี่ยนแปลงนี้และประกาศการเปลี่ยนแปลงที่จะเกิดขึ้นอีกในโพสต์นี้

ป้องกันการติดตั้ง TinyTeX . โดยไม่ได้ตั้งใจ

เพื่อความสะดวก ฟังก์ชัน R tinytex::install_tinytex() จะไม่ขอคำยืนยันจากผู้ใช้ก่อนทำการติดตั้ง TinyTeX ฉันคิดว่าผู้ใช้รู้ว่าพวกเขากำลังทำอะไรเมื่อเรียกใช้ฟังก์ชันนี้ เช่นเดียวกับการเรียก install.packages() จะติดตั้งแพ็คเกจ R โดยไม่มีการยืนยัน ฉันรู้ว่านี่อาจเป็นปัญหาได้ตั้งแต่เริ่มต้น เนื่องจากผู้ใช้อาจเรียกใช้ฟังก์ชันนี้โดยไม่ได้ตั้งใจ และไม่มีวิธีตรงไปตรงมาในการป้องกันการติดตั้ง

ฉันมีความสุขกับความสงบสุขมานานกว่าสี่ปี… จนกระทั่งมีคนเรียกฟังก์ชันนี้ที่ไหนสักแห่งในแพ็คเกจของเขา/เธอ (อาจคงเป็นเพราะว่าสิ่งนี้ขัดกับนโยบาย CRAN อย่างแน่นอน) ซึ่งติดตั้ง TinyTeX บนเครื่องของ CRAN เรื่องราวสยองขวัญอะไรเช่นนี้!

ในเวอร์ชันถัดไปของแพ็คเกจ R tinytex นั้น install_tinytex() จะป้องกันการติดตั้งอัตโนมัติในสองกรณีต่อไปนี้:

  1. ตัวแปรสภาพแวดล้อม TINYTEX_PREVENT_INSTALL ถูกตั้งค่า true วิธีนี้ทำให้ผู้ดูแลระบบสามารถปิดใช้งานการติดตั้งได้ทั้งหมด และ install_tinytex() จะแสดงข้อผิดพลาด
  2. ตรวจพบการกระจาย LaTeX อื่น ในกรณีนี้ หากเซสชัน R เป็น interactive() ผู้ใช้จะถูกถามว่าต้องการติดตั้งต่อไปหรือไม่ หากเซสชัน R ไม่โต้ตอบ install_tinytex() จะแสดงข้อผิดพลาดโดยแจ้งให้ผู้ใช้ทราบว่าหากพวกเขาแน่ใจว่าต้องการติดตั้ง TinyTeX อยู่แล้ว ก็สามารถใช้ tinytex::install_tinytex(force = TRUE) ได้

ฉันเดาว่าการเปลี่ยนแปลงนี้ไม่ควรส่งผลกระทบต่อคนจำนวนมากเกินไป แต่จะมีผลกับผู้ใช้ที่มีอยู่ซึ่งติดตั้ง TinyTeX ผ่าน install_tinytex() ในเซสชัน R ที่ไม่โต้ตอบ (เช่น ผ่านคำสั่ง Rscript -e 'tinytex::install_tinytex() ) เมื่อมี มีการกระจาย LaTeX ในระบบอยู่แล้ว คุณจะต้องใช้ force = TRUE นั่นอาจเป็นความไม่สะดวกเล็กน้อย แต่ข้อดีคือควรมีอุบัติเหตุน้อยลงเหมือนที่กล่าวไว้ข้างต้น

หากคุณต้องการตรวจสอบว่าการเปลี่ยนแปลงนี้ส่งผลต่อคุณหรือไม่ คุณสามารถติดตั้ง tinytex เวอร์ชัน dev ได้เลย:

 remotes::install_github('yihui/tinytex')

และดูว่าเกิดอะไรขึ้นกับ tinytex::install_tinytex()

หากคุณมีความคิดเห็นเกี่ยวกับการเปลี่ยนแปลงนี้ โปรดแจ้งให้เราทราบ ปัจจุบัน ฉันวางแผนที่จะส่งเวอร์ชันใหม่ให้ CRAN ในสัปดาห์หน้า

การโยกย้ายไปยัง rstudio org บน Github

เราวางแผนที่จะย้ายที่เก็บ Github สองแห่ง https://github.com/yihui/tinytex และ https://github.com/yihui/tinytex-releases ไปยังองค์กร rstudio ในสัปดาห์หน้า (16 พฤษภาคม 2022) นั่นคือพวกเขาจะกลายเป็น https://github.com/rstudio/tinytex และ https://github.com/rstudio/tinytex-releases ตามลำดับ เราหวังว่าจะย้ายที่เก็บข้อมูลทั้งสองจากบัญชีส่วนตัวของฉันไปยัง rstudio เพื่อให้ปลอดภัยยิ่งขึ้นในการสร้างและติดตั้ง TinyTeX และยังง่ายต่อการจัดการการสนับสนุนในอนาคตสำหรับโครงการนี้

ในทางทฤษฎี สิ่งนี้ไม่ควรส่งผลกระทบกับใคร เพราะ Github จะเปลี่ยนเส้นทางลิงก์เก่าไปยังลิงก์ใหม่โดยอัตโนมัติ รวมถึงลิงก์ไปยังไบนารี TinyTeX ที่คอมไพล์ล่วงหน้าใน Github Releases ยังไงก็ขอแจ้งล่วงหน้านะครับ จะได้เตรียมตัวได้ดีขึ้น หากคุณประสบปัญหาใดๆ ในการติดตั้ง TinyTeX ในสัปดาห์หน้า โปรด ยื่นรายงาน ให้เราทราบทันที ขอบคุณ!

โลโก้ TinyTeX