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: .github/maintainers_guide.md
+59-9Lines changed: 59 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Maintaining this project requires installing [OpenJDK](https://openjdk.java.net/
10
10
11
11
### Testing
12
12
13
-
This project has tests for individual packages inside of each's respective `src/test/java` directory. All the tests under `test_locally` package are executed in every single GitHub Actions CI build as below.
13
+
This project has tests for individual packages inside each's respective `src/test/java` directory. All the tests under `test_locally` package are executed in every single GitHub Actions CI build as below.
14
14
15
15
```bash
16
16
./scripts/run_no_prep_tests.sh
@@ -76,9 +76,33 @@ By installing App(2) and App(3), you get the followings. Set them as env variabl
76
76
|SLACK_SDK_TEST_GRID_SHARED_CHANNEL_ID|A shared channel's ID `SLACK_SDK_TEST_GRID_WORKSPACE_ADMIN_USER_TOKEN` can manage.|
77
77
|SLACK_SDK_TEST_EMAIL_ADDRESS|An email address to invite.|
78
78
79
+
### Installing JAR files locally for development
80
+
81
+
To use the JAR files from each subproject in your local development environment, you can install them to your local Maven repository:
82
+
83
+
1. Build and install all modules locally:
84
+
* Run `scripts/install_local.sh`
85
+
* Note: This command skips running unit tests for faster installation
86
+
2. Use in your project:
87
+
Once installed locally, you can reference these artifacts in your project's `pom.xml`:
88
+
89
+
```xml
90
+
<dependency>
91
+
<groupId>com.slack.api</groupId>
92
+
<artifactId>bolt</artifactId>
93
+
<version>1.0.1-SNAPSHOT</version>
94
+
</dependency>
95
+
96
+
<dependency>
97
+
<groupId>com.slack.api</groupId>
98
+
<artifactId>slack-api-client</artifactId>
99
+
<version>1.0.1-SNAPSHOT</version>
100
+
</dependency>
101
+
```
102
+
79
103
### Generating Documentation
80
104
81
-
Refer to the [README](https://github.com/slackapi/java-slack-sdk/blob/main/docs/README.md) for details on editing documentation.
105
+
Refer to the [README](https://github.com/slackapi/java-slack-sdk/blob/main/docs/README.md) for details on editing documentation.
82
106
83
107
### Releasing
84
108
@@ -88,19 +112,24 @@ Refer to the [README](https://github.com/slackapi/java-slack-sdk/blob/main/docs/
88
112
* Make sure you've set up your key https://central.sonatype.org/publish/requirements/gpg/
89
113
* Make sure the account you are using has the permission to make releases [under com.slack groupId](https://central.sonatype.com/publishing/com.slack/users)
90
114
91
-
Place `$HOME/.m2/settings.xml` with your Sonatype account information.
115
+
Place `$HOME/.m2/settings.xml` with your Sonatype account information.
92
116
* Generate user token: https://central.sonatype.org/publish/generate-portal-token/
93
117
* Set the user token id/password: https://central.sonatype.org/publish/publish-portal-maven/#credentials
@@ -109,7 +138,28 @@ Place `$HOME/.m2/settings.xml` with your Sonatype account information.
109
138
</settings>
110
139
```
111
140
112
-
#### Operations
141
+
#### Snapshot Release
142
+
143
+
Snapshot releases are intended for developers to make pre-release versions of their projects available for testing.
144
+
To learn more about snapshot releases in maven central repository check out [publish-portal-snapshots](https://central.sonatype.org/publish/publish-portal-snapshots/)
145
+
146
+
* From the upstream repository
147
+
* Preparation
148
+
*`git switch main && git pull origin main` (or the branch you want to release from)
149
+
* Make sure there are no build failures at https://github.com/slackapi/java-slack-sdk/actions
150
+
* Set a new version
151
+
* It is **critical** that the version ends with `-SNAPSHOT`. This is how [central-publishing-maven-plugin](https://central.sonatype.org/publish/publish-portal-snapshots/#publishing-with-the-central-publishing-maven-plugin) automatically recognizes snapshot releases and uploads them the right location.
152
+
* If you don't have `gnu-sed`, check out [Prerequisites](#prerequisites)
153
+
* Run `scripts/set_version.sh (the version)` (e.g., `scripts/set_version.sh 1.0.0-SNAPSHOT`)
154
+
* Ship the libraries
155
+
* Switch to **JDK 17** to publish all modules (on macOS, you can run `export JAVA_HOME=$(/usr/libexec/java_home -v 17)` for it)
156
+
* Run `scripts/release.sh` (it takes a bit long)
157
+
* (If you encounter an error, log in https://oss.sonatype.org/ to check detailed information)
158
+
* No need to create a GitHub Release, since this is intended for developers to make pre-release versions of their projects.
159
+
*`-SNAPSHOT` versions are intended to be overwritten.
160
+
* This enables developers to work with the latest version of a library without needing to update their dependencies repeatedly.
0 commit comments