Codebase list rust-libslirp / 5961e7bb-f0f3-4873-a589-fd3ead16d276/main TODO.rst
5961e7bb-f0f3-4873-a589-fd3ead16d276/main

Tree @5961e7bb-f0f3-4873-a589-fd3ead16d276/main (Download .tar.gz)

TODO.rst @5961e7bb-f0f3-4873-a589-fd3ead16d276/main

991bc1c
2f04e9c
 
 
991bc1c
 
2f04e9c
f830d4f
991bc1c
f830d4f
 
 
e1b6b39
f830d4f
 
a258047
991bc1c
08a31d3
e1b6b39
 
 
e1a9d89
e1b6b39
e1a9d89
 
 
66ea114
 
 
e1a9d89
 
66ea114
e1b6b39
66ea114
e1a9d89
 
a258047
a57a336
991bc1c
 
 
a57a336
e1b6b39
 
 
 
 
 
a847058
2e78543
991bc1c
a847058
2e78543
4a17a77
2e78543
991bc1c
721491c
e1374b6
5c55c54
776fa54
 
 
e1374b6
 
 
776fa54
e1374b6
87ad78f
 
 
 
 
 
 
 
 
2e78543
991bc1c
e967334
 
 
991bc1c
05270f6
 
 
 
 
 
1a206c8
0467017
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296a4fd
 
 
 
 
718b98a
 
 
 
 
 
 
 
 
 
 
51429d7
 
 
 
 
83c9b59
 
 
 
 
 
 
 
 
51429d7
 
 
 
 
 
 
83c9b59
51429d7
 
 
 
 
 
 
 
83c9b59
51429d7
 
83c9b59
51429d7
83c9b59
51429d7
 
 
 
83c9b59
51429d7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83c9b59
 
51429d7
 
 
 
 
 
83c9b59
51429d7
83c9b59
51429d7
 
 
 
 
 
 
 
 
 
0cfe257
 
 
 
 
 
 
 
 
 
 
 
 
51429d7
991bc1c
 
 
 
 
 
e1b6b39
 
 
a6fd8ad
ad1e69c
 
908974b
991bc1c
3eafad0
 
e1b6b39
991bc1c
a6fd8ad
3eafad0
ad1e69c
 
e1b6b39
3eafad0
991bc1c
718b98a
3eafad0
e1b6b39
3eafad0
e1b6b39
3eafad0
991bc1c
 
 
 
 
 
e1b6b39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
991bc1c
 
 
 
 
 
 
 
===============
Immediate goals
===============

See end of this document for "eventual goals".


Remove old libraries
====================

Should file a RM request to ftpmasters for these old crates:

(no old crates, yay!)


Ready for upload (Request For Sponsor)
======================================

If you do not have upload rights, simply ``touch src/$crate/debian/RFS`` in
your crate's directory, commit and push it, and a DD or DM will get around to
it at some point.

To list all packages under RFS, run ``dev/list-rfs.sh``.

If your update breaks semver compatibility, please first check the reverse
dependencies by running::

    $ aptitude search '~Dlibrust-$cratename'

and try to verify that they won't be broken by your update, by building them.
If they are broken, then:

1. Document the problem in ``debian/BLOCK``.
2. File an issue upstream to report that they should update to the new library
3. Write a patch if you can get that working, and document it.


Unblocking testing migrations
=============================

Run ``dev/rust-excuses.mk refresh all`` to see these in a nice graph.

Run ``dev/rust-regressions.sh`` to analyse autopkgtest regressions.

From the excuses graph, find the lowest crates i.e. those with no arrows going
outwards to other crates. Then run ``dev/list-rdeps.sh @ $lowest_crotes`` to
see which of its rdeps are broken, and need to be fixed.


New packages
============

Use ``dev/list-remaining-deps.sh`` to help you figure out what's missing.

rustfmt-nightly
---------------

* rustc-ap-syntax
  * rustc-ap-rustc_data_structures (prepared)
    * rustc-ap-graphviz (needs nightly)
    * rustc-ap-rustc-cratesio-shim (needs nightly)
  * rustc-ap-rustc-errors (depends on the rest of the list here)
  * rustc-ap-rustc-target
  * rustc-ap-serialize (to be uploaded, dep issue?!)
  * rustc-ap-syntax-pos
  * rustc-ap-serialize (fails because of usage of nightly feature)

bat update
----------

Needs syntect => onig => onig-sys => bindgen 0.55 (for librust-bindgen-0.51+runtime-dev)
Disabling syntect in bat causes:
error[E0433]: failed to resolve: use of undeclared type or module `syntect`
 --> src/terminal.rs:4:5


bingrep
-------

* hexplay
* metagoblin

tokei
-----

needs handlebars
which needs pest
which needs ucd-trie

librsvg
-------

see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907629

[ ] alga
[ ] c_vec
[ ] criterion
[ ] criterion-plot
[ ] criterion-stats
[ ] downcast-rs
[ ] handlebars
[ ] itertools-num
[ ] matrixmultiply
[ ] nalgebra
[ ] num-traits-0.1.43
[ ] pest_derive
[ ] quote-0.3.15
[ ] rand-0.4.2
[ ] rawpointer
[ ] syn-0.11.11
[ ] synom
[ ] unicode-xid-0.0.4


bench
-----
* criterion
  * criteron-plot

rustup
------

* rustup (not available as a crate)
 * git-testament
   * git-testament-derive
 * markdown
   * pipeline
 * retry
 * xz2

tokio/futures/hyper with async/await
------------------------------------

*dependency tree*

* futures 0.3.4
   * futures-executor 0.3.4
   * futures-util 0.3.4
      * futures-task 0.3.4
      * futures-channel 0.3.4
         * futures-core 0.3.4
         * future-sink 0.3.4
      * futures-io 0.3.4
      * futures-macro 0.3.4
      * pin-utils 0.1.0-alpha.4
      * proc-macro-nested 0.1.3

* tokio-macros 0.2.3

* tokio 0.2.10
   * bytes 0.5.3 (outdated)
   * futures-core 0.3.4 (see above)
   * pin-project-lite 0.1.1
   * tokio-macros 0.2.3

* tokio-tls 0.3.0
   * tokio 0.2.10 (+ subset of dependencies)

* tokio-util 0.2.0
   * tokio 0.2.10 (+ subset of dependencies)
   * futures-sink 0.3.4 (see above)

* hyper 0.13.1
   * futures-* 0.3.4 (see above)
   * h2 0.2.1
      * futures-* 0.3.4 (see above)
      * http 0.2.0
         * bytes 0.5.3 (needed for tokio anyway)
      * tokio 0.2.10 (see above)
      * tokio-util 0.2.0 (see above)
   * http-body 0.3.4
      * http 0.2.0 (+ deps)
   * pin-project 0.4.7
      * pin-project-internal 0.4.7
   * tokio 0.2.10 (see above)
   * tower-service 0.3.0
   * want 0.3.0
   * mio 0.6.21
   * iovec 0.1.4

*rdeps outside of tokio/futures/hyper*

* bcder (recently packaged, not yet compatible with bytes 0.5)
* bufstream (dead upstream, no rdeps)
* bzip2 (no upstream support yet, no rdeps for future/tokio features)
* flate2 (no upstream support (yet), no rdeps for future/tokio features)
* gstreamer-* (new upstream version is compatible, updated, no non-gstreamer rdeps, needs glib update, which triggers:
   * atk
   * cairo-rs
   * gdk
   * gdk-pixbuf
   * gio
   * gtk
   * pangocairo
   * pango
   * and their respective sys crates
* mio-extras (no rdeps, compatible)
* mio-named-pipes (no rdeps except tokio-process, compatible)
* mio-uds (rdeps: signal-hook, tokio-uds, tokio-signal)
* pcap (no rdeps, can be dropped)
* reqwest (updated, needs updated hyper-tls, new wasm-bindgen-futures, updated web-sys/js-sys/webasm)
* signal-hook (updated version not yet released, single rdep "tokio-signal" got merged into tokio and only uses signal-hook-registry now -> patched to remove dependency)
* string (relaxed dep on bytes)
* want (updated)

*old crates to be removed*

* futures-cpupool (no rdeps outside of futures/tokio/hyper, merged into futures-executor)
* tokio-async-await (merged into tokio-macros)
* tokio-buf (dropped upstream, rdeps no longer need it after updating)
* tokio-codec (merged into tokio-util)
* tokio-core (only 1 rdep: pcap, can be dropped after pcap was dropped, merged into tokio)
* tokio-current-thread (merged into tokio)
* tokio-executor (merged into tokio)
* tokio-fs (merged into tokio)
* tokio-io (merged into tokio, see above for rdeps bufstream, bzip2, flate2)
* tokio-process (merged into tokio)
* tokio-reactor (renamed to tokio-net, merged into tokio, see above for rdep signal-hook)
* tokio-signal (merged into tokio)
* tokio-sync (merged into tokio)
* tokio-tcp (merged into tokio)
* tokio-threadpool (merged into tokio)
* tokio-timer (merged into tokio)
* tokio-uds (merged into tokio)
* tokio-udp (merged into tokio)

*incompatible rdeps with no futher rdeps, dead upstream, to be removed*

* pcap (replaced by pcap-sys)
* bufstream: https://github.com/alexcrichton/bufstream/issues/13

*NEW, installable as-is*

* pin-utils (NEW)
* proc-macro-nested (NEW)
* futures-sink
* futures-task
* futures-io
* futures-macro
* tokio-macros
* pin-project-lite
* tower-service (NEW)
* pin-project-internal + pin-project
* paste-impl (NEW) + paste
* webasm-bindgen-futures

*NEW, with dependency within transition*

* futures-channel (after futures-core/futures-sink)
* futures-util (after futures-channel, proc-macro-nested, pin-utils)
* futures-executor (after futures-core, futures-task, futures-util)
* tokio-tls (after tokio)
* tokio-util (after tokio, bytes, futures-core, futures-sink, pin-project-lite)

fractal
-------

* gspell
   * gspell-sys
* gstreamer-editing-services
* gstreamer-player
* html2pango
* letter-avatar
* loggerv
* mdl
* secret-service (WIP)
* sourceview4

==============
Eventual goals
==============

Binary crates worth packaging (please add if you know more):

- bench - simple benchmarking
- bingrep - Grep through binaries from various OSs and architectures.
- brewstillery - Brewer's, vinter's and distiller's calculator (GTK).
- cargo-deb - Create Debian packages from Cargo projects
- cargo-debstatus - Print the status of crate’s dependencies in Debian
  * blocked on postgres
- cargo-download - Download sources of a crate
- cargo-edit - Cargo editing subcommands (add, rm, upgrade)
- diskonaut - interactive disk usage tui tool
- fractal - Matrix messaging client (GTK, https://wiki.gnome.org/Apps/Fractal)
- hg - Rust implement of hg
- jql - JSON Query Language CLI tool.
- meli - terminal mail client (https://meli.delivery/)
- podcasts - Podcasts app (GTK, https://wiki.gnome.org/Apps/Podcasts)
- recode_rs - CLI tool converting between the character encodings.
- resvg - SVG renderer (in Debian; packaged separately, but doesn’t build anymore)
- rural - User-friendly command-line HTTP tool
- rust-analyzer - modular rust compiler frontend with LSP
- rustfmt-nightly - rust coding style
- rustup - installing and managing multiple rust toolchains
- shortwave - Internet radio client (GTK, https://gitlab.gnome.org/World/Shortwave)
- tmux-hints - Find matches (e.g. urls) and navigate them by keyboard
- viu - Command-line image viewer
- xsv - Command line program for manipulating CSV files
- zola - static site generator (https://www.getzola.org/)

To see lists of interesting binary crates, you can run something like::

  $ apt-get install koji-client
  $ koji -p fedora search package 'rust-*' | cut -b6- | dev/filter-binary-crates.sh

Current output (on 2020-01-17), minus stuff already in Debian, is:

  afterburn
  alloc-no-stdlib
  alloc-stdlib
  askalono-cli
  brotli
  brotli-decompressor
  cargo-c
  comrak
  coreos-installer
  ffsend
  heatseeker
  jql
  lsd
  multipart
  open
  permutate
  pretty-git-prompt
  qrcode
  skim
  starship
  varlink-cli
  varlink_generator

Sccache is also helpful for reducing the build-time of things like firefox and thunderbird

- sccache https://github.com/mozilla/sccache

There are also more binaries here:

https://github.com/rust-unofficial/awesome-rust