1668082020
The home for various projects maintained by the Rush Stack community, whose mission is to develop reusable tooling for large scale TypeScript monorepos.
These GitHub repositories provide supplementary resources for Rush Stack:
Folder | Description |
---|---|
/apps/lockfile-explorer-web | Rush 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-storykit | Storybook 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-scenarios | Building this project is a regression test for api-documenter |
/build-tests/api-documenter-test | Building this project is a regression test for api-documenter |
/build-tests/api-extractor-lib1-test | Building this project is a regression test for api-extractor |
/build-tests/api-extractor-lib2-test | Building this project is a regression test for api-extractor |
/build-tests/api-extractor-lib3-test | Building this project is a regression test for api-extractor |
/build-tests/api-extractor-scenarios | Building this project is a regression test for api-extractor |
/build-tests/api-extractor-test-01 | Building this project is a regression test for api-extractor |
/build-tests/api-extractor-test-02 | Building this project is a regression test for api-extractor |
/build-tests/api-extractor-test-03 | Building this project is a regression test for api-extractor |
/build-tests/api-extractor-test-04 | Building this project is a regression test for api-extractor |
/build-tests/eslint-7-test | This 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-test | Building this project exercises @rushstack/hashed-folder-copy-plugin with Webpack 4. |
/build-tests/hashed-folder-copy-plugin-webpack5-test | Building this project exercises @rushstack/hashed-folder-copy-plugin with Webpack 5. NOTE - THIS TEST IS CURRENTLY EXPECTED TO BE BROKEN |
/build-tests/heft-action-plugin | This project contains a Heft plugin that adds a custom action |
/build-tests/heft-action-plugin-test | This project exercises a custom Heft action |
/build-tests/heft-copy-files-test | Building this project tests copying files with Heft |
/build-tests/heft-example-plugin-01 | This is an example heft plugin that exposes hooks for other plugins |
/build-tests/heft-example-plugin-02 | This is an example heft plugin that taps the hooks exposed from heft-example-plugin-01 |
/build-tests/heft-fastify-test | This project tests Heft support for the Fastify framework for Node.js services |
/build-tests/heft-jest-reporters-test | This project illustrates configuring Jest reporters in a minimal Heft project |
/build-tests/heft-minimal-rig-test | This is a minimal rig package that is imported by the 'heft-minimal-rig-usage-test' project |
/build-tests/heft-minimal-rig-usage-test | A test project for Heft that resolves its compiler from the 'heft-minimal-rig-test' package |
/build-tests/heft-node-everything-esm-module-test | Building 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-test | Building this project tests every task and config file for Heft when targeting the Node.js runtime |
/build-tests/heft-parameter-plugin | This project contains a Heft plugin that adds a custom parameter to built-in actions |
/build-tests/heft-parameter-plugin-test | This project exercises a built-in Heft action with a custom parameter |
/build-tests/heft-sass-test | This project illustrates a minimal tutorial Heft project targeting the web browser runtime |
/build-tests/heft-typescript-composite-test | Building this project tests behavior of Heft when the tsconfig.json file uses project references. |
/build-tests/heft-web-rig-library-test | A test project for Heft that exercises the '@rushstack/heft-web-rig' package |
/build-tests/heft-webpack4-everything-test | Building this project tests every task and config file for Heft when targeting the web browser runtime using Webpack 4 |
/build-tests/heft-webpack5-everything-test | Building 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-01 | Building this project exercises @microsoft/localization-plugin. This tests that the plugin works correctly without any localized resources. |
/build-tests/localization-plugin-test-02 | Building this project exercises @microsoft/localization-plugin. This tests that the loader works correctly with the exportAsDefault option unset. |
/build-tests/localization-plugin-test-03 | Building 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-test | Tests connecting to an amazon S3 endpoint |
/build-tests/rush-project-change-analyzer-test | This is an example project that uses rush-lib's ProjectChangeAnalyzer to |
/build-tests/set-webpack-public-path-plugin-webpack4-test | Building this project tests the set-webpack-public-path-plugin using Webpack 4 |
/build-tests/ts-command-line-test | Building this project is a regression test for ts-command-line |
/libraries/rushell | Execute shell commands using a consistent syntax on every platform |
/repo-scripts/doc-plugin-rush-stack | API Documenter plugin used with the rushstack.io website |
/repo-scripts/generate-api-docs | Used to generate API docs for the rushstack.io website |
/repo-scripts/repo-toolbox | Used to execute various operations specific to this repo |
/rush-plugins/rush-litewatch-plugin | An experimental alternative approach for multi-project watch mode |
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.
Author: Microsoft
Source Code: https://github.com/microsoft/rushstack
1659640140
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
1659618437
Rustup 可用於安裝 Rust 並保持更新。它還允許您在穩定版、測試版和夜間 Rust 編譯器和工具之間無縫切換。
如今,Rust 編程語言變得越來越流行,受到愛好者和公司的喜愛。它受歡迎的原因之一是 Rust 提供的令人驚嘆的工具使其成為開發人員使用的樂趣。Rustup是用於管理 Rust 工具的官方工具。它不僅可以用來安裝 Rust 並保持更新,它還允許您在穩定、beta 和 nightly Rust 編譯器和工具之間無縫切換。本文將向您介紹 rustup 和一些常用命令。
如果你想在 Linux 上安裝 Rust,你可以使用你的包管理器。在 Fedora 或 CentOS Stream 上,您可以使用它,例如:
$ sudo dnf install rust cargo
這提供了一個穩定版本的 Rust 工具鏈,如果你是 Rust 的初學者並想嘗試編譯和運行簡單的程序,它會非常有用。但是,由於 Rust 是一種新的編程語言,它變化很快,並且經常添加許多新功能。這些功能是 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
1659607620
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.
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.
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 rustup
commande 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
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
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
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- update
commande :
$ rustup update
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
1659596785
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.
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.
Để 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 rustup
lệ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
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
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 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 update
lệnh con:
$ rustup update
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
1618703580
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
1601190540
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.
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.
Manual deployments include all the processes that require manual steps to install your software into production. Those manual steps can be:
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
1589642250
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:
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