This web application shows people who have contributed to Rust.
You need stable Rust to run Thanks.
$ git clone https://github.com/rust-lang-nursery/thanks $ cd thanks
Set up the database URL. Replace this with whatever credentials you need.
$ cp .env.sample .env
Inspect it to make sure it's set up the right way; only you can know what's up with your local postgres install.
$ cargo install diesel_cli --no-default-features --features postgres $ diesel setup $ cargo build
Clone down the Rust repository somewhere. I put mine in
$ cd ~/src $ git clone https://github.com/rust-lang/rust
Import data from the repo:
$ cd - # go back to our app $ cargo run --bin populate -- \ --name Rust \ --github rust-lang/rust \ --url https://github.com/rust-lang/rust/ \ --path ~/src/rust # or wherever you put the Rust source
This will take a few minutes. At the time of writing, Rust has about 61,000 commits that will need to be processed.
Run the server:
$ cargo run --bin thanks
Open your browser to the URL shown.
To access the database from the commannd line:
psql -p 5432 -h localhost -U postgres -d thanks
If you have the database with the old name (
rust_contributors or any
other), you have two options:
- use the old name in the above command, or:
psql -p 5432 -h localhost -U postgres, rename the database by running
ALTER DATABASE rust_contributors RENAME TO thanksand edit
.envfile to use the new name.
If you're working on the
populate binary, it's useful to be able to quickly
drop your local database:
$ cargo run --bin the-big-red-button -- --all
You can also delete only one project by passing
--name NAME option.
When it's time for a new release,
$ cargo run --bin new-release -- --name Rust --version 1.15.0 --path ~/src/rust # or wherever your Rust is --link http://link/to/changelog
As often as you want to update, run
$ cargo run --bin update-commit-db
This will hit GitHub's API instead of using a local checkout of Rust, as it is assumed that this will run on the server, and we don't want to do a full git checkout there.
To hide someone from the page, you can run
opt-out binary (append an
--opt-in option to that if you want to revert the change)):
cargo run --bin opt-out -- --email email@example.com