Skip Navigation

User banner
Posts
13
Comments
1,969
Joined
2 yr. ago

  • We do it like that too. Most meetings are not useful at all (no blockers), but at least we don't waste more than 15-20 minutes

  • but when something goes wrong it's on you, so you can wear that hat too

  • I've been doing that for years. Rollbacks are very rare, to the point that it doesn't make much of a difference whether I do them all at once or not, other than spending more time to do it.

    If I wasn't using containers for everything, sure. Otherwise it's a bit of an excessive concern.

  • exactly my point, I'd suggest automating that before I bothered with PRs that upgrade versions, as it's a waste of time.

  • “manual changes”, which connotes “local changes”

    It doesn't. Manual as in a PR with upgrades that you're suggesting yourself, as opposed to running dependabot.

    Putting up a PR with changes isn’t considered a manual anything.

    If I have to open a PR myself, that's very much a manual change.

  • that's a lot of FUD, topgrade just upgrades using all package managers you have, it doesn't do the upgrades itself bypassing the manager that installed it, or package authors.

  • dependabot is a tool for repos, not to apply local changes

  • That may work for a handful of projects. It'd be my full time job if I did it for everything I run. Also, I might simply suggest maintainers to adopt dependabot or an alternative before I spend time with manual changes. These things should be automated.

  • what's the alternative? Write a PR yourself?

  • multi-line cursor gets close enough

  • I'm lazy, so I prefer to not remember what half a dozen cryptic flags stand for.

    I just find disappointing that there's no long form to these options and they don't make much mnemonic sense either. Feels like the authors just picked the first letter available they came across with zero regard to readability or usability.

  • Functions in Python can only return a single value

    that's not true accurate, this is valid code in this context:

     
        
    x, y, z = splitter(expression)
    
      

    Where x, y, and z are strings. But when you do this, akin to what OP did:

     
        
    value  = splitter(expression)
    
      

    then value is a tuple of 3 strings.

    In fact, unpacking with asterisk at assignment, like below, is not allowed:

     
        
    x, y, z = *splitter(expression)
    
      
     
        
        x, y, z = *splitter(expression)
                  ^^^^^^^^^^^^^^^^^^^^^
    SyntaxError: can't use starred expression here
    
    
      
  • you're missing the asterisk to expand the tuple returned by splitter:

     
        
    print(calculate(*splitter(expression)))
    
      

    if you're using VS Code, check out the error lens extension

    1. What are you talking about, it's always better.

    But seriously, I don't have much Rust proficiency and I still pick software in Rust because 1. installing and updating rust itself and things installed with it is a bliss; and 2. the CLI experience of Rust programs tends to be much better than alternatives.

    Contrasting that with installing something with Go, which is a common alternative for things written in Rust:

    • First, I need Go. So if I chose to install it via another package manager - perhaps with the exception of pacman - I may end up with an out of date version that may cause issues when compiling newer code. I had this happen a few times.
    • If I chose to build it myself, first I need an older version of Go to compile a newer Go. Very fun.
    • If I chose to install it via their website, it's a manual .tar.gz download and extraction of an executable that doesn't self-update, so next time I not only have to repeat this, but I need to remember it.
    • Then there's the gvm project, which promises to resolve some of this friction, and it was my method of choice, but I'm not sure it's maintained anymore and I always have to look up their commands because of things like: gvm list works, but to list versions for download it's gvm listall instead of gvm list --all)

    Now for Rust:

    • curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs/ | sh
    • optional cargo install cargo-update to update everything else with cargo install-update -a
  • tbh they probably can, it's just more ctrl involved

  • f-s-tab is feeble. Unsatisfactory. Bureaucratic.

    f-stab is jocose. Nonchalant. Sharp.