Comments (17)
I'd add "release automation". I list several tools in this space on cargo release's README
from blessed-rs.
Maybe also cargo expand
and either cargo bloat
or cargo llvm-lines
.
Probably cargo-edit
as well though cargo rm
will be in 1.66, there is still cargo upgrade
.
from blessed-rs.
Tooling section added. Leaving this issue open for people to add more tool suggestions.
from blessed-rs.
Thanks!
In looking at it, the docs.rs links seems less useful.
from blessed-rs.
Hmm... yes, good point. I've added custom links (mostly to github repos) specifically to this section. This automatically suppresses the doc links.
from blessed-rs.
Other cargo plugins I have installed that I also see recommended often
cargo-audit
/cargo-deny
cargo-bloat
cargo-flamegraph
(already included)cargo-outdated
cargo-udeps
from blessed-rs.
I would probably not mention cargo-outdated, which has limited utility once you use cargo upgrade
(which is included in cargo-edit).
I think cargo-deny is great and probably merits a mention. It encompasses cargo-audit and could probably also replace cargo-license (which I'm not that familiar with).
from blessed-rs.
cargo-outdated
would repeatedly pull the same git repo over and over again if you have git dependencies (slow) and would crash without producing any useful output if it can't figure out how to upgrade something.
cargo-upgrades
is much better in that respect - no redundant pulls, no crashes.
cargo upgrade
is pretty meh since it mixes both semver compatible and semver incompatible changes - you usually want to upgrade semver incompatible stuff one by one.
from blessed-rs.
cargo-show-asm
might be useful somewhere around "Performance" part of the tooling section.
from blessed-rs.
cargo upgrade
is pretty meh since it mixes both semver compatible and semver incompatible changes - you usually want to upgrade semver incompatible stuff one by one.
The current version does actually offer options for this -- I use cargo upgrade --compatible=ignore --incompatible=allow
, for example.
from blessed-rs.
I would probably not mention cargo-outdated, which has limited utility once you use cargo upgrade
My workflow is similar to pacak's: I upgrade semver compatible versions using a simple command (cargo update
can do this natively: no need for a separate tool). For major/minor changes I usually want a list of available versions which I can selectively upgrade. I want to upgrade a single library at a time, fix any breakage, then do the next one. For this I need a list of available updates. A command that just upgrades everything isn't very useful (although a command that upgraded a single library to the latest version would be).
from blessed-rs.
cargo upgrade --dry-run
will report a report similar to cargo outdated
. We are wanting to settle on a design to stablize in cargo
and figured the table would be directly helpful and could allow reducing the need for extra commands (similarly, cargo add
can act as a minimal feature editor).
A command that just upgrades everything isn't very useful (although a command that upgraded a single library to the latest version would be).
cargo upgrade
can do that with cargo upgrade --package clap
(or cargo upgrade -p clap
for short) which works well when combined with --dry-run
for seeing what upgrade options are available. I should check with the cargo team if there is a reason against adding the common dry-run short of -n
to existing cargo commands which would make more more comfortable adding it to cargo upgrade
.
from blessed-rs.
The current version does actually offer options for this -- I use
cargo upgrade --compatible=ignore --incompatible=allow
, for example.
New behavior seems better, but it's about 5 times slower compared cargo upgrades
- 1 vs 5 seconds.
The way it outputs things though is still worse compared to cargo upgrades
:
- things are going to
stderr
- a surprising behavior when you have to redirect the output or use it withless
- things are formatted in blocks with aligned columns which looks neat if you have only one package but is just a visual mess when you have a bunch of crates in a workspace
- uses colors in not a good way with no obvious way to disable them
- summary at the end contains "unchanged" crates - in my case that's a lot of crates - not very useful, plus it includes crates from the workspace itself which is even more strange. This final blob of text forces you to use
less
/redirect...
from blessed-rs.
@pacak mind providing that feedback on https://internals.rust-lang.org/t/feedback-on-cargo-upgrade-to-prepare-it-for-merging/17101?
EDIT: Ideally with sample output
from blessed-rs.
mind providing that feedback on
Sure. Is there a place on github with this merge request?
Anyway, I'll read though that, but will probably take a day or two.
from blessed-rs.
The above internals thread that I linked is where we are collecting feedback and discussing the design on its path towards being merged into cargo.
from blessed-rs.
Closing this now. Any additional suggestions can be submitted via a new issue :)
from blessed-rs.
Related Issues (20)
- Revisit recommended text colouring crate HOT 10
- Add rouille as a "see also" web framework HOT 2
- Add cargo-zigbuild crate
- Add `faer` to `math-scientific` HOT 1
- Add `heapless` to `Common > General > Stack-allocated arrays` (and other data structures) HOT 1
- Add `arboard` to "Clipboard" HOT 1
- a new orm HOT 2
- Add zerocopy to Safe type casts HOT 1
- Page information is outdated and sometimes misleading HOT 6
- Add "unstable" indicator to pre-1.0 packages? HOT 4
- Mocking in Rust
- Typo in Math / Scientific
- Add some arena crates HOT 1
- once_cell has been merged into std and stabilized HOT 1
- add parser library HOT 2
- Add Fyrox game engine
- bpaf description seems a bit odd HOT 15
- Is there any dns crate(both server/client) to be added? HOT 3
- Add various encoding crates HOT 6
- Consider adding inquire HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blessed-rs.