Skip to content

Commit 0c2dde3

Browse files
committed
Auto merge of #3036 - RalfJung:josh-autostart, r=RalfJung
automatically start and stop josh in rustc-pull/push Let's make use of the fact that this is not a shell script any more. :)
2 parents 57277c3 + ee1fbd7 commit 0c2dde3

File tree

7 files changed

+214
-26
lines changed

7 files changed

+214
-26
lines changed

src/tools/miri/.github/workflows/ci.yml

-2
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,6 @@ jobs:
189189
fetch-depth: 256 # get a bit more of the history
190190
- name: install josh-proxy
191191
run: cargo +stable install josh-proxy --git https://github.com/josh-project/josh --tag r22.12.06
192-
- name: start josh-proxy
193-
run: josh-proxy --local=$HOME/.cache/josh --remote=https://github.com --no-background &
194192
- name: setup bot git name and email
195193
run: |
196194
git config --global user.name 'The Miri Conjob Bot'

src/tools/miri/CONTRIBUTING.md

+17-20
Original file line numberDiff line numberDiff line change
@@ -231,25 +231,16 @@ You can also directly run Miri on a Rust source file:
231231
## Advanced topic: Syncing with the rustc repo
232232

233233
We use the [`josh` proxy](https://github.com/josh-project/josh) to transmit changes between the
234-
rustc and Miri repositories.
234+
rustc and Miri repositories. You can install it as follows:
235235

236236
```sh
237237
cargo +stable install josh-proxy --git https://github.com/josh-project/josh --tag r22.12.06
238-
josh-proxy --local=$HOME/.cache/josh --remote=https://github.com --no-background
239238
```
240239

241-
This uses a directory `$HOME/.cache/josh` as a cache, to speed up repeated pulling/pushing.
242-
243-
To make josh push via ssh instead of https, you can add the following to your `.gitconfig`:
244-
245-
```toml
246-
[url "git@github.com:"]
247-
pushInsteadOf = https://github.com/
248-
```
240+
Josh will automatically be started and stopped by `./miri`.
249241

250242
### Importing changes from the rustc repo
251243

252-
Josh needs to be running, as described above.
253244
We assume we start on an up-to-date master branch in the Miri repo.
254245

255246
```sh
@@ -268,16 +259,14 @@ needed.
268259

269260
### Exporting changes to the rustc repo
270261

271-
Keep in mind that pushing is the most complicated job that josh has to do --
272-
pulling just filters the rustc history, but pushing needs to construct a new
273-
rustc history that would filter to the given Miri history! To avoid problems, it
274-
is a good idea to always pull immediately before you push. In particular, you
275-
should never do two josh pushes without an intermediate pull; that can lead to
276-
duplicated commits.
262+
Keep in mind that pushing is the most complicated job that josh has to do -- pulling just filters
263+
the rustc history, but pushing needs to construct a new rustc history that would filter to the given
264+
Miri history! To avoid problems, it is a good idea to always pull immediately before you push. If
265+
you are getting strange errors, chances are you are running into [this josh
266+
bug](https://github.com/josh-project/josh/issues/998). In that case, please get in touch on Zulip.
277267

278-
Josh needs to be running, as described above. We will use the josh proxy to push
279-
to your fork of rustc. Run the following in the Miri repo, assuming we are on an
280-
up-to-date master branch:
268+
We will use the josh proxy to push to your fork of rustc. Run the following in the Miri repo,
269+
assuming we are on an up-to-date master branch:
281270

282271
```sh
283272
# Push the Miri changes to your rustc fork (substitute your github handle for YOUR_NAME).
@@ -287,3 +276,11 @@ up-to-date master branch:
287276
This will create a new branch called 'miri' in your fork, and the output should
288277
include a link to create a rustc PR that will integrate those changes into the
289278
main repository.
279+
280+
If this fails due to authentication problems, it can help to make josh push via ssh instead of
281+
https. Add the following to your `.gitconfig`:
282+
283+
```toml
284+
[url "git@github.com:"]
285+
pushInsteadOf = https://github.com/
286+
```

src/tools/miri/miri-script/Cargo.lock

+125
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,38 @@ version = "1.0.71"
88
source = "registry+https://github.com/rust-lang/crates.io-index"
99
checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
1010

11+
[[package]]
12+
name = "bitflags"
13+
version = "1.3.2"
14+
source = "registry+https://github.com/rust-lang/crates.io-index"
15+
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
16+
17+
[[package]]
18+
name = "cfg-if"
19+
version = "1.0.0"
20+
source = "registry+https://github.com/rust-lang/crates.io-index"
21+
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
22+
23+
[[package]]
24+
name = "directories"
25+
version = "4.0.1"
26+
source = "registry+https://github.com/rust-lang/crates.io-index"
27+
checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210"
28+
dependencies = [
29+
"dirs-sys",
30+
]
31+
32+
[[package]]
33+
name = "dirs-sys"
34+
version = "0.3.7"
35+
source = "registry+https://github.com/rust-lang/crates.io-index"
36+
checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
37+
dependencies = [
38+
"libc",
39+
"redox_users",
40+
"winapi",
41+
]
42+
1143
[[package]]
1244
name = "dunce"
1345
version = "1.0.4"
@@ -20,6 +52,17 @@ version = "1.8.1"
2052
source = "registry+https://github.com/rust-lang/crates.io-index"
2153
checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
2254

55+
[[package]]
56+
name = "getrandom"
57+
version = "0.2.10"
58+
source = "registry+https://github.com/rust-lang/crates.io-index"
59+
checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
60+
dependencies = [
61+
"cfg-if",
62+
"libc",
63+
"wasi",
64+
]
65+
2366
[[package]]
2467
name = "itertools"
2568
version = "0.10.5"
@@ -40,6 +83,7 @@ name = "miri-script"
4083
version = "0.1.0"
4184
dependencies = [
4285
"anyhow",
86+
"directories",
4387
"dunce",
4488
"itertools",
4589
"path_macro",
@@ -62,6 +106,44 @@ version = "1.0.0"
62106
source = "registry+https://github.com/rust-lang/crates.io-index"
63107
checksum = "a6e819bbd49d5939f682638fa54826bf1650abddcd65d000923de8ad63cc7d15"
64108

109+
[[package]]
110+
name = "proc-macro2"
111+
version = "1.0.66"
112+
source = "registry+https://github.com/rust-lang/crates.io-index"
113+
checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
114+
dependencies = [
115+
"unicode-ident",
116+
]
117+
118+
[[package]]
119+
name = "quote"
120+
version = "1.0.33"
121+
source = "registry+https://github.com/rust-lang/crates.io-index"
122+
checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
123+
dependencies = [
124+
"proc-macro2",
125+
]
126+
127+
[[package]]
128+
name = "redox_syscall"
129+
version = "0.2.16"
130+
source = "registry+https://github.com/rust-lang/crates.io-index"
131+
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
132+
dependencies = [
133+
"bitflags",
134+
]
135+
136+
[[package]]
137+
name = "redox_users"
138+
version = "0.4.3"
139+
source = "registry+https://github.com/rust-lang/crates.io-index"
140+
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
141+
dependencies = [
142+
"getrandom",
143+
"redox_syscall",
144+
"thiserror",
145+
]
146+
65147
[[package]]
66148
name = "rustc_version"
67149
version = "0.4.0"
@@ -92,6 +174,43 @@ version = "1.1.0"
92174
source = "registry+https://github.com/rust-lang/crates.io-index"
93175
checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
94176

177+
[[package]]
178+
name = "syn"
179+
version = "2.0.29"
180+
source = "registry+https://github.com/rust-lang/crates.io-index"
181+
checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
182+
dependencies = [
183+
"proc-macro2",
184+
"quote",
185+
"unicode-ident",
186+
]
187+
188+
[[package]]
189+
name = "thiserror"
190+
version = "1.0.47"
191+
source = "registry+https://github.com/rust-lang/crates.io-index"
192+
checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
193+
dependencies = [
194+
"thiserror-impl",
195+
]
196+
197+
[[package]]
198+
name = "thiserror-impl"
199+
version = "1.0.47"
200+
source = "registry+https://github.com/rust-lang/crates.io-index"
201+
checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
202+
dependencies = [
203+
"proc-macro2",
204+
"quote",
205+
"syn",
206+
]
207+
208+
[[package]]
209+
name = "unicode-ident"
210+
version = "1.0.11"
211+
source = "registry+https://github.com/rust-lang/crates.io-index"
212+
checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
213+
95214
[[package]]
96215
name = "walkdir"
97216
version = "2.3.3"
@@ -102,6 +221,12 @@ dependencies = [
102221
"winapi-util",
103222
]
104223

224+
[[package]]
225+
name = "wasi"
226+
version = "0.11.0+wasi-snapshot-preview1"
227+
source = "registry+https://github.com/rust-lang/crates.io-index"
228+
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
229+
105230
[[package]]
106231
name = "which"
107232
version = "4.4.0"

src/tools/miri/miri-script/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ anyhow = "1.0"
2020
xshell = "0.2"
2121
rustc_version = "0.4"
2222
dunce = "1.0.4"
23+
directories = "4"

0 commit comments

Comments
 (0)