Lawrence  Lesch

Lawrence Lesch

1668082020

Rushstack: Monorepo for tools Developed By The Rush Stack Community

rushstack

The home for various projects maintained by the Rush Stack community, whose mission is to develop reusable tooling for large scale TypeScript monorepos.

Documentation Links

  • What is Rush Stack? - learn about the mission behind these projects
  • API reference - browse API documentation for NPM packages
  • Zulip chat room - chat with the Rush Stack developers
  • Rush - a build orchestrator for large scale TypeScript monorepos
  • API Extractor - create .d.ts rollups and track your TypeScript API signatures
  • API Documenter - use TSDoc comments to publish an API documentation website

Related Repos

These GitHub repositories provide supplementary resources for Rush Stack:

  • rushstack-samples - a monoprepo with sample projects that illustrate various project setups, including how to use Heft with other popular JavaScript frameworks
  • rush-example - a minimal Rush repo that demonstrates the fundamentals of Rush without relying on any other Rush Stack tooling
  • rushstack-legacy - older projects that are still maintained but no longer actively developed

Published Packages

FolderVersionChangelogPackage
/apps/api-documenternpm versionchangelog@microsoft/api-documenter
/apps/api-extractornpm versionchangelog@microsoft/api-extractor
/apps/heftnpm versionchangelog@rushstack/heft
/apps/lockfile-explorernpm versionchangelog@rushstack/lockfile-explorer
/apps/rundownnpm versionchangelog@rushstack/rundown
/apps/rushnpm versionchangelog@microsoft/rush
/eslint/eslint-confignpm versionchangelog@rushstack/eslint-config
/eslint/eslint-patchnpm versionchangelog@rushstack/eslint-patch
/eslint/eslint-pluginnpm versionchangelog@rushstack/eslint-plugin
/eslint/eslint-plugin-packletsnpm versionchangelog@rushstack/eslint-plugin-packlets
/eslint/eslint-plugin-securitynpm versionchangelog@rushstack/eslint-plugin-security
/heft-plugins/heft-dev-cert-pluginnpm versionchangelog@rushstack/heft-dev-cert-plugin
/heft-plugins/heft-jest-pluginnpm versionchangelog@rushstack/heft-jest-plugin
/heft-plugins/heft-sass-pluginnpm versionchangelog@rushstack/heft-sass-plugin
/heft-plugins/heft-serverless-stack-pluginnpm versionchangelog@rushstack/heft-serverless-stack-plugin
/heft-plugins/heft-storybook-pluginnpm versionchangelog@rushstack/heft-storybook-plugin
/heft-plugins/heft-webpack4-pluginnpm versionchangelog@rushstack/heft-webpack4-plugin
/heft-plugins/heft-webpack5-pluginnpm versionchangelog@rushstack/heft-webpack5-plugin
/libraries/api-extractor-modelnpm versionchangelog@microsoft/api-extractor-model
/libraries/debug-certificate-managernpm versionchangelog@rushstack/debug-certificate-manager
/libraries/heft-config-filenpm versionchangelog@rushstack/heft-config-file
/libraries/load-themed-stylesnpm versionchangelog@microsoft/load-themed-styles
/libraries/localization-utilitiesnpm versionchangelog@rushstack/localization-utilities
/libraries/module-minifiernpm versionchangelog@rushstack/module-minifier
/libraries/node-core-librarynpm versionchangelog@rushstack/node-core-library
/libraries/package-deps-hashnpm versionchangelog@rushstack/package-deps-hash
/libraries/rig-packagenpm versionchangelog@rushstack/rig-package
/libraries/rush-libnpm version @microsoft/rush-lib
/libraries/rush-sdknpm version @rushstack/rush-sdk
/libraries/stream-collatornpm versionchangelog@rushstack/stream-collator
/libraries/terminalnpm versionchangelog@rushstack/terminal
/libraries/tree-patternnpm versionchangelog@rushstack/tree-pattern
/libraries/ts-command-linenpm versionchangelog@rushstack/ts-command-line
/libraries/typings-generatornpm versionchangelog@rushstack/typings-generator
/libraries/worker-poolnpm versionchangelog@rushstack/worker-pool
/rigs/heft-node-rignpm versionchangelog@rushstack/heft-node-rig
/rigs/heft-web-rignpm versionchangelog@rushstack/heft-web-rig
/rush-plugins/rush-amazon-s3-build-cache-pluginnpm version @rushstack/rush-amazon-s3-build-cache-plugin
/rush-plugins/rush-azure-storage-build-cache-pluginnpm version @rushstack/rush-azure-storage-build-cache-plugin
/rush-plugins/rush-serve-pluginnpm versionchangelog@rushstack/rush-serve-plugin
/webpack/hashed-folder-copy-pluginnpm versionchangelog@rushstack/hashed-folder-copy-plugin
/webpack/loader-load-themed-stylesnpm versionchangelog@microsoft/loader-load-themed-styles
/webpack/loader-raw-scriptnpm versionchangelog@rushstack/loader-raw-script
/webpack/preserve-dynamic-require-pluginnpm versionchangelog@rushstack/webpack-preserve-dynamic-require-plugin
/webpack/set-webpack-public-path-pluginnpm versionchangelog@rushstack/set-webpack-public-path-plugin
/webpack/webpack-plugin-utilitiesnpm versionchangelog@rushstack/webpack-plugin-utilities
/webpack/webpack4-localization-pluginnpm versionchangelog@rushstack/webpack4-localization-plugin
/webpack/webpack4-module-minifier-pluginnpm versionchangelog@rushstack/webpack4-module-minifier-plugin
/webpack/webpack5-localization-pluginnpm versionchangelog@rushstack/webpack5-localization-plugin
/webpack/webpack5-module-minifier-pluginnpm versionchangelog@rushstack/webpack5-module-minifier-plugin

Unpublished Local Projects

FolderDescription
/apps/lockfile-explorer-webRush Lockfile Explorer: helper project for building the React web application component
/build-tests-samples/heft-node-basic-tutorial(Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-node-jest-tutorial(Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-node-rig-tutorial(Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-serverless-stack-tutorial(Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-storybook-react-tutorial(Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-storybook-react-tutorial-storykitStorybook build dependencies for heft-storybook-react-tutorial
/build-tests-samples/heft-web-rig-app-tutorial(Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-web-rig-library-tutorial(Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-webpack-basic-tutorial(Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/packlets-tutorial(Copy of sample project) Building this project is a regression test for @rushstack/eslint-plugin-packlets
/build-tests/api-documenter-scenariosBuilding this project is a regression test for api-documenter
/build-tests/api-documenter-testBuilding this project is a regression test for api-documenter
/build-tests/api-extractor-lib1-testBuilding this project is a regression test for api-extractor
/build-tests/api-extractor-lib2-testBuilding this project is a regression test for api-extractor
/build-tests/api-extractor-lib3-testBuilding this project is a regression test for api-extractor
/build-tests/api-extractor-scenariosBuilding this project is a regression test for api-extractor
/build-tests/api-extractor-test-01Building this project is a regression test for api-extractor
/build-tests/api-extractor-test-02Building this project is a regression test for api-extractor
/build-tests/api-extractor-test-03Building this project is a regression test for api-extractor
/build-tests/api-extractor-test-04Building this project is a regression test for api-extractor
/build-tests/eslint-7-testThis project contains a build test to validate ESLint 7 compatibility with the latest version of @rushstack/eslint-config (and by extension, the ESLint plugin)
/build-tests/hashed-folder-copy-plugin-webpack4-testBuilding this project exercises @rushstack/hashed-folder-copy-plugin with Webpack 4.
/build-tests/hashed-folder-copy-plugin-webpack5-testBuilding this project exercises @rushstack/hashed-folder-copy-plugin with Webpack 5. NOTE - THIS TEST IS CURRENTLY EXPECTED TO BE BROKEN
/build-tests/heft-action-pluginThis project contains a Heft plugin that adds a custom action
/build-tests/heft-action-plugin-testThis project exercises a custom Heft action
/build-tests/heft-copy-files-testBuilding this project tests copying files with Heft
/build-tests/heft-example-plugin-01This is an example heft plugin that exposes hooks for other plugins
/build-tests/heft-example-plugin-02This is an example heft plugin that taps the hooks exposed from heft-example-plugin-01
/build-tests/heft-fastify-testThis project tests Heft support for the Fastify framework for Node.js services
/build-tests/heft-jest-reporters-testThis project illustrates configuring Jest reporters in a minimal Heft project
/build-tests/heft-minimal-rig-testThis is a minimal rig package that is imported by the 'heft-minimal-rig-usage-test' project
/build-tests/heft-minimal-rig-usage-testA test project for Heft that resolves its compiler from the 'heft-minimal-rig-test' package
/build-tests/heft-node-everything-esm-module-testBuilding this project tests every task and config file for Heft when targeting the Node.js runtime when configured to use ESM module support
/build-tests/heft-node-everything-testBuilding this project tests every task and config file for Heft when targeting the Node.js runtime
/build-tests/heft-parameter-pluginThis project contains a Heft plugin that adds a custom parameter to built-in actions
/build-tests/heft-parameter-plugin-testThis project exercises a built-in Heft action with a custom parameter
/build-tests/heft-sass-testThis project illustrates a minimal tutorial Heft project targeting the web browser runtime
/build-tests/heft-typescript-composite-testBuilding this project tests behavior of Heft when the tsconfig.json file uses project references.
/build-tests/heft-web-rig-library-testA test project for Heft that exercises the '@rushstack/heft-web-rig' package
/build-tests/heft-webpack4-everything-testBuilding this project tests every task and config file for Heft when targeting the web browser runtime using Webpack 4
/build-tests/heft-webpack5-everything-testBuilding this project tests every task and config file for Heft when targeting the web browser runtime using Webpack 5
/build-tests/install-test-workspace 
/build-tests/localization-plugin-test-01Building this project exercises @microsoft/localization-plugin. This tests that the plugin works correctly without any localized resources.
/build-tests/localization-plugin-test-02Building this project exercises @microsoft/localization-plugin. This tests that the loader works correctly with the exportAsDefault option unset.
/build-tests/localization-plugin-test-03Building this project exercises @microsoft/localization-plugin. This tests that the plugin works correctly with the exportAsDefault option set to true.
/build-tests/rush-amazon-s3-build-cache-plugin-integration-testTests connecting to an amazon S3 endpoint
/build-tests/rush-project-change-analyzer-testThis is an example project that uses rush-lib's ProjectChangeAnalyzer to
/build-tests/set-webpack-public-path-plugin-webpack4-testBuilding this project tests the set-webpack-public-path-plugin using Webpack 4
/build-tests/ts-command-line-testBuilding this project is a regression test for ts-command-line
/libraries/rushellExecute shell commands using a consistent syntax on every platform
/repo-scripts/doc-plugin-rush-stackAPI Documenter plugin used with the rushstack.io website
/repo-scripts/generate-api-docsUsed to generate API docs for the rushstack.io website
/repo-scripts/repo-toolboxUsed to execute various operations specific to this repo
/rush-plugins/rush-litewatch-pluginAn experimental alternative approach for multi-project watch mode

Contributor Notice

This repo welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This repo has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Download Details:

Author: Microsoft
Source Code: https://github.com/microsoft/rushstack 

#typescript #nodejs #api #toolchain #build 

Rushstack: Monorepo for tools Developed By The Rush Stack Community
Hans  Marvin

Hans Marvin

1659640140

How to Manage Your Rust Toolchain using Rustup

Rustup can be used to install Rust and keep it updated. It also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling.

The Rust programming language is becoming increasingly popular these days, used and loved by hobbyists and corporations alike. One of the reasons for its popularity is the amazing tooling that Rust provides making it a joy to use for developers. Rustup is the official tool used to manage Rust tooling. Not only can it be used to install Rust and keep it updated, it also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling. This article will introduce you to rustup and some common commands to use.

In this brief guide, We will share How to Manage Your Rust Toolchain using Rustup

See more at: https://opensource.com/article/22/6/rust-toolchain-rustup

#rust #rustup #toolchain

How to Manage Your Rust Toolchain using Rustup
田辺  亮介

田辺 亮介

1659618437

如何使用 Rustup 管理你的 Rust 工具鏈

Rustup 可用於安裝 Rust 並保持更新。它還允許您在穩定版、測試版和夜間 Rust 編譯器和工具之間無縫切換。

如今,Rust 編程語言變得越來越流行,受到愛好者和公司的喜愛。它受歡迎的原因之一是 Rust 提供的令人驚嘆的工具使其成為開發人員使用的樂趣。Rustup是用於管理 Rust 工具的官方工具。它不僅可以用來安裝 Rust 並保持更新,它還允許您在穩定、beta 和 nightly Rust 編譯器和工具之間無縫切換。本文將向您介紹 rustup 和一些常用命令。

默認 Rust 安裝方法

如果你想在 Linux 上安裝 Rust,你可以使用你的包管理器。在 Fedora 或 CentOS Stream 上,您可以使用它,例如:

$ sudo dnf install rust cargo

這提供了一個穩定版本的 Rust 工具鏈,如果你是 Rust 的初學者並想嘗試編譯和運行簡單的程序,它會非常有用。但是,由於 Rust 是一種新的編程語言,它變化很快,並且經常添加許多新功能。這些功能是 Rust 工具鏈的夜間和更高測試版的一部分。要試用這些功能,您需要安裝這些較新版本的工具鏈,而不會影響系統上的穩定版本。不幸的是,您的發行版的包管理器在這裡無法為您提供幫助。

使用 rustup 安裝 Rust 工具鏈

要解決上述問題,您可以下載安裝腳本:

$ curl --proto '=https' --tlsv1.2 \
-sSf https://sh.rustup.rs > sh.rustup.rs

檢查它,然後運行它。它不需要 root 權限,並根據您的本地用戶權限安裝 Rust:

$ file sh.rustup.rs
sh.rustup.rs: POSIX shell script, ASCII text executable
$ less sh.rustup.rs
$ bash sh.rustup.rs

出現提示時選擇選項 1:

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
> 1

安裝後,您必須獲取環境變量以確保該rustup命令立即可供您使用:

$ source $HOME/.cargo/env

驗證是否安裝了 Rust 編譯器 (rustc) 和 Rust 包管理器 (cargo):

$ rustc --version
$ cargo --version

查看已安裝和活動的工具鏈

您可以使用以下命令查看已安裝的不同工具鏈以及哪個工具鍊是活動的:

$ rustup show

在工具鏈之間切換

您可以查看默認工具鏈並根據需要進行更改。如果您目前使用的是穩定的工具鏈,並希望嘗試在 nightly 版本中提供的新引入功能,您可以輕鬆切換到 nightly 工具鏈:

$ rustup default
$ rustup default nightly

要查看 Rust 的編譯器和包管理器的確切路徑:

$ rustup which rustc
$ rustup which cargo

檢查和更新工具鏈

要檢查是否有新的 Rust 工具鏈可用:

$ rustup check

假設一個新版本的 Rust 發布了,其中包含一些有趣的特性,並且您想要獲取最新版本的 Rust。您可以使用以下update子命令執行此操作:

$ rustup update

幫助和文檔

以上命令對於日常使用來說綽綽有餘。儘管如此,rustup 有多種命令,您可以參考幫助部分了解更多詳細信息:

$ rustup --help

Rustup 在 GitHub 上有一整本書,您可以將其用作參考。所有 Rust 文檔都安裝在您的本地系統上,不需要您連接到 Internet。您可以訪問包括書籍、標準庫等在內的本地文檔:

$ rustup doc
$ rustup doc --book
$ rustup doc --std
$ rustup doc --cargo

Rust 是一種正在積極開發中的令人興奮的語言。如果您對編程的發展方向感興趣,請跟上 Rust!

鏈接:https ://opensource.com/article/22/6/rust-toolchain-rustup

#rust #rustup #toolchain

如何使用 Rustup 管理你的 Rust 工具鏈
Thierry  Perret

Thierry Perret

1659607620

Comment Gérer Votre Chaîne D'outils Rust à L'aide De Rustup

Rustup peut être utilisé pour installer Rust et le maintenir à jour. Il vous permet également de basculer de manière transparente entre les compilateurs et outils Rust stables, bêta et nocturnes.

Le langage de programmation Rust devient de plus en plus populaire ces jours-ci, utilisé et apprécié par les amateurs et les entreprises. L'une des raisons de sa popularité est l'incroyable outil fourni par Rust, ce qui en fait un plaisir à utiliser pour les développeurs. Rustup est l'outil officiel utilisé pour gérer l'outillage Rust. Non seulement il peut être utilisé pour installer Rust et le maintenir à jour, mais il vous permet également de basculer de manière transparente entre les compilateurs et outils Rust stables, bêta et nocturnes. Cet article vous présentera Rustup et quelques commandes courantes à utiliser.

Méthode d'installation de Rust par défaut

Si vous souhaitez installer Rust sur Linux, vous pouvez utiliser votre gestionnaire de packages. Sur Fedora ou CentOS Stream, vous pouvez utiliser ceci, par exemple :

$ sudo dnf install rust cargo

Cela fournit une version stable de la chaîne d'outils Rust et fonctionne très bien si vous êtes un débutant dans Rust et que vous souhaitez essayer de compiler et d'exécuter des programmes simples. Cependant, comme Rust est un nouveau langage de programmation, il change rapidement et de nombreuses nouvelles fonctionnalités sont fréquemment ajoutées. Ces fonctionnalités font partie de la version bêta nocturne et ultérieure de la chaîne d'outils Rust. Pour essayer ces fonctionnalités, vous devez installer ces nouvelles versions de la chaîne d'outils, sans affecter la version stable sur le système. Malheureusement, le gestionnaire de paquets de votre distribution ne peut pas vous aider ici.

Installation de la chaîne d'outils Rust à l'aide de rustup

Pour contourner les problèmes ci-dessus, vous pouvez télécharger un script d'installation :

$ curl --proto '=https' --tlsv1.2 \
-sSf https://sh.rustup.rs > sh.rustup.rs

Inspectez-le, puis exécutez-le. Il ne nécessite pas de privilèges root et installe Rust en fonction de vos privilèges d'utilisateur local :

$ file sh.rustup.rs
sh.rustup.rs: POSIX shell script, ASCII text executable
$ less sh.rustup.rs
$ bash sh.rustup.rs

Sélectionnez l'option 1 lorsque vous y êtes invité :

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
> 1

Après l'installation, vous devez sourcer les variables d'environnement pour vous assurer que la rustupcommande est immédiatement disponible pour que vous puissiez l'utiliser :

$ source $HOME/.cargo/env

Vérifiez que le compilateur Rust (rustc) et le gestionnaire de packages Rust (cargo) sont installés :

$ rustc --version
$ cargo --version

Voir les chaînes d'outils installées et actives

Vous pouvez afficher les différentes chaînes d'outils installées et celle qui est active à l'aide de la commande suivante :

$ rustup show

Basculer entre les chaînes d'outils

Vous pouvez afficher la chaîne d'outils par défaut et la modifier si nécessaire. Si vous êtes actuellement sur une chaîne d'outils stable et que vous souhaitez essayer une nouvelle fonctionnalité disponible dans la version nocturne, vous pouvez facilement passer à la chaîne d'outils nocturne :

$ rustup default
$ rustup default nightly

Pour voir le chemin exact du compilateur et du gestionnaire de paquets de Rust :

$ rustup which rustc
$ rustup which cargo

Vérification et mise à jour de la chaîne d'outils

Pour vérifier si une nouvelle chaîne d'outils Rust est disponible :

$ rustup check

Supposons qu'une nouvelle version de Rust soit publiée avec des fonctionnalités intéressantes et que vous souhaitiez obtenir la dernière version de Rust. Vous pouvez le faire avec la sous- updatecommande :

$ rustup update

Aide et documentation

Les commandes ci-dessus sont plus que suffisantes pour une utilisation quotidienne. Néanmoins, rustup a une variété de commandes et vous pouvez vous référer à la section d'aide pour plus de détails :

$ rustup --help

Rustup a un livre entier sur GitHub que vous pouvez utiliser comme référence. Toute la documentation Rust est installée sur votre système local, ce qui ne nécessite pas que vous soyez connecté à Internet. Vous pouvez accéder à la documentation locale qui comprend le livre, la bibliothèque standard, etc. :

$ rustup doc
$ rustup doc --book
$ rustup doc --std
$ rustup doc --cargo

Rust est un langage passionnant en cours de développement actif. Si vous êtes intéressé par la direction que prend la programmation, suivez Rust !

Lien : https://opensource.com/article/22/6/rust-toolchain-rustup

#rust #rustup #toolchain

Comment Gérer Votre Chaîne D'outils Rust à L'aide De Rustup
Minh  Nguyet

Minh Nguyet

1659596785

Cách Quản Lý Chuỗi Công Cụ Rust Của Bạn Bằng Rustup

Rustup có thể được sử dụng để cài đặt Rust và cập nhật nó. Nó cũng cho phép bạn chuyển đổi liền mạch giữa các trình biên dịch và công cụ ổn định, beta và Rust hàng đêm.

Ngôn ngữ lập trình Rust ngày càng trở nên phổ biến ngày nay, được sử dụng và yêu thích bởi những người có sở thích cũng như các công ty. Một trong những lý do cho sự phổ biến của nó là công cụ tuyệt vời mà Rust cung cấp khiến nó trở thành niềm vui khi sử dụng cho các nhà phát triển. Rustup là công cụ chính thức được sử dụng để quản lý công cụ Rust. Nó không chỉ có thể được sử dụng để cài đặt Rust và giữ cho nó được cập nhật, nó còn cho phép bạn chuyển đổi liền mạch giữa các trình biên dịch và công cụ Rust ổn định, beta và hàng đêm. Bài viết này sẽ giới thiệu cho bạn cấu trúc và một số lệnh thông dụng để sử dụng.

Phương pháp cài đặt Rust mặc định

Nếu bạn muốn cài đặt Rust trên Linux, bạn có thể sử dụng trình quản lý gói của mình. Trên Fedora hoặc CentOS Stream, bạn có thể sử dụng cái này, ví dụ:

$ sudo dnf install rust cargo

Điều này cung cấp một phiên bản ổn định của chuỗi công cụ Rust và hoạt động tốt nếu bạn là người mới bắt đầu sử dụng Rust và muốn thử biên dịch và chạy các chương trình đơn giản. Tuy nhiên, vì Rust là một ngôn ngữ lập trình mới nên nó thay đổi nhanh chóng và rất nhiều tính năng mới thường xuyên được bổ sung. Các tính năng này là một phần của phiên bản beta hàng đêm và mới hơn của chuỗi công cụ Rust. Để thử các tính năng này, bạn cần cài đặt các phiên bản mới hơn này của chuỗi công cụ mà không ảnh hưởng đến phiên bản ổn định trên hệ thống. Rất tiếc, trình quản lý gói của bản phân phối của bạn không thể giúp bạn ở đây.

Cài đặt chuỗi công cụ Rust bằng cách sử dụng gỉ

Để giải quyết các vấn đề trên, bạn có thể tải xuống tập lệnh cài đặt:

$ curl --proto '=https' --tlsv1.2 \
-sSf https://sh.rustup.rs > sh.rustup.rs

Kiểm tra nó, và sau đó chạy nó. Nó không yêu cầu đặc quyền root và cài đặt Rust tương ứng với đặc quyền người dùng cục bộ của bạn:

$ file sh.rustup.rs
sh.rustup.rs: POSIX shell script, ASCII text executable
$ less sh.rustup.rs
$ bash sh.rustup.rs

Chọn tùy chọn 1 khi được nhắc:

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
> 1

Sau khi cài đặt, bạn phải mã nguồn các biến môi trường để đảm bảo rằng rustuplệnh có sẵn ngay lập tức để bạn sử dụng:

$ source $HOME/.cargo/env

Xác minh rằng trình biên dịch Rust (gỉc) và trình quản lý gói Rust (hàng hóa) đã được cài đặt:

$ rustc --version
$ cargo --version

Xem các công cụ đã cài đặt và đang hoạt động

Bạn có thể xem các hàng công cụ khác nhau đã được cài đặt và cái nào đang hoạt động bằng cách sử dụng lệnh sau:

$ rustup show

Chuyển đổi giữa các hàng công cụ

Bạn có thể xem chuỗi công cụ mặc định và thay đổi nó theo yêu cầu. Nếu bạn hiện đang sử dụng chuỗi công cụ ổn định và muốn thử một tính năng mới được giới thiệu có sẵn trong phiên bản hàng đêm, bạn có thể dễ dàng chuyển sang chuỗi công cụ hàng đêm:

$ rustup default
$ rustup default nightly

Để xem đường dẫn chính xác của trình biên dịch và trình quản lý gói của Rust:

$ rustup which rustc
$ rustup which cargo

Kiểm tra và cập nhật chuỗi công cụ

Để kiểm tra xem có chuỗi công cụ Rust mới hay không:

$ rustup check

Giả sử một phiên bản Rust mới được phát hành với một số tính năng thú vị và bạn muốn tải phiên bản Rust mới nhất. Bạn có thể làm điều đó với updatelệnh con:

$ rustup update

Trợ giúp và tài liệu

Các lệnh trên là quá đủ để sử dụng hàng ngày. Tuy nhiên, gỉ có nhiều lệnh khác nhau và bạn có thể tham khảo phần trợ giúp để biết thêm chi tiết:

$ rustup --help

Rustup có cả một cuốn sách trên GitHub mà bạn có thể sử dụng làm tài liệu tham khảo. Tất cả tài liệu Rust được cài đặt trên hệ thống cục bộ của bạn, không yêu cầu bạn kết nối với Internet. Bạn có thể truy cập tài liệu địa phương bao gồm sách, thư viện tiêu chuẩn, v.v.:

$ rustup doc
$ rustup doc --book
$ rustup doc --std
$ rustup doc --cargo

Rust là một ngôn ngữ thú vị đang được phát triển tích cực. Nếu bạn quan tâm đến việc lập trình đang ở đâu, hãy theo kịp với Rust!

Liên kết: https://opensource.com/article/22/6/rust-toolchain-rustup

#rust #rustup #toolchain

Cách Quản Lý Chuỗi Công Cụ Rust Của Bạn Bằng Rustup
Marlee  Carter

Marlee Carter

1618703580

The Critical Role a DevOps Toolchain Plays In a Company

Why is the DevOps toolchain important for a company? How to use it? Should you use a built-in or a custom DevOps toolchain? Here are the answers.

A DevOps toolchain is a set of digital tools used to perform complex software delivery tasks. The tools in the toolchain are usually executed one after the other, with one tool’s output being the input for the next tool.

This is why standardization of these tools is really important. Above all, DevOps toolchains should improve collaboration between developers, automate any necessary tasks, and enable more quality software. At the same time provide observability over the infrastructure and applications.

Seamless integration between tools can be really hard to accomplish. Especially if you don’t have years of experience in the DevOps field. For instance, each tool has its own specific capabilities and syntax. Resolving gaps, overlaps, and dependencies between tools is a cumbersome task. This is also known as tool sprawl. Using a lot of tools can be heavy on your cost management. It can dry up the budget that you can use to address innovation opportunities for your business.

#devops #toolchain

The Critical Role a DevOps Toolchain Plays In a Company
Loma  Baumbach

Loma Baumbach

1601190540

How to Automate your DWH Deployments

Some time ago, I wrote about the Challenges in Automating Multi-Schema Database Deployments. It was about why automated database deployments are crucial to efficient development processes and why they are challenging to establish with multi-schema applications.

Automating Multi-Schema-Database Deployments — The challenges!

Deployment of Multi-Schema-Database Applications is different from deploying your regular Single-Schema-Database! This…

blog.usejournal.com

After implementing many automated DWH deployment processes, I now summarized the most important steps to get there and explain why not only technological implementations have to be made but also process changes and why they are crucial.

A deployment process from hell

Manual deployments include all the processes that require manual steps to install your software into production. Those manual steps can be:

  • Emailing the install scripts to other people (lack of centralized repository).
  • Manual execution of installation scripts (lack of automated pipelines).
  • Copying files around (lack of centralized repository).
  • Sending emails (lack of automated processes).
  • People outside the team execute the installation (lack of ownership).

Image for post

Example of a manual deployment process where communication happens over email.

In the picture above, an example of a manual deployment process is shown. The team member sends an installation package over email to the DBA. The DBA then manually installs the scripts on the target database. He then sends an email back to the team member with a message if the deployment was successful or not. If it wasn’t, he attaches a log file with the error. The team member then has to start looking for the problem and sends a fix again to the DBA…

#devops #development #process-improvement #continuous-integration #toolchain

How to Automate your DWH Deployments

Using 'Go Generate' To Deploy Multi-Process Apps

In microservice architectures, it is fairly common to have a project that includes different worker types. A Makefile can be used to manage the creation of multiple programs, but the Go toolchain has a great tool that can be used as well, go generate. Here are some examples of how we take advantage of ‘go generate’ at Nuvi:

  • API/Worker – We have an API that allows clients to start/stop long-running jobs, and a worker which accesses the same database to run the jobs.
  • NLP Classifier – We have different processes that share a majority of the same code, but have different quirks depending on if they are classifying sentiment, vulgarity, or subjectivity.

In other words, we have one git repository, but from that code, we want to generate ‘n‘ number of executables.

#golang #programming #tutorial #ci/cd #deployment #go #go generate #toolchain

Using 'Go Generate' To Deploy Multi-Process Apps