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: docs/contributing.md
+41-1Lines changed: 41 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -133,7 +133,7 @@ and where the implemented algorithm needs clarification.
133
133
- The CI pipeline is triggered by pull requests.
134
134
- Runs in a Ubuntu environment provided by GitHub
135
135
- GitHub offers a limited amount of CI pipeline minutes for free.
136
-
- CD would stand for continuous deployment, though we’re not doing that yet
136
+
- CD stands for continuous deployment, check out the "Releasing a new version" section.
137
137
138
138
### Our test suite
139
139
- Code linters are run. This means black and flake8. These are run on everything in speechbrain (the library directory), everything in recipes and everything in tests.
@@ -172,3 +172,43 @@ Fifthly, the code review is a place for professional constructive criticism,
172
172
a nice strategy to show (and validate) that you understand what the PR is really
173
173
doing is to provide some affirmative comments on its strengths.
174
174
175
+
## Releasing a new version
176
+
177
+
Here are a few guidelines for when and how to release a new version.
178
+
To begin with, as hinted in the "Continuous Integration" section, we would like to follow a
179
+
pretty tight release schedule, known as "Continuous Deployment". For us, this means a new
180
+
version should be released roughly once a week.
181
+
182
+
As for how to name the released version, we try to follow semantic versioning for this. More details
183
+
can be found at [semver.org](http://semver.org). As it applies to SpeechBrain, some examples
184
+
of what this would likely mean:
185
+
* Changes to the Brain class or other core elements often warrant a major version bump (e.g. 1.5.3 -> 2.0.0)
186
+
* Added classes or features warrant a minor version bump. Most weekly updates should fall into this.
187
+
* Patch version bumps should happen only for bug fixes.
188
+
189
+
When releasing a new version, there are only two user-initiated action that need to occur.
190
+
First, the `develop` branch should be merged to the `main` branch. This means that
191
+
the `main` branch now includes the latest changes to the repository. Second,
192
+
the `main` branch should be tagged with the new version. This is done by
193
+
navigating to the `Releases` page, drafting a new release, and publishing it.
194
+
195
+
The published release should include a summary of changes from the prior
196
+
version. We have created a GitHub action that is run when the `develop`
197
+
branch is merged with the `main` branch that creates a draft release
198
+
titled "Latest". This draft release should include commits since
199
+
the previous release, but will require some editing to summarize or
200
+
highlight important changes.
201
+
202
+
Publishing a new release kicks off a series of automatic tools, listed below:
203
+
204
+
* The file `version.txt` gets updated with the version (excluding "v") named
205
+
in the release. This update gets pushed to both `main` and `develop` branches.
206
+
* The `main` branch is checked out and used for building a python package.
207
+
* The built package is uploaded to PyPI and the release is published there.
208
+
* Read the Docs uses Webhooks to get notified when a new version is published.
209
+
Read the Docs then builds the documentation and publishes the new version.
210
+
211
+
Maintainers of relevant accounts:
212
+
* Mirco Ravanelli maintains the GitHub and PyPI accounts
213
+
* Titouan Parcollet maintains the website at [speechbrain.github.io](speechbrain.github.io)
214
+
as well as accounts at Read the Docs and Discourse
0 commit comments