mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-01-12 15:28:29 +01:00
Merge pull request #6411 from commercialhaskell/commenter-setup-help
commenter: ./commenter help script, no need to install the binary
This commit is contained in:
commit
2ec6a53ebb
28
CURATORS.md
28
CURATORS.md
@ -422,20 +422,16 @@ errors for builds, tests and benchmarks.
|
||||
|
||||
### Large scale enabling/disabling of packages
|
||||
|
||||
`etc/commenter` is a binary that mostly automates the translation of
|
||||
`./check` errors into lines that go into `build-constraints.yaml`. It
|
||||
can only handle bounds issues, compilation issues still need to be
|
||||
handled manually.
|
||||
|
||||
It disables all offending packages/test suites/benchmarks, so it is
|
||||
only meant to be used when we close bounds issues and want to disable
|
||||
packages, and when upgrading GHC.
|
||||
`etc/commenter` is a binary that automates `build-constraints.yaml` workflows.
|
||||
|
||||
#### Setup
|
||||
This is currently a rust program, You can install the rust toolchain
|
||||
by using [rustup](https://rustup.rs/).
|
||||
|
||||
Then `cargo install --locked --path etc/commenter`
|
||||
For some commands you also need etc/commenter/latest-version installed.
|
||||
```
|
||||
stack install --stack-yaml etc/commenter/latest-version/stack.yaml
|
||||
```
|
||||
|
||||
#### Example usage
|
||||
|
||||
@ -456,7 +452,7 @@ testing-feat (GHC 9 bounds issues, Grandfathered dependencies) (not present) dep
|
||||
|
||||
Now run:
|
||||
```
|
||||
./check 2>&1 >/dev/null | commenter add
|
||||
./check 2>&1 >/dev/null | ./commenter add
|
||||
```
|
||||
|
||||
You will get this output:
|
||||
@ -483,8 +479,8 @@ Re-run this command until no more packages are disabled.
|
||||
We can periodically remove all packages under the bounds sections and then re-run the disabling flow above until we get a clean plan. This will automatically pick up packages that have been fixed.
|
||||
|
||||
```
|
||||
commenter clear
|
||||
./check 2>&1 >/dev/null | commenter add
|
||||
./commenter clear
|
||||
./check 2>&1 >/dev/null | ./commenter add
|
||||
```
|
||||
|
||||
Repeat the second command until no updates are made to build-constraints.yaml.
|
||||
@ -493,7 +489,7 @@ Repeat the second command until no updates are made to build-constraints.yaml.
|
||||
|
||||
Run `stack update` before doing this.
|
||||
|
||||
`commenter outdated` looks through all bounds issues and library
|
||||
`./commenter outdated` looks through all bounds issues and library
|
||||
compilation failures and compares the marked version with the latest hackage release. Example output is
|
||||
|
||||
```
|
||||
@ -504,7 +500,7 @@ aeson mismatch, auto: 1.5.6.0, hackage: 2.0.2.0
|
||||
where "manual" means the bound was added manually by a curator,
|
||||
perhaps due to a compilation failure so we could try re-enabling the
|
||||
package. "auto" means it's part of the sections generated by
|
||||
`commenter`, to update that run the `Re-enabling` step as documented
|
||||
`./commenter`, to update that run the `Re-enabling` step as documented
|
||||
above.
|
||||
|
||||
`outdated` only finds packages that are in the auto generated
|
||||
@ -520,7 +516,7 @@ To diff existing snapshots, or to evaluate changes before they end up
|
||||
in a snapshot you can run:
|
||||
|
||||
```
|
||||
commenter diff-snapshot <old-snapshot.yaml> <new-snapshot.yaml>
|
||||
./commenter diff-snapshot <old-snapshot.yaml> <new-snapshot.yaml>
|
||||
```
|
||||
|
||||
Existing snapshots can be retrieved from https://github.com/commercialhaskell/stackage-snapshots. Preliminary snapshots can be generated by running relevant parts of `automated/build.sh`, at the time of writing:
|
||||
@ -535,7 +531,7 @@ TARGET=nightly-2021-01-14 \ # the date doesn't matter
|
||||
|
||||
#### Finding disabled packages with lots of dependents
|
||||
|
||||
`commenter disabled` prints the number of transitive dependents a disabled package has. Low hanging fruit to get a lot of packages included again.
|
||||
`./commenter disabled` prints the number of transitive dependents a disabled package has. Low hanging fruit to get a lot of packages included again.
|
||||
|
||||
Example output:
|
||||
```
|
||||
|
||||
20
commenter
Executable file
20
commenter
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if ! command -v cargo
|
||||
then
|
||||
echo "Rust doesn't seem to be installed. https://rustup.rs/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "outdated" ];
|
||||
then
|
||||
if ! command -v latest-version &> /dev/null
|
||||
then
|
||||
echo "This command requires latest-version in your PATH"
|
||||
echo "Install it with: "
|
||||
echo "stack install --stack-yaml etc/commenter/latest-version/stack.yaml"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cargo run -q --release --manifest-path etc/commenter/Cargo.toml $@
|
||||
@ -164,7 +164,7 @@ fn latest_version(packages: impl Iterator<Item = Package>) -> BTreeMap<Package,
|
||||
Command::new("latest-version")
|
||||
.args(packages.map(|p| p.0))
|
||||
.output()
|
||||
.unwrap()
|
||||
.expect("Could not find latest-version in PATH")
|
||||
.stdout,
|
||||
)
|
||||
.unwrap()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user