Brson's "someday" list


#22

Updated with:

high

low


#23

Updated op with these. A lot are pretty opaque. Sorry about that.

High:

  • write security roadmap
  • write release qa checklist
  • investigate rustup disk usage during transactions
  • change rustup to panic=abort
  • write rust packaging guidelines
  • get rustup working via powershell one-liner
  • add cargo-template quickstart instructions to error-chain docs
  • set up static linking for msvc rustc
  • fix rustup windows dojob issue (make cargo and rustup use the same dojob code)
  • simple crates in need - extract these from rustup/cargo and share
    • copy_dir
    • remove_dir_all
    • dojob
    • flock
    • symlink_dir
    • homedir
  • implement the update framework

Low:


#24

What’s this one?


#25

Sounds like you should be able to just run cargo template quickstart my-new-project and get a project setup to use error-chain.


#26

Neat. Should it work in conjunction with this PR for cargo or some other way?


#27

I believe my intent was to make https://github.com/brson/error-chain/blob/master/examples/quickstart.rs compatible with https://github.com/pwoolcoc/cargo-template, in anticipation of compatibility with your cargo PR in the future.


#28

Templating was merged into Cargo yesterday.

The following project can be used as a quickstart template (I made a PR to use {{name}} and {{author}} templates:


#29

Thanks @ehiggs!


#30

@ehiggs What is the cargo command to instantiate the error-chain quickstart.rs directly from the error-chain repo (https://github.com/brson/error-chain/blob/master/examples/quickstart.rs)? I’d like the error-chain docs to say something like

To get started run:

$ cargo template whatever

(Obviously fill in with the correct syntax)


#31

$ cargo new --template https://github.com/rusttemplates/quickstart whatever

Currently there is a bug in that particular template where the name and author aren’t actually templated but I have a PR to fix it.


#32

Here’s some commentary about the ‘simple crates’:

16:32 simple crates - there are a number of unbelievably common functions i end up reimplementing a lot 16:32 and poorly 16:33 copy_dir is just a recursive directory copy. not sure if there’s a good crate for this yet 16:34 sometimes one needs to do a copy but ignoring dotfiles. i open code this with walk_dir 16:34 but there should be a common copy_dir that covers most cases and just works 16:34 remove_dir_all is broken in std on windows 16:34 so people always reimplement in 16:34 *it 16:35 while it should be fixed in std, in the meantime somebody should just publish a working version 16:35 dojob is a common routine that cargo, rustbuild and rustup use to create process groups on Windows for killing multiple processes 16:35 but they all implement it diferently and some are missing fixes 16:36 symlink_dir would be a crate that creates symlinks to directories correctly on windows, using directory junctions 16:37 homedir would be an implementation of std::env::home that uses cargo/rustup’s definition. I consider std incorrect when it considers HOME on Windows.


#33

I’ve updated the list with:

high

  • document interfaces that are not-really stable
  • port cargobomb to windows
  • add stdx ci testing
  • install more things in cargobomb docker container

low

  • run custom shootout server with additional nightly benchmarks
  • write hello.exe size test
  • switch default rustup to -gnu
  • do analysis of servo crash fixes vs firefox crash fixes
  • propose proprietary Rust testing service

#34

why proprietary?


#35

It’s not the service itself that is proprietary, but a service for regression testing proprietary Rust projects, to give us visibility into the ecosystem where we are lacking it. It would be a formal structure for setting up NDAs and compensation for running cargobomb and similar future efforts on closed-source projects.


#36

As a once and future (hopefully with rust) "Enterprise Software Developer"™, I think this could go a long way towards reassuring companies that they could rely on rust for their development future.


#37

@brson I would like to help with

  • weekly compiler-perf report;

What does it actually entail? Hope explaining what it entails doesn’t take as long as actually doing it. :slight_smile:

From the single line, I assume it has to do with measuring performance of the compiler over its development history. Sounds related to continuous integration/testing/benchmarking. Would this use gperf? Which benchmarks would you use to measure this?


#38

@pmatos The main idea is just to get information about the performance of the Rust compiler in front of people on a regular basis, to build a sense of accountability. At the time I would have said to examine perf.rust-lang.org to extract a sensible story about what happened last week, and just write it up in a consistent way, with key metrics. At the moment though perf.rlo is not working…


#39

Templates was pulled out pending an RFC. The feedback in a pre-RFC thread suggests that people don’t want it in cargo but would rather an external cargo tool like clippy.


#40

I updated the op with the following:

high

  • update platform support page with richer info about which are tested
  • teach cargobomb to print rustc version in every run
  • fix skeptic linkage issue https://github.com/brson/rust-skeptic/issues/18
  • solicit cargobomb help
  • upload libz blitz videos to youtube
  • create 1.0 crate scoreboard
  • conduct research project on structuring projects for contribution

low


#41

I updated the op with the following.

This is pretty massive list of things that I think should be done, but mostly without much info about what that something is. If any of these look interesting and you want to take a stab at it I can try to help you get going.

Presently I’m finding myself completely overwhelmed with projects I want to advance, but without the time or means to get them moving myself.

high

  • finish anthology
  • start rust on fuchsia project
  • update cargo crusader so it works again
  • outline possibilities for getting more rust funding
  • teach cargobomb to print rustc version in every run
  • fix skeptic linkage issue https://github.com/brson/rust-skeptic/issues/18
  • solicit cargobomb help
  • create 1.0 crate scoreboard
  • write irlo post about triage opportunities
  • initiate project to serdify crates
  • find somebody else to do release milestone predictions
  • write release checklist
  • switch rustup to use the win-msvc host by default
  • do panic_fmt stabilization rfc
  • update smoke in terms of cross https://github.com/japaric/smoke
  • extract cargo_home / home_dir into their own crate
    • update rustup, cargo, cargo-index-tool
  • look for project management assistant
  • solicit ‘this release in rust’
  • ask for help running cargobombs
  • advance ‘train the trainer’ idea
  • solicit help on cookbook design
  • help budziq with cookbook recipe ideas
  • write fast scrypt library
    • corrode the fastest c scrypt implementation and convert it to safe rust?

low

  • do a new “annotated std”
  • work on rust-timeline (timeline of rust history)
  • rebrand ‘thanks’ thread
  • write a post about rust jobs http://rustjobs.rs/
  • conduct research project on structuring projects for contribution
  • upload libz blitz videos to youtube
  • update platform support page with richer info about which are tested
  • run emscriptenized tests under cargobomb
  • do standard library survey
  • getopts 1.0
  • do a linux distro rust/cargo/firefox packaging summary
    • status of all three packages in many distros
    • upstream package urls
    • get updates from packagers
    • irlo thread
  • cfg-ize servo to remove js, opengl, etc.
  • run bloaty mcbloatface on rust stuff https://github.com/google/bloaty
  • teach rustup to install with no toolchain
  • update basic-http-server to use modern crates
  • set up better tracking of regressions - use version-specific tags?
  • create a local (non-Send) alloc/collections crate
  • update research papers on the forge
  • update rust highlight definitions for benchmark game http://www.andre-simon.de/doku/highlight/en/highlight.php