GithubHelp home page GithubHelp logo

r-darwish / topgrade Goto Github PK

View Code? Open in Web Editor NEW
3.4K 37.0 161.0 3.01 MB

Upgrade everything

License: GNU General Public License v3.0

Rust 98.65% Emacs Lisp 0.18% Roff 0.79% KakouneScript 0.04% Vim Script 0.35%
rust package-manager automation

topgrade's People

Contributors

aehmlo avatar akeshihiro avatar alexanderwillner avatar bors[bot] avatar br1ght0ne avatar byron avatar chhe avatar confusedsky avatar czwinzscher avatar derphilipp avatar divinegod avatar drrlvn avatar ericmarkmartin avatar ermshiperete avatar funky185540 avatar hugoh avatar idanski avatar jasikpark avatar mcofficer avatar ncrazed avatar niheaven avatar openjck avatar qcloutier avatar r-darwish avatar severinkaderli avatar slotthe avatar smcavoy avatar tranzystorekk avatar tuxiqae avatar xeruf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

topgrade's Issues

topgrade ignores `--help` flag

$ topgrade --help                                                                                                                                                         
                                                                                                                                                                                                                   
―― System update ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――                                                                                                                                  
:: Synchronizing package databases...                                                                                                                                                                              
 core is up to date                                                                                                                                                                                                
 extra                                                                                               1640.0 KiB   430K/s 00:04 [#############################################################################] 100%
 community                                                                                              4.4 MiB   348K/s 00:13 [#############################################################################] 100%
:: Searching databases for updates...                                                                                                                                                                              
:: Searching AUR for updates...                                                                                                                                                                                    
:: Querying AUR...                                                                                                                                                                                                 
:: 24 Packages to upgrade.                                                                                                                                                                                         
24  core/cryptsetup          2.0.3-1    -> 2.0.3-2                                                                                                                                                                 
23  core/iproute2            4.16.0-1   -> 4.17.0-1                                                                                                                                                                
22  core/json-c              0.13-1     -> 0.13.1-1                                                                                                                                                                
21  core/libsystemd          238.133-1  -> 238.133-2                                                                                                                                                               
20  core/systemd             238.133-1  -> 238.133-2                                                                                                                                                               
19  core/systemd-sysvcompat  238.133-1  -> 238.133-2                                                                                                                                                               
18  extra/bind-tools         9.13.0-1   -> 9.13.0-2                                                                                                                                                                
17  extra/bluez              5.50-2     -> 5.50-3                                                                                                                                                                  
16  extra/bluez-libs         5.50-2     -> 5.50-3                                                                                                                                                                  
15  extra/bluez-utils        5.50-2     -> 5.50-3                                                                                                                                                                  
14  extra/flatpak            0.11.8.1-1 -> 0.11.8.2-1                                                                                                                                                              
13  extra/imagemagick        7.0.7.38-1 -> 7.0.7.39-1                                                     

Better error handling

Update procedures should be exported to functions that returns Result and fail when the process fails. The main function should not propagate these errors, but instead report them to the console

Windows support?

It would be really nice to be able to run this on Windows.

Suggested package managers:

  • Chocolatey
  • MSYS (Pacman)

Parallalization

We can perform git pulls in parallel, as well as non interactive upgrades such as vim, emacs, etc.

The system upgrade should not run in parallel.

Vim

  • Neobundle
  • Plug

Allow skip checks option during run

I think topgrade is really neat, however... when I'm installing a lot of package dependencies in rapid succession while trying to figure out what I need to build something else, I wish there were a way to override the topgrade checks if I've just run apt commands in the last few minutes.

Something like "press 'q' to skip upgrade checks"

Also, perhaps an internal config setting like "don't check for upgrades if last run was less than N hours/days ago" -- that might be a good overall solution.

sudo should not reference relative paths

It's easier to have sudo reference a relative path, like sudo yum upgrade, but there's basically only two cases where that would work.

  1. sudo is configured to allow ALL as root
  2. sudo is configured to allow a relative path, like just saying yum

While 1 isn't uncommon, 2 should never be done for the sake of security, because anyone could drop any file in ~ and name it to the relative name to satisfy the requirement.

I think that a better approach here would be to have an assumed path on the various distributions for the binaries and have sudo exec from there. It's pretty safe to assume that on Debian, that apt-get will be /usr/bin/apt-get, and if it isn't, I don't know that I'd trust it unless they officially made a move.

As part of supporting different distributions, I think this would be the safest choice.

Does not recognize Manjaro KDE

Topgrade throws an error "Unkown Linux Distribution", only upgrades flatpaks and snaps.
I'm running Manjaro Linux 17.1.10 w 4.17.0-2-MANJARO kernel.

Add dry-run mode

Add a mode in which nothing is really done but instead the commands that would be run are printed.

add update-usbids and update-pciids

Hi,

Would be nice to add in support (if found) for:

sudo /usr/sbin/update-usbids
and
sudo /usr/sbin/update-pciids

to pull the latest snapshots for each.

Thanks!

Rustup

I'm not sure what to do with Rustup, so I'm opening it up for discussion:

  • The stable channel - It's safe to update. However, Rust versions don't release often, and when they do, people are usually aware of that, so maybe it's a bit of a waste to try to update something which doesn't update very often?

  • The nightly channel - This actually updates every night, but has the potential for breaking things. I don't use nightly personally so I'm not sure what's the desired workflow for people who actually use nightly. Do such people update nightly every day, or do they only do that whenever they feel ready?

Use dnf instead of yum on Fedora

While there is a yum binary, that's redirecting to dnf, because yum has been deprecated for years (since Fedora 22).

It would probably be nicer to use dnf directly on Fedora.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.