Commit Graph

42 Commits

Author SHA1 Message Date
Tobin C. Harding b49e670772
Add backport section to contributing docs
Add a section on how we do backports and what the merge policy is.

Recently I backported a patch by pushing directly to the `0.32.x`
release branch but this is not an optimal process because it leaves no
history on github. Instead PR backports in like we do for patching
`master` but allow one-ACK merging if the backport is a straight cherry
pick of a patch from `master`.
2024-04-19 05:50:32 +10:00
Andrew Poelstra 6c4f5df355
Merge rust-bitcoin/rust-bitcoin#2627: Introduce new one ACK carve-out rule
9b70c65f5d Introduce new one-ack carve out rule (Tobin C. Harding)
42d02fbd66 Merge Refactor and One ACK carve outs (Tobin C. Harding)
ebf5b670d4 Update test script mention (Tobin C. Harding)

Pull request description:

  Update merge carve-out policy and introduce new rule.

  - Patch 1: Fix stale test script mention
  - Patch 2: Merge current carve-outs into a single carve-out with multiple rules
  - Patch 3: Introduce new carve-out rule

  From patch 3:
  ```
      Introduce new one-ack carve out rule

      Our merge process is being artificially slowed down because of a
      combination of:

      - Using merge-commit merging means PRs often have to be rebased with no
        changes but a different merge base (and force pushed).
      - Trivial changes, like fixing nits, are often force pushed also.
      - Force pushes invalidate ACKs
      - Our devs are spread around the world working at different times

      What this means is trivial force pushes often cause multi day delays in
      merging. To try and alleviate this problem introduce an additional rule
      to the One ACK carve-out so that Andrew can merge PRs that have
      previously been ack'ed by another dev and have only minimal changes.
      The definition of "trivial" is subjective which introduces a burden on
      Andrew to not merge stuff willy-nilly but also allows simple changes to
      the original PR (eg fixed nits that the original reviewer suggested).
  ```

ACKs for top commit:
  apoelstra:
    ACK 9b70c65f5d confirmed via range-diff that the commit everyone ACKed and this one differ only in `as` vs `has`

Tree-SHA512: 41898e71e013ac70e41bb4624ce5e5055dc3e7a405dd73d3988f5b02ece104d7fad746203ce8d26a6a33f98b745010fc39e9a4bddb9bcf22267c942a4dac2028
2024-04-01 13:25:49 +00:00
Tobin C. Harding 9b70c65f5d
Introduce new one-ack carve out rule
Our merge process is being artificially slowed down because of a
combination of:

- Using merge-commit merging means PRs often have to be rebased with no
  changes but a different merge base (and force pushed).
- Trivial changes, like fixing nits, are often force pushed also.
- Force pushes invalidate ACKs
- Our devs are spread around the world working at different times

What this means is trivial force pushes often cause multi day delays in
merging. To try and alleviate this problem introduce an additional rule
to the One ACK carve-out so that Andrew can merge PRs that have
previously been ack'ed by another dev and have only minimal changes.
The definition of "trivial" is subjective which introduces a burden on
Andrew to not merge stuff willy-nilly but also allows simple changes to
the original PR (eg fixed nits that the original reviewer suggested).
2024-03-31 11:12:17 +11:00
Tobin C. Harding 42d02fbd66
Merge Refactor and One ACK carve outs
The "One ACK carve-out" has 3 rules and then there is a separate
"Refactor carve-out" that covers things that are not only refactoring -
this makes it hard to reference the carve-outs in github because its a
bit confusing.

Merge the carve-outs into a single "one ACK carve-out" with multiple
rules. Use rule 0 for the original refactor carve-out stuff because it
makes the diff smaller and all good lists start with 0.

Also remove mention of the refactor carve-out from rule 3.
2024-03-23 07:20:49 +11:00
Tobin C. Harding ebf5b670d4
Update test script mention
In the One ACK carve out just say "test scripts" instead of `test.sh`
because we re-named the test scripts recently.
2024-03-23 07:12:06 +11:00
Tobin C. Harding 8bd0394b0a
Document how to write commits
Reviewers often find themselves linking to blog posts to encourage newer
devs to improve their commit logs, we can save everyones time by putting
the links in the contributing docs, then we can just point devs there.
2024-03-14 13:21:26 +11:00
Liam Aharon b9f7462958
Implement infallible for errors
Creates a new macro `impl_from_infallible`, and applies it to custom
error types in the codebase.

Closes #1222.
2024-03-08 16:48:34 +11:00
Tobin C. Harding 41f0a802af
Remove assigned docs
We don't assign issues, remove the incorrect section.
2024-03-06 08:53:29 +11:00
Tobin C. Harding 7ba63fec82
Fix typo 2024-03-06 08:53:14 +11:00
Andrew Poelstra e386cbfadf
ci: delete *test.sh files
These are not run in CI since #2353 and are likely to go out of date. If
we want a script that users can run locally then we should create a new
script that wraps our current CI.
2024-02-28 20:45:56 +00:00
Andrew Poelstra eadc6a6c9e
Merge rust-bitcoin/rust-bitcoin#2207: policy: Add section on standard set of derives
cb42c74f58 policy: Add section on standard set of derives (Tobin C. Harding)
ec1a5a25c7 CONTRIBUTING: Remove stale links (Tobin C. Harding)

Pull request description:

  We can have a standard set of derives to make it easier for new devs to work out what to use and also to help us move towards a uniform set in preparation for crate stabilization.

  This is not me imposing my view but rather a place for the discussion to happen, could have been a discussions topic also? Using "open" instead of "draft" to aid visibility. Probably requires more than the usual amount of acks.

ACKs for top commit:
  apoelstra:
    ACK cb42c74f58
  Kixunil:
    ACK cb42c74f58

Tree-SHA512: b4c4094ea3652e92a5bea90e16f13971202710166524cc15abef5e8318ba5f59df084f5246331870fc641456b49d4e35d266c937375bdc5035f03699a7d4c1b9
2023-12-15 22:47:57 +00:00
Tobin C. Harding cb42c74f58
policy: Add section on standard set of derives
We can have a standard set of derives to make it easier for new devs to
work out what to use and also to help us move towards a uniform set in
preparation for crate stabilization. Mention the new `ordered` crate.
2023-12-15 12:06:37 +11:00
Tobin C. Harding ec1a5a25c7
CONTRIBUTING: Remove stale links
These sections have been removed but still have links in the index.
2023-12-15 12:06:36 +11:00
Tobin C. Harding 472da02c58
policy: Add section on returning Self
Returning `Self` instead of the actual type makes refactoring easier,
especially for error enums.
2023-12-15 10:44:34 +11:00
Andrew Poelstra 50fc63b171
Merge rust-bitcoin/rust-bitcoin#1127: Add policy section to docs
3bebecc7ea Add policy section to docs (Tobin C. Harding)

Pull request description:

  In an effort to consolidate knowledge spread out over time in various places on GitHub add a `Policy` section to `CONTRIBUTING.md`.

  Add initial sections on import statements, errors, rustdocs,attributes, and licensing.

ACKs for top commit:
  apoelstra:
    ACK 3bebecc7ea
  Kixunil:
    ACK 3bebecc7ea

Tree-SHA512: fb1afd220a0afae962cd9c7a01df7d440eaa1406b446765af209e3b7840b36aa8a1254d57f9ff0c3783479111470828da3c76b5858ce5969519c96cdba71c7f3
2023-11-16 13:40:10 +00:00
Vojtěch Toman e3f2c4fa43
Fix broken link in CONTRIBUTING.md 2023-11-15 21:03:56 +01:00
Tobin C. Harding 3bebecc7ea
Add policy section to docs
In an effort to consolidate knowledge spread out over time in various
places on GitHub add a `Policy` section to `CONTRIBUTING.md`.

Add initial sections on import statements, errors, rustdocs,attributes,
and licensing.
2023-10-31 08:03:28 +11:00
Einherjar d391ada5b8
ci: nightly rustfmt PR scheduled/manual 2023-10-22 05:34:16 -03:00
Andrew Poelstra fc52fd9ced
Merge rust-bitcoin/rust-bitcoin#2045: Use correct terminology: carve out
b229fd5555 Use correct form for noun: carve-out (Tobin C. Harding)

Pull request description:

  One "carves out" something, not "carve output" - woops.

ACKs for top commit:
  apoelstra:
    ACK b229fd5555

Tree-SHA512: 196c5c239da35a67b83eb96f2f9346af6518af51ff6bb4a9e40cddab8c8511f2e913278a9727bfe4e97d50c58cb87a4100e40c13c8313643b04a2d0fabaaa9e5
2023-09-21 16:55:44 +00:00
Tobin C. Harding 4222e4d817
Add one-ack carve outside
In an effort to reduce review burden add so strict rules defining 3
times where we think it is acceptable for code to be merged with a
single ACK. Feels a bit like we only just added the refactor carve out
and now we are adding more carve outs, so whats next? We should take
these rules seriously, if we are to be taken seriously.
2023-09-04 08:17:22 +10:00
Tobin C. Harding b229fd5555
Use correct form for noun: carve-out
One is said to "carve out" something, not "carve output" - woops.
However, when used as a noun its written "carve-out".
2023-09-04 08:10:24 +10:00
Tobin C. Harding 55be538dac
policy: Add refactor carve out
I have managed to burn out or bore our reviewers/maintainers. Getting
two acks is becoming increasingly difficult. I've pestered everyone to
the limit that I feel socially comfortable doing so am requesting a
carve out to the 2-ACK before merge rule.

The primary justification is that I feel we should have a bit more of
BDFL and a bit less total consensus if we are to push forwards.
2023-07-18 09:58:55 +10:00
Martin Habovstiak c4c64c0dc5
Test with minimal dependency versions
It could happen that we unknowingly depend on a new version of a crate
without updating `Cargo.toml`. This could cause resolution issues for
downstream users. It's also unclear for outsiders to see which
dependencies we tested the crate with.

This change commits two lock files: `minimal` and `recent`. `minimal`
contains minimal depdendency versions, while `recent` contains
dependency versions at the time of making the change.

Further, this adds CI jobs to test with both lock files, CI job for
`internals` crate, removes old `serde` pinning and prints a warning if
`recent` is no longer up to date. (We may have to override it somehow if
any crate breaks MSRV.)

The documentation is also updated accordingly.

Co-developed-by: Tobin C. Harding <me@tobin.cc>

Closes #1230
2023-05-03 08:06:46 +10:00
Tobin C. Harding fe83ee6061
Update testing section
The testing section in `CONTRIBUTING.md` is stale, update it to point
readers towards the readme.
2023-03-21 15:29:32 +11:00
Tobin C. Harding 55312f2972
Update contributing docs re cargo fmt
Now that we use `cargo fmt`, update the section in the contributing
documentation.
2023-03-07 08:58:13 +11:00
Andrew Poelstra 779668879d
Merge rust-bitcoin/rust-bitcoin#1125: Update docs on rustfmt
b7eea6cb26 Update docs on rustfmt (Tobin C. Harding)

Pull request description:

  We have introduced `rustfmt` but forgot to update the docs section about
  it. Since a large portion of the codebase is currently ignored by our
  `rustfmt` configuration, point out that `rusntfmt` is work in progress.

ACKs for top commit:
  apoelstra:
    ACK b7eea6cb26
  Kixunil:
    ACK b7eea6cb26

Tree-SHA512: c3a01e38e9787f7554847c657de8d2aeb512f237f68e97973ffa04e92decd282126abf16edb369c13dbeb9eed3587e20dbfb3ab77e06551a006a7aa2c70a71ad
2022-09-14 13:34:49 +00:00
Tobin C. Harding b7eea6cb26 Update docs on rustfmt
We have introduced `rustfmt` but forgot to update the docs section about
it. Since a large portion of the codebase is currently ignored by our
`rustfmt` configuration, point out that `rusntfmt` is work in progress.
2022-07-26 17:20:00 +10:00
Tobin C. Harding fe840f0b42 Fix stale toolchain docs
We have docs that use an env var `BITCOIN_MSRV` that no longer exists.
Point readers towards `RUSTUP_TOOLCHAIN`.

(Note that we still use `TOOLCHAIN` in the script but it is being phased
out, `RUSTUP_TOOLCHAIN` works today.)
2022-07-26 11:09:47 +10:00
Tobin C. Harding 73b506e149 Remove stale MSRV docs
We have stale docs referring to the old MSRV. We do not need MSRV docs
in `CONTRIBUTING` because we have them in the README already.

Fix stale docs by doing:
- Remove the MSRV docs from readme in favour of `CONTRIBUTING.md`.
- Add a sentence to the redame pointing readers towards `CONTRIBUTING.md`.
2022-07-26 11:04:45 +10:00
Martin Habovštiak 7743be00cf
Removed edition change heads up from CONTRIBUTING
It is done.
2022-06-09 15:26:49 +02:00
Tobin C. Harding b5a76e0434 Remove dr-orlovsky from maintainer list
Dr Orlovsky is no longer maintaining rust-bitcoin projects. Remove his
name from the maintainer list.
2022-05-11 07:17:47 +10:00
Martin Habovstiak bd36d846f2 Add temporary warning about edition change
This warns contributors about possible rebases. Changing CONTRIBUTING
should ensure that GitHub will display special warning. This will be
removed after migration is done.
2022-04-20 20:15:49 +02:00
Tobin Harding 3786680cc7 Use correct script name
The test script is incorrectly named in our contributor docs. Fix it up
with the correct name.
2022-03-08 15:23:51 +11:00
Tobin Harding 42e10ff132 Only use two newlines before level 2 headings
In an attempt help maintain visual structure only use two newlines
before level 2 headings.
2022-01-19 11:14:21 +11:00
Tobin Harding 9be2fb6088 Remove Sebastian from maintainers list
Sebastian requested by email to be step down from the position of
maintainer of `rust-bitcoin`.
2022-01-19 11:12:09 +11:00
Tobin Harding 9407d103c5 Be uniform in heading spacing
We currently sometimes have one newline before headings and sometimes
two, its not important which it is but uniformity is nice.

Use two newlines before headings uniformly in `CONTRIBUTING.md`.
2022-01-18 09:59:22 +11:00
Tobin Harding af9389d724 Add Kixunil, RCassata, and tcharding to maintainers
We recently added `CONTRIBUTING.md` but forgot to add Martin, Ricardo.
Also a couple days ago Tobin was added to the repo.
2022-01-18 09:58:47 +11:00
Dr Maxim Orlovsky 31c49832b7 Fix IRC log record on gnusha.org 2022-01-13 17:59:20 +01:00
Dr Maxim Orlovsky e1c8e13cb8 Contributing: improving language and style 2022-01-10 22:14:17 +01:00
Dr Maxim Orlovsky 45dbaa7e26 Contributing: remove derivation section 2022-01-10 17:53:52 +01:00
Dr Maxim Orlovsky 313ac7d4a8 Contributing: improve formatting section 2022-01-10 17:53:52 +01:00
Dr Maxim Orlovsky 78d1a82769 Contributing guidelines 2022-01-10 17:53:26 +01:00