diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4d5e348b4b64fc1bd2f1f294364c635aba9a01b7..ce4b28bc4050395b20aceba95e34ae70fd3333b1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,12 +5,47 @@ Discussion about the Iris Coq development happens on the mailing list in the [Iris Chat](https://mattermost.mpi-sws.org/iris). This is also the right place to ask questions. The chat requires an account at the [MPI-SWS GitLab](https://gitlab.mpi-sws.org/users/sign_in) (use the "Register" -tab). - -If you want to report a bug, please use the +tab). If you want to report a bug, please use the [issue tracker](https://gitlab.mpi-sws.org/FP/iris-coq/issues), which also -requires an MPI-SWS GitLab account. To contribute code, please send your -MPI-SWS GitLab username to [Ralf Jung](https://gitlab.mpi-sws.org/jung) to -enable personal projects for your account. Then you can fork the +requires an MPI-SWS GitLab account. + +Below, you can find some useful resources and an FAQ. + +* Information on how to set up your editor for unicode input and output is + collected in [Editor.md](Editor.md). +* The Iris Proof Mode (IPM) / MoSeL is documented at [ProofMode.md](ProofMode.md). +* Naming conventions are documented at [Naming.md](Naming.md). + +## How to submit a pull request + +To contribute code, please send your MPI-SWS GitLab username to +[Ralf Jung](https://gitlab.mpi-sws.org/jung) to enable personal projects for +your account. Then you can fork the [Iris git repository](https://gitlab.mpi-sws.org/FP/iris-coq/), make your -changes in your fork, and create a merge request. +changes in your fork, and create a merge request. Please do *not* use the +master branch of your fork, that might confuse CI. Use a feature branch +instead. + +## How to update the std++ dependency + +* Do the change in std++, push it. +* Wait for CI to publish a new std++ version on the opam archive, then run + `opam update iris-dev`. +* In Iris, change the `opam` file to depend on the new version. +* Run `make build-dep` (in Iris) to install the new version of std++. + You may have to do `make clean` as Coq will likely complain about .vo file + mismatches. + +## How to write/update test cases + +The files in `tests/` are test cases. Each of the `.v` files comes with a +matching `.ref` file containing the expected output of `coqc`. Adding `Show.` +in selected places in the proofs makes `coqc` print the current goal state. +This is used to make sure the proof mode prints goals and reduces terms the way +we expect it to. You can run `MAKE_REF=1 make` to re-generate all the `.ref` files; +this is useful after adding or removing `Show.` from a test. If you do this, +make sure to check the diff for any unexpected changes in the output! + +Some test cases have per-Coq-version `.ref` files (e.g., `atomic.8.8.ref` is a +Coq-8.8-specific `.ref` file). If you change one of these, remember to update +*all* the `.ref` files. diff --git a/README.md b/README.md index 9ac050820db8e3065277fad3063c782e13790ac6..a08ef686dd89c5bb2d5b3f30196842ab4445523b 100644 --- a/README.md +++ b/README.md @@ -108,33 +108,6 @@ that should be compatible with this version: * [Iris Atomic](https://gitlab.mpi-sws.org/FP/iris-atomic/) is an experimental formalization of logically atomic triples in Iris. -## Notes for Iris Developers - -* Information on how to set up your editor for unicode input and output is - collected in [Editor.md](Editor.md). -* The Iris Proof Mode (IPM) / MoSeL is documented at [ProofMode.md](ProofMode.md). -* Naming conventions are documented at [Naming.md](Naming.md). - -### How to update the std++ dependency - -* Do the change in std++, push it. -* Wait for CI to publish a new std++ version on the opam archive, then run - `opam update iris-dev`. -* In Iris, change the `opam` file to depend on the new version. -* Run `make build-dep` (in Iris) to install the new version of std++. - You may have to do `make clean` as Coq will likely complain about .vo file - mismatches. - -### How to write/update test cases - -The files in `tests/` are test cases. Each of the `.v` files comes with a -matching `.ref` file containing the expected output of `coqc`. Adding `Show.` -in selected places in the proofs makes `coqc` print the current goal state. -This is used to make sure the proof mode prints goals and reduces terms the way -we expect it to. You can run `MAKE_REF=1 make` to re-generate all the `.ref` files; -this is useful after adding or removing `Show.` from a test. If you do this, -make sure to check the diff for any unexpected changes in the output! - -Some test cases have per-Coq-version `.ref` files (e.g., `atomic.8.8.ref` is a -Coq-8.8-specific `.ref` file). If you change one of these, remember to update -*all* the `.ref` files. +## Notes for Iris Contributors + +See the [contribution guide](CONTRIBUTING.md).