Skip to content

Commit 8da9545

Browse files
authored
Adding release and pull request information to contrib guide (#18)
1 parent dfc9839 commit 8da9545

1 file changed

Lines changed: 20 additions & 1 deletion

File tree

CONTRIBUTING.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Most tests require you to [run a mock server](https://github.com/stoplightio/pri
4040
./scripts/mock --daemon
4141
```
4242

43-
The mock serer will run in the background allowing you to run tests from the command line `./gradlew test` or from your IDE.
43+
The mock server will run in the background allowing you to run tests from the command line `./gradlew test` or from your IDE.
4444

4545
To stop the mock server run:
4646
```shell
@@ -62,3 +62,22 @@ To format and fix all issues automatically:
6262
```sh
6363
$ ./scripts/format
6464
```
65+
66+
## Release and pull request process
67+
68+
As mentioned above, most of the code in this repository is generated. So the pull requests process may different from what you are expecting. Here are the steps:
69+
70+
- Custom code changes should target the `next` branch in [`ArcadeAI/arcade-java`](https://github.com/arcadeai/arcade-java).
71+
- Be selective on what you are changing, as this may cause [merge conflicts](https://www.stainless.com/docs/sdks/configure/custom-code) with the generated code.
72+
- Create a new pull request against `next`, CI will build and test it.
73+
- Once it is merged to `next`, and when there have been upstream changes to the OpenAPI spec, you will see a pull request titled "release: <version>" (where `<version>` is the next version to be released)
74+
- Review it, most of the changes will have been generated, make sure the changes from your pull request are included.
75+
- Approve the PR, and merge it.
76+
- The `next` branch will be rebased to `main`, so you will need to rewrite the branch, something like: `git fetch origin next && git reset --hard origin/next`
77+
- Once changes are merged to `main` a CI job will deploy the version to [Maven Central](https://central.sonatype.com/search?q=arcade-java). There may be a delay between the time it is published until the time it shows up in the Maven Central search results.
78+
79+
## Troubleshooting tips
80+
81+
If you are running into issues deploying to Maven Central, run the [`Release Doctor`](https://github.com/ArcadeAI/arcade-java/actions/workflows/release-doctor.yml) CI job, this will check that the required environment variables are set correctly.
82+
83+
The [`CI` workflow](https://github.com/ArcadeAI/arcade-java/blob/main/.github/workflows/ci.yml), includes a couple of `if` statments that look like: `github.repository == 'stainless-sdks/arcade-engine-java'`. These are ONLY used for pre-release builds when the Stainless SDK code is generated. These are NOT used currently (in the future if there are multiple Java project repositories, this Maven repository could be used to test nightly builds). Otherwise, [build from source](#building-the-repository-from-source).

0 commit comments

Comments
 (0)