Skip to content

Commit 79c9cde

Browse files
committed
README: update development instructions
1 parent 435ff99 commit 79c9cde

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

README.md

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
11
# Materialize fork of Rust-Postgres
22

3-
This repo serves as a staging area in order to develop and use features of the
4-
rust postgtres client before they are accepted upstream.
3+
This repo serves as a staging area for Materialize patches to the
4+
[rust-postgres] client before they are accepted upstream.
55

6-
Since development on this repo and the upstream one can happen in parallel this
7-
repo adops a branching strategy that keeps both in sync and keeps a tidy
8-
history. Importantly, the release branches are **never** forced-pushed so that
9-
older versions of materialize are always buildable.
6+
There are no releases from this fork. The [MaterializeInc/materialize]
7+
repository simply pins a recent commit from the `master` branch. Other projects
8+
are welcome to do the same. The `master` branch is never force pushed. Upstream
9+
changes are periodically into `master` via `git merge`.
1010

11-
## Branching strategy
11+
## Adding a new patch
1212

13-
For every upstream release a local `mz-{version}` branch is created. The latest
14-
such branch should be made the default branch of this repo in the Github
15-
settings.
13+
Develop your patch against the master branch of the upstream [rust-postgres]
14+
project. Open a PR with your changes. If your PR is not merged quickly, open the
15+
same PR against this repository and request a review from a Materialize
16+
engineer.
1617

17-
Whenever a PR is opened it should targed the current release branch (it should
18-
be picked automatically if its set as default on Github).
18+
The long-term goal is to get every patch merged upstream.
1919

20-
Whenever a new version is created upstream a new `mz-{version}` branch on this
21-
repo is created, initially pointing at the release commit of the upstream repo.
22-
Then, all the fork-specific work is rebased on top of it. This process gives
23-
the opportunity to prune PRs that have successfully made it to the upstream
24-
repo and keep a clean per-version history.
20+
## Integrating upstream changes
21+
22+
```shell
23+
git clone https://github.com/MaterializeInc/rust-postgres.git
24+
git remote add upstream https://github.com/sfackler/rust-postgres.git
25+
git checkout master
26+
git pull
27+
git checkout -b integrate-upstream
28+
git fetch upstream
29+
git merge upstream/master
30+
# Resolve any conflicts, then open a PR against this repository with the merge commit.
31+
```
32+
33+
[rust-postgres]: https://github.com/sfackler/rust-postgres.git

0 commit comments

Comments
 (0)