Skip to content

Commit be4ea92

Browse files
Add CONTRIBUTION.md
1 parent 59bb431 commit be4ea92

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

CONTRIBUTION.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Contribution guidelines
2+
## Version convention
3+
We’re conforming [default versions convension](https://semver.org/).
4+
So in the `1.0.0` version each position means follow:
5+
- 1.\*.***major release**, includes API groundbreaking changes (ie: your old code will not work).
6+
- \*.1.***minor release**, we’ve added some new feature to the lib, but we didn’t break something in anyway (ie: everything will work as expected without any moves after update).
7+
- \*.*.1 — **patch release**, we’re haven’t add any breaking changes or even new features for the user, but we’ve fixed some bugs or rewrote something internal (ie: you should not event mention that anything were changed in the lib).
8+
9+
This library yet living within **three weeks minor release** schedule. Also please keep in mind that in sake of avoiding complex merge conflicts, we’re currently taking only **one big feature** in release, so if you want to take some, please drop us a message somewhere to avoiding reworking it after it’ll be broken by some massive merge.
10+
11+
Critical bug fixes are should be marked with appropriate label in PR and should be proceed **within one week** till patch ’ll be released (at least we’ll try our best to made that).
12+
13+
## What task to choose
14+
Please take it from the [roadmap](https://hackmd.io/G5znP3xAQY-BVc1X8Y1jSg) or from the [opened issues](https://github.com/skywinder/web3swift/issues?q=is:issue+is:open+sort:updated-desc "").
15+
16+
> If you want to make something completely new and purely magical, please drop us a message somewhere before, since it could ends up that this is what we planning to do a lot later or that we not planning at all.
17+
18+
## Codestyle guideline
19+
- `swiftlint` check should goes with no warnings.
20+
- Here’s some more detailed and human readable code style [guidelines](https://hackmd.io/8bACoAnTSsKc55Os596yCg "") (you can add there some suggestion if you’d like to).
21+
## Tests guideline
22+
23+
24+
## Hacks & tricks & magic
25+
### TestPlans
26+
In ci/cd we’re using Xcode testplans feature to spread tests to local and remote one.
27+
### Swift package manager
28+
Please add any files unused due build process to `excludeFiles` array in `Package.swift`.
29+
### Carthage
30+
Please do not forget to add & remove all new or droped files and dependencies in carthage `.xcodeproj` file if you’re working with project anywhere but carthage project.
31+
### Cocoapods
32+
Please do not forget to add & remove all dependencies within `web3swift.podspec` file.
33+
### GitHub actions
34+
You’re able to use our github actions checks in your fork without needing to make PR to this repo. To get that just add your branch name to the branch list in file on path `.github/actions/ci.yml` to let the magic happening like follow:
35+
36+
```yml
37+
on:
38+
push:
39+
branches:
40+
- master
41+
- develop
42+
- hotfix
43+
- #YOUR_REPO_NAME#
44+
```
45+
46+
> Please remove your branch from this list before making PR.
47+
48+
## Good PR checklist
49+
### Code
50+
- [ ] All new functionality covered by unit tests.
51+
- [ ] Ci/cd green.
52+
- [ ] No redundant files are added (build cache, Xcode breakpoints settings and so on).
53+
54+
### Info
55+
- [ ] Relative and concrete PR title.
56+
- [ ] Issue or roadmap goal attached.
57+
- [ ] PR description filled with detail explanation of what it is and what’s its specific.
58+
59+
### Codestyle
60+
- [ ] All public method have `///` styled comments.
61+
- [ ] All magic or nonintuitive internal code parts are clearly explained in inline comments.
62+
- [ ] `swiftlint` ran have no warnings.
63+
- [ ] No commented out code lefts in PR.
64+
65+

0 commit comments

Comments
 (0)