Forwarded from Rust 视界
「社区」我的Rust程序发布checklist
关键字: [fd, release, checklist]
该文是fd库的作者总结出来的release清单,可以给社区提供一个借鉴。
按以下顺序做发布检查,非常重要:
一、 检查和更新依赖。
- 检查deps.rs是否有过期的依赖
- 运行cargo update去更新最新的兼容(minor)版本的依赖性
- 如果需要,可以手动更新到最新的主(major)版本
对于主版本更新还需要查看上游更改,仔细评估是否真的需要更新为新版本。
二、获取自上次发布以来的更新列表
通过
[示例](https://github.com/sharkdp/fd/compare/v7.1.0...master)
三、更新文档
- 检查并更新 -h和—help文本
- 更新Readme(程序的用法、新功能介绍、最低要求的Rust版本)
- 更新man页面
四、在本地安装主分支并且测试新功能
- 使用`cargo install -f `来安装
- 手动测试新功能
- 运行基准测试避免性能回退
理想情况下,为新的功能编写了测试,并且也使用了CI,是没有什么可担心的了。但实际上,总有一些事需要手工审查。尤其是对终端环境依赖的CLI项目更是需要如此。
五、清理代码库。
- 运行
- 运行 `cargo fmt`自动格式化代码
- 运行
最后两步通常包含在CI中。
六、更新版本信息
- 在Cargo.toml中更新项目版本
- 运行`cargo build`更新Cargo.lock
- 在项目仓库中搜索旧的版本号将其更新为新版本(比如在Readme、安装说明、构建脚本中等等)
七、使用Dry run模拟发布
八、Commit、Push并等待CI成功
九、写release notes。
十、 为最新的提交打上tag,并且开始部署。
十二、验证部署。确保已经上传了所有的二进制文件。
十三、发布到crates.io。
[Read More](https://dev.to/sharkdp/my-release-checklist-for-rust-programs-1m33)
关键字: [fd, release, checklist]
该文是fd库的作者总结出来的release清单,可以给社区提供一个借鉴。
按以下顺序做发布检查,非常重要:
一、 检查和更新依赖。
- 检查deps.rs是否有过期的依赖
- 运行cargo update去更新最新的兼容(minor)版本的依赖性
- 如果需要,可以手动更新到最新的主(major)版本
对于主版本更新还需要查看上游更改,仔细评估是否真的需要更新为新版本。
二、获取自上次发布以来的更新列表
通过
GitHub -> Release -> "XX commits to master since this release" 就能获取此更新列表。[示例](https://github.com/sharkdp/fd/compare/v7.1.0...master)
三、更新文档
- 检查并更新 -h和—help文本
- 更新Readme(程序的用法、新功能介绍、最低要求的Rust版本)
- 更新man页面
四、在本地安装主分支并且测试新功能
- 使用`cargo install -f `来安装
- 手动测试新功能
- 运行基准测试避免性能回退
理想情况下,为新的功能编写了测试,并且也使用了CI,是没有什么可担心的了。但实际上,总有一些事需要手工审查。尤其是对终端环境依赖的CLI项目更是需要如此。
五、清理代码库。
- 运行
cargo clippy 并查看修改建议 [可选]- 运行 `cargo fmt`自动格式化代码
- 运行
cargo text 确保所有测试通过最后两步通常包含在CI中。
六、更新版本信息
- 在Cargo.toml中更新项目版本
- 运行`cargo build`更新Cargo.lock
- 在项目仓库中搜索旧的版本号将其更新为新版本(比如在Readme、安装说明、构建脚本中等等)
七、使用Dry run模拟发布
cargo publish --dry-run --allow-dirty
通过这次模拟来发现上传包到crates.io中的问题,提前检查修改八、Commit、Push并等待CI成功
九、写release notes。
十、 为最新的提交打上tag,并且开始部署。
git tag vX.Y.Z; git push --tags
十一、在GitHub上创建实际的发布版本。十二、验证部署。确保已经上传了所有的二进制文件。
十三、发布到crates.io。
cargo publish
十四、通知软件包维护者有关的更新信息。[Read More](https://dev.to/sharkdp/my-release-checklist-for-rust-programs-1m33)
GitHub
sharkdp/fd
A simple, fast and user-friendly alternative to 'find' - sharkdp/fd
Forwarded from Rust 视界
「博文」一个使用Rust节约成本的故事
— 使用Rust将解析日志的速度提高了230倍
该文章是《The Ruby Way》的作者[André Arko](https://github.com/indirect)写的,同时他也是Ruby包管理器Bunlder的No.1贡献者,以及Rubygems.org的维护者。
所以,他在维护Rubygems.org的过程中,遇到最让他头疼的事情就是对日志的处理。Rubygems每秒有4000到25000个请求,磁盘每天可以产生500GiB的日志。他们尝试了一些日志的托管产品,但是这些产品也只能为他们保留1个小时以内的日志数据。
大概一年前,他把完整的日志进行了压缩,放到了s3上面,存储成本大概是每个月3.5美刀。但是有很多他感兴趣的统计数据被「埋葬」在了S3上面。因为S3的gzipped JSON流很难查询数据。这些统计数据有利于提供Ruby生态系统状态的重要信息。
后来利用aws的Glue功能,可以运行基于spark脚本的hadoop集群,他写了一个统计脚本,但是费用上升到了每月1000刀。
后来,也不知道是什么原因,让他想到了Rust。
事实证明,Rust满足了他的需求。 Serde Json库,让他可以在2秒内将1GB的JSON反序列化为Rust数据类型。并且使用nom来解析日志,可以在3分钟内解析1GB的日志文件,作者说,用Python和Glue在30分钟内解析完日志,他就觉得了不起了。
但是作者又仔细阅读了nom的文档,发现了一句「有时候,nom几乎和regex一样快」,这句话给了他灵感,他又用regex重写了解析代码,性能又提高了3倍。至少被spark中使用python解析快30倍。但是他把这个Rust程序的性能又多牛逼的事情告诉 @ReinH (他的朋友,Rust的贡献者之一,比他更了解Rust)的时候,ReinH说,怎么这么慢?你这个程序必须得优化。
他不清楚他的朋友是不是跟他开玩笑,但是他继续对Rust进行研究,然后他发现了`—release`模式,在使用release模式编译代码之后,突然发现:他可以在8秒内把1GB的文件解析完。以下是处理速度的一个对比记录:
他尝试了一些方案之后,最后发现了aws Lambda,它有一个免费策略:每个月400,000s。而作者处理500GB日志,只需要3000多s。于是他就快乐地使用了aws Lambda功能。
源码 : [kirby](https://github.com/rubytogether/kirby)
[Read More](https://andre.arko.net/2018/10/25/parsing-logs-230x-faster-with-rust/)
— 使用Rust将解析日志的速度提高了230倍
该文章是《The Ruby Way》的作者[André Arko](https://github.com/indirect)写的,同时他也是Ruby包管理器Bunlder的No.1贡献者,以及Rubygems.org的维护者。
所以,他在维护Rubygems.org的过程中,遇到最让他头疼的事情就是对日志的处理。Rubygems每秒有4000到25000个请求,磁盘每天可以产生500GiB的日志。他们尝试了一些日志的托管产品,但是这些产品也只能为他们保留1个小时以内的日志数据。
大概一年前,他把完整的日志进行了压缩,放到了s3上面,存储成本大概是每个月3.5美刀。但是有很多他感兴趣的统计数据被「埋葬」在了S3上面。因为S3的gzipped JSON流很难查询数据。这些统计数据有利于提供Ruby生态系统状态的重要信息。
后来利用aws的Glue功能,可以运行基于spark脚本的hadoop集群,他写了一个统计脚本,但是费用上升到了每月1000刀。
后来,也不知道是什么原因,让他想到了Rust。
事实证明,Rust满足了他的需求。 Serde Json库,让他可以在2秒内将1GB的JSON反序列化为Rust数据类型。并且使用nom来解析日志,可以在3分钟内解析1GB的日志文件,作者说,用Python和Glue在30分钟内解析完日志,他就觉得了不起了。
但是作者又仔细阅读了nom的文档,发现了一句「有时候,nom几乎和regex一样快」,这句话给了他灵感,他又用regex重写了解析代码,性能又提高了3倍。至少被spark中使用python解析快30倍。但是他把这个Rust程序的性能又多牛逼的事情告诉 @ReinH (他的朋友,Rust的贡献者之一,比他更了解Rust)的时候,ReinH说,怎么这么慢?你这个程序必须得优化。
他不清楚他的朋友是不是跟他开玩笑,但是他继续对Rust进行研究,然后他发现了`—release`模式,在使用release模式编译代码之后,突然发现:他可以在8秒内把1GB的文件解析完。以下是处理速度的一个对比记录:
~525 records/second/cpu in Python on AWS Glue但他没满足,继续使用rayon对程序并行化处理日志,最终的程序,在8核机器上快了100倍,在单核上跑,快230倍。现在的1GB的日志文件处理需要6.4s。
50,534 records/second/cpu in Rust with nom
121,153 records/second/cpu in Rust with regex + release
151,441 records/second/cpu in Rust with regex + release+ rayon最后如何部署是个问题。
他尝试了一些方案之后,最后发现了aws Lambda,它有一个免费策略:每个月400,000s。而作者处理500GB日志,只需要3000多s。于是他就快乐地使用了aws Lambda功能。
源码 : [kirby](https://github.com/rubytogether/kirby)
[Read More](https://andre.arko.net/2018/10/25/parsing-logs-230x-faster-with-rust/)
GitHub
indirect - Overview
indirect has 271 repositories available. Follow their code on GitHub.
Forwarded from Solidot
King Arthur's Gold 开源
2D 物理和合作建造独立游戏《King Arthur's Gold》宣布免费并公开源代码,源代码托管在 GitHub 上。《King Arthur's Gold》混合了失落的维京人的合作元素,加上了百战天虫中可完全摧毁地形的能力以及合金弹头系列里的视觉效果和动作元素。免费玩家限制了定制性,但可以通过购买 DLC 或 patreon 捐款支持解锁所有定制选项。Media
https://www.solidot.org/story?sid=60315
2D 物理和合作建造独立游戏《King Arthur's Gold》宣布免费并公开源代码,源代码托管在 GitHub 上。《King Arthur's Gold》混合了失落的维京人的合作元素,加上了百战天虫中可完全摧毁地形的能力以及合金弹头系列里的视觉效果和动作元素。免费玩家限制了定制性,但可以通过购买 DLC 或 patreon 捐款支持解锁所有定制选项。Media
https://www.solidot.org/story?sid=60315
Forwarded from Rust 视界
教你使用Yew Framework與Web Assembly
需要翻牆
[Read more](https://www.reddit.com/r/rust/comments/benycb/rustlang_project_todo_app_yew_framework_and_web/)
需要翻牆
[Read more](https://www.reddit.com/r/rust/comments/benycb/rustlang_project_todo_app_yew_framework_and_web/)
reddit
Rustlang Project: Todo App (Yew Framework and Web Assembly)
Posted in r/rust by u/MinutePhrase • 5 points and 0 comments
Forwarded from Rust 视界
Rust ConAsia 2019 下午场 直播地址
Room A: https://www.yizhibo.com/l/Px_sPev6S97VyanX.html
资料:https://github.com/breeswish/rust-prometheus-workshop
Room B:
Room C: https://www.yizhibo.com/l/hDjblQeE299JGrSg.html
资料: https://shawntabrizi.github.io/substrate-collectables-workshop/#/
https://github.com/shawntabrizi/substratekitties
Room A: https://www.yizhibo.com/l/Px_sPev6S97VyanX.html
资料:https://github.com/breeswish/rust-prometheus-workshop
Room B:
Room C: https://www.yizhibo.com/l/hDjblQeE299JGrSg.html
资料: https://shawntabrizi.github.io/substrate-collectables-workshop/#/
https://github.com/shawntabrizi/substratekitties
Yizhibo
沙渺MT-一直播
沙渺MT,沙渺MT,rust-prometheus
Forwarded from Deleted Account
https://space.bilibili.com/293274438/channel/detail?cid=72429
RustCon Asia B 站观看地址-更新了 20 部(欢迎分享)
RustCon Asia B 站观看地址-更新了 20 部(欢迎分享)
Bilibili
秘猿科技的个人空间 - 哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili
秘猿科技,秘猿科技 We Build Trust
相伴始终 信任如初
https://www.cryptape.com
,bilibili是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主。大家可以在这里找到许多欢乐。
相伴始终 信任如初
https://www.cryptape.com
,bilibili是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主。大家可以在这里找到许多欢乐。