You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+21-20
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,6 @@ In this page you'll find these guidelines for contributions:
15
15
16
16
-[How to build the libraries](#how-to-build-the-libraries)
17
17
-[How to generate and validate the documentation](#how-to-generate-and-validate-the-documentation)
18
-
-[How to run the website in your local workspace](#how-to-run-the-website-in-your-local-workspace)
19
18
-[How to propose an improvement](#how-to-propose-an-improvement)
20
19
-[Notes](#notes)
21
20
-[How to upgrade Gradle](#how-to-upgrade-gradle)
@@ -55,7 +54,7 @@ Root project 'arrow'
55
54
+--- Project ':arrow-core'
56
55
```
57
56
58
-
2.Append `:build` after the subproject name and run this task. See also Gradle documentation [how to run subproject tasks.](https://docs.gradle.org/current/userguide/intro_multi_project_builds.html#sec:executing_tasks_by_fully_qualified_name)
57
+
2. Append `:build` after the subproject name and run this task. See also Gradle documentation [how to run subproject tasks.](https://docs.gradle.org/current/userguide/intro_multi_project_builds.html#sec:executing_tasks_by_fully_qualified_name)
59
58
60
59
```bash
61
60
./gradlew :arrow-core:build
@@ -127,19 +126,21 @@ for example
127
126
* println("value = $someValue")
128
127
* println("emptyValue = $emptyValue")
129
128
* }
130
-
* ```
129
+
*
131
130
* <!--- KNIT example-option-01.kt -->
132
131
*
133
132
* (...)
134
133
*/
135
134
publicsealedclassOption<outA> {
135
+
136
+
}
136
137
```
137
138
138
139
#### 2. Snippets for broader samples
139
140
140
141
If your snippet is showing examples on how to use the public APIs in a broader scenario (like describing FP patterns or similar), then you'll add those snippets to the described docs Markdown file.
141
142
142
-
## How to propose an improvement
143
+
## How to propose an improvement
143
144
144
145
If it's the first time you contribute with a GitHub repository, take a look at [Collaborating with issues and pull requests](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests).
145
146
@@ -149,11 +150,11 @@ Please, follow the link to [create an issue](https://github.com/arrow-kt/arrow/i
149
150
150
151
### How to create a pull request
151
152
152
-
The easiest way to contribute to Arrowis to create a branch from a fork, and then create a PR on Github from your branch.
153
+
The easiest way to contribute to Arrow is to create a branch from a fork, and then create a PR on GitHub from your branch.
153
154
154
155
Arrow is a large project that uses several tools to verify that the code is formatted consistently, and that we don't break downstream projects that rely on Arrow's API across versions.
155
156
156
-
For code formatting we use [Spotless](https://github.com/diffplug/spotless/tree/main/plugin-gradle) with [KtFmt](https://github.com/facebookincubator/ktfmt) and for API binary compatibility we use [Binary Compatibility Validator](https://github.com/Kotlin/binary-compatibility-validator). They need to run before you commit and push your code to Github.
157
+
For code formatting we use [Spotless](https://github.com/diffplug/spotless/tree/main/plugin-gradle) with [KtFmt](https://github.com/facebookincubator/ktfmt) and for API binary compatibility we use [Binary Compatibility Validator](https://github.com/Kotlin/binary-compatibility-validator). They need to run before you commit and push your code to GitHub.
157
158
158
159
If you've included those changes for binary compatibility and formatted the code correctly it's time to open your PR and get your contribution into Arrow. Thanks ahead of time for your effort and contributions 🙏
159
160
@@ -180,7 +181,7 @@ Note: if, when running `build`, you see the following error:
180
181
> Task :arrow-core:apiCheck FAILED
181
182
```
182
183
183
-
This means you have changed (advertentlyornot) some publicAPI. Inthis case read in the next point below how to resolve this.
184
+
This means you have changed (inadvertently or not) some public API. In this case read in the next point below how to resolve this.
184
185
185
186
* The approval by 2 maintainers of the Arrow Community.
186
187
@@ -234,11 +235,11 @@ This will generate updated `.api` files which you can then manually review (if t
234
235
235
236
Both successful or failed build checks allow to download the tests report to review it:
When merging the pull request, a new SNAPSHOT library will be published into [SonatypeOSSRH](https://oss.sonatype.org/service/local/repositories/snapshots/content/io/arrow-kt/).
242
+
When merging the pull request, a new SNAPSHOT library will be published into [Sonatype OSS](https://oss.sonatype.org/service/local/repositories/snapshots/content/io/arrow-kt/).
242
243
243
244
On the other hand, the documentation for the next version (SNAPSHOT) will be updated:
244
245
@@ -254,7 +255,7 @@ If any of these actions fails, an issue will be created to be solved as soon as
254
255
255
256
The use of Gradle appears in several subprojects: `arrow-core`, `arrow-stack`, etc.
256
257
257
-
However, links are being used so it's just necessary to upgrade Gradle in the project root directory:
258
+
However, links are being used, so it's just necessary to upgrade Gradle in the project root directory:
258
259
259
260
```
260
261
./gradlew wrapper --gradle-version <new-version>
@@ -269,16 +270,16 @@ This short guideline provides all the things to keep in mind when adding a new m
3. Update versions in [the QuickStart section of the website](arrow-site/docs/docs/quickstart/README.md).
21
-
4. Update versions in [the sidebar](arrow-site/docs/_data/doc-versions.yml).
22
20
23
21
When merging that pull request, these things will happen automatically:
24
22
@@ -37,7 +35,7 @@ Then, close and release the Sonatype repository to sync with Maven Central:
37
35
4. Select the staging repository and **Release** to sync with Maven Central
38
36
5.**Drop** and repeat if there are issues.
39
37
40
-
NOTE: [This plugin](https://github.com/gradle-nexus/publish-plugin) provides tasks for closing and releasing the staging repositories. However, that plugin must be applied to the root project and it would be necessary to discard modules for publication. Let's keep this note here to give it a try later on.
38
+
NOTE: [This plugin](https://github.com/gradle-nexus/publish-plugin) provides tasks for closing and releasing the staging repositories. However, that plugin must be applied to the root project, and it would be necessary to discard modules for publication. Let's keep this note here to give it a try later on.
41
39
42
40
### About signing artifacts with GPG/PGP
43
41
@@ -55,22 +53,20 @@ To verify artifacts during **Close** task, the public key must be distributed to
55
53
Context:
56
54
57
55
* Latest release has a bug and `main` branch already has other additional features.
58
-
* A released version has a bug and it's not the latest release.
56
+
* A released version has a bug, and it's not the latest release.
59
57
60
58
How to fix a `<major.minor.patch>` version in some of those contexts:
61
59
62
60
1. Create `release/<major.minor.(patch + 1)>` branch from tag `<major.minor.patch>`.
63
61
2. Apply the fix into the new branch:
64
62
* Via pull request for new changes.
65
63
* Directly for existing changes (cherry-pick).
66
-
3. Check that new `<major.minor.(patch + 1)-SNAPSHOT>` artifacts are deployed into [Sonatype OSSRH](https://oss.sonatype.org/service/local/repositories/snapshots/content/io/arrow-kt/) with the fixes.
64
+
3. Check that new `<major.minor.(patch + 1)-SNAPSHOT>` artifacts are deployed into [Sonatype OSS](https://oss.sonatype.org/service/local/repositories/snapshots/content/io/arrow-kt/) with the fixes.
67
65
4. Try the new `<major.minor.(patch + 1)-SNAPSHOT>` version.
68
66
5. Create a pull request into `main` branch if the fix must be applied to the new versions as well.
69
67
6. Create a pull request into `release/<major.minor.(patch + 1)>` branch to release the fix:
70
68
* Change just `projects.latestVersion` in `arrow-libs/gradle.properties`.
71
69
* Update the version in `README.md`.
72
-
* Update the version in [the QuickStart section of the website](arrow-site/docs/docs/quickstart/README.md).
0 commit comments