Skip to content

Commit 6511fcc

Browse files
xBalbinusp0mvn
andauthored
Added section to Contributing.md detailing our desired pre-release code auditing process (osmosis-labs#1848)
* chain json schema added * pre-release code-auditing process docs initialization * prerelease binary creation tool added * fixed a letter-typo in chain-schema * linked to v10 upgrade boilerplate, small phrasing changes * md linter ifxes * Update CONTRIBUTING.md Co-authored-by: Roman <roman@osmosis.team> * Replaced gofmt section with just make-format * Added resource for auto-formatting in Go Co-authored-by: Roman <roman@osmosis.team>
1 parent ad1de7e commit 6511fcc

File tree

1 file changed

+46
-3
lines changed

1 file changed

+46
-3
lines changed

CONTRIBUTING.md

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,51 @@ For v6.x, and v4.x, most PRs to them should go to main and get a "backport" labe
105105
106106
### How to build proto files. (rm -rf vendor/ && make build-reproducible once docker is installed)
107107
108-
You can do rm -rf vendor and make build-reproducible to redownload all dependencies - this should pull the latest docker image of Osmosis. You should also make sure to do make proto-all to auto-generate your protobuf files. Makes ure you have docker installed.
108+
You can do rm -rf vendor and make build-reproducible to redownload all dependencies - this should pull the latest docker image of Osmosis. You should also make sure to do make proto-all to auto-generate your protobuf files. Makes ure you have docker installed.
109109
110-
If you get something like `W0503 22:16:30.068560 158 services.go:38] No HttpRule found for method: Msg.CreateBalancerPool` feel free to ignore that.
110+
If you get something like `W0503 22:16:30.068560 158 services.go:38] No HttpRule found for method: Msg.CreateBalancerPool` feel free to ignore that.
111111
112-
Make sure to also do make all to run all the linting tests before you commit and push, as well as `gofmt`-ing the file you've modified or added to make sure everything still abides by the standards.
112+
You can also feel free to do `make format` if you're getting errors related to `gofmt`. Setting this up to be [automatic](https://www.jetbrains.com/help/go/reformat-and-rearrange-code.html#reformat-on-save) for yourself is recommended.
113+
114+
## Major Release
115+
116+
There are several steps that go into a major release
117+
118+
* Run the [existing binary creation tool](https://github.com/osmosis-labs/osmosis/blob/main/.github/workflows/release.yml). Running `make -f contrib/images/osmobuilder/Makefile release` on the root of the repo will replicate the CI that creates the release folder containing the binaries.
119+
120+
* Make a PR to main, with a cosmovisor config, generated in tandem with the binaries from tool.
121+
* Should be its own PR, as it may get denied for Fork upgrades.
122+
123+
* Make a PR to main to update the import paths and go.mod for the new major release
124+
125+
* Should also make a commit into every open PR to main to do the same find/replace. (Unless this will cause conflicts)
126+
127+
* Do a PR if that commit has conflicts
128+
129+
* (Eventually) Make a PR that adds a version handler for the next upgrade
130+
* [Add v10 upgrade boilerplate #1649](https://github.com/osmosis-labs/osmosis/pull/1649/files)
131+
132+
* Update chain JSON schema's recommended versions in `chain.schema.json` located in the root directory.
133+
134+
### Pre-release auditing process
135+
136+
For every module with notable changes, we assign someone who was not a primary author of those changes to review the entire module.
137+
138+
Deliverables of review are:
139+
140+
* PR's with in-line code comments for things they had to figure out (or questions)
141+
142+
* Tests / test comments needed to convince themselves of correctness
143+
144+
* Spec updates
145+
146+
* Small refactors that helped in understanding / making code conform to consistency stds / improve code signal-to-noise ratio welcome
147+
148+
* (As with all PRs, should not be a monolithic PR that gets PR'd, even though that may be the natural way its first formed)
149+
150+
At the moment, we're looking for a tool that lets us statically figure out every message that had something in its code path that changed. Until a tool is found, we must do this manually.
151+
152+
We test in testnet & e2e testnet behaviors about every message that has changed
153+
154+
We communicate with various integrators if they'd like release-blocking QA testing for major releases
155+
* Chainapsis has communicated wanting a series of osmosis-frontend functionalities to be checked for correctness on a testnet as a release blocking item

0 commit comments

Comments
 (0)