Setting up CI and property testing for a Rust crate

  Рет қаралды 26,697

Jon Gjengset

Jon Gjengset

Күн бұрын

Пікірлер: 37
@meisenmann-_-
@meisenmann-_- Жыл бұрын
I'm currently at the point in the stream where you get asked, if your time isn't too valuable for streaming. And I just want to tell you, how much I appreciate your streams. This one has a huge impact on my work on Github and how to setup a CI/CD. It's different from Gitlab and it saved me a lot of time to figure out how to setup the most important basics. Thank you very much!
@flwi
@flwi 6 ай бұрын
I find your streams extremely helpful. Especially the wordle stream, since I also built a solver before and had lots of connections to the topic. It's also very helpful to see you encounter problems and watch you solve them. I've recently written my first more-than-hello-world program in rust and had it reviewed by two rustaceans. Both said they were impressed with the result, given I started one week ago. That made me very happy! I definitely learned _a lot_ from you after going through the awesome rustlings tutorial. A big THANK YOU for sharing your knowledge!
@JaLikon65
@JaLikon65 7 ай бұрын
58:15 For what it's worth Jon, your videos have been EXTREMELY helpful and educational to me. It hasn't been wasted. Also, 59:00 LMAO
@RoloEdits
@RoloEdits Жыл бұрын
Invaluable content as always. The big concepts are gone over often, but the amount of tidbit information included is so hard to find elsewhere.
@DavidSchmitt
@DavidSchmitt Жыл бұрын
56:00 I'd call the additional work currently needed to declare accurate minimal versions "toil", not waste. Clearly, as you explain, the work output is useful, so the work is not "waste". "Toil" captures the "we could have a machine do this annoying work" much better. And we want to automate toil, but remove waste.
@flwi
@flwi 6 ай бұрын
I'm currently learning about rust and its ecosystem. Would you mind elaborating why exactly this helped? To me it looked like his project now depends on old (and outdated) versions of stuff that should be up to date (like ssl). I might have missed a part though or don't exactly understand how cargo managed dependencies.
@DavidSchmitt
@DavidSchmitt 6 ай бұрын
@flwi I think this was talking about minimum versions. This is not what regular cargo would use, but it allows folks stuck on older rust versions to still find a dependency solution when the newest versions of the dependency do not support that rust version anymore. Also when multiple libraries depend on the same thing, having accurate and lax lower bounds provides for more flexibility if not all of them agree on the upper bound.
@Siniverisyys
@Siniverisyys Жыл бұрын
Thanks for the video Jon. I've been aware of CI for some time, I've been curious about it and I've been meaning to learn more, but I don't have the time or energy to figure it out on my own. There's not too much info (that I've seen) presenting practical/applied CI from the Rust perspective. This video saved me a lot of time and effort, thank you!
@thirdvect0r
@thirdvect0r Жыл бұрын
this will be under 2 hours COPIUM I love your videos jon, I'd have never become a rust dev without you
@driedurchin
@driedurchin Жыл бұрын
I would love to see a stream just about coverage TBH. I found the coverage tools in the Rust ecosystem to produce a good bit of false positives.
@meisenmann-_-
@meisenmann-_- Жыл бұрын
Thank you for your work and dedication!
@jonasync
@jonasync Жыл бұрын
Wait, Rust 1.69 is dropping on 4/20? Nice.
@jonhoo
@jonhoo Жыл бұрын
twitter.com/bitshiftmask/status/1405549491558682627?lang=en See also github.com/rust-lang/rust/pull/42069
@robertsimplerino
@robertsimplerino Жыл бұрын
damn, didn't expect to see you in youtube comments SeriousSloth
@poszu
@poszu Жыл бұрын
Thanks! super helpful 👍
@irlshrek
@irlshrek Жыл бұрын
These videos are so helpful
@driedurchin
@driedurchin Жыл бұрын
Was the pain with cargo extra-bad because it is a binary that brings in a lot of dependencies that you are using as a library? Normally library authors are somewhat conservative with their deps, but I suspect Cargo isnt.
@nickbanderson
@nickbanderson Жыл бұрын
Epic thanks
@dantenotavailable
@dantenotavailable Жыл бұрын
42:44 - You may answer this in later Q&A but I have a question. Is "Hey, your versions are misspecified, you should probably use 1.2.3 for the minimum version of foo" the kind of bug report that you tend to push upstream? As a maintainer, If you saw a bug report like that, what information would you like to see?
@jonhoo
@jonhoo Жыл бұрын
I ought to file issues for these, but find that I rarely do. And I honestly don't really know why. Maybe it's a perception that many maintainers don't really care? Even though I don't actually have evidence for it. If I got a PR like that, I'd certainly be happy! Main info I'd want to see is that the crate doesn't compile with the minimal version as currently specified, but does compile with the updated minimal version.
@Endelin
@Endelin Жыл бұрын
The Fluffy Dough of Rust
@kiffeeify
@kiffeeify Жыл бұрын
10:17 wouldn't a git submodule also be a viable solution for the external ci setup?
@jonhoo
@jonhoo Жыл бұрын
It'd be a lot more annoying when you want to make local changes though.
@michaelvanstraten4390
@michaelvanstraten4390 8 ай бұрын
Try a subtree
@谢智斌-q9l
@谢智斌-q9l Жыл бұрын
wish a video implementing Raft🙃
@tylerhawkes
@tylerhawkes Жыл бұрын
what are the chances that rust 1.69 is released on 4/20 ?
@driedurchin
@driedurchin Жыл бұрын
I hope the odds are... high.
@jackn
@jackn Жыл бұрын
someone meme 59:00
@jaime7295
@jaime7295 Жыл бұрын
Implement raft algorightm
@endogeneticgenetics
@endogeneticgenetics 19 күн бұрын
proptest is *destructively* obtuse -- it's very 'python testing' style -- adds a ton of oscurity and complciation and takes way more work and leaves you with something that is unobvious to maintain. I see what tehy're going for, but it's a bad model in most cases. QuickCheck is what's on the tin with straightforward ways to clean things up. QuickCheck is also inline with the idea of type based fuzing it ... fuzes the *type* by default. Not substructures within a type. -- PropTest has useful elements, but it adds more weight than value given that QuickCheck exists, in most cases imo
@홍준호-m7v
@홍준호-m7v Жыл бұрын
01:33:36
@nnawaff
@nnawaff Жыл бұрын
cursed browser layout
@AndrewKozin
@AndrewKozin Жыл бұрын
Aanother useful result of your streams is that after looking Into the first part of it I went and fixed min dependencies in some crates and going to do this in some others. This brilliant teaching is a way to scale up efforts of improving the ecosystem. It works
@CraftPit
@CraftPit Жыл бұрын
so useful! thanks
Solving distributed systems challenges in Rust
3:15:52
Jon Gjengset
Рет қаралды 241 М.
Rust's Most Important Containers 📦 10 Useful Patterns
17:11
Code to the Moon
Рет қаралды 123 М.
The joker favorite#joker  #shorts
00:15
Untitled Joker
Рет қаралды 30 МЛН
GitHub Actions Feels Bad
26:27
fasterthanlime
Рет қаралды 96 М.
I ported h2spec to Rust (also: codegen!)
16:09
fasterthanlime
Рет қаралды 25 М.
Living with Rust Long-Term - Jon Gjengset
33:42
Rust Nation UK
Рет қаралды 15 М.
Making the (partial) Rust BitTorrent client more reasonable
3:52:26
Jon Gjengset
Рет қаралды 35 М.
Crust of Rust: Send, Sync, and their implementors
1:07:04
Jon Gjengset
Рет қаралды 44 М.
Q&A November 2022
3:14:04
Jon Gjengset
Рет қаралды 12 М.
Making a Rust crate compile faster
2:44:12
Jon Gjengset
Рет қаралды 36 М.
Mocking Rust 🤪 and Testing 🧪
11:58
Code to the Moon
Рет қаралды 38 М.
Crust of Rust: Channels
1:43:12
Jon Gjengset
Рет қаралды 81 М.
The joker favorite#joker  #shorts
00:15
Untitled Joker
Рет қаралды 30 МЛН