Skip to content

Commit d44505a

Browse files
committed
Add Python version and some release docs
1 parent 9eb5a47 commit d44505a

2 files changed

Lines changed: 43 additions & 1 deletion

File tree

.github/workflows/release.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ jobs:
1616
with:
1717
ref: main
1818
- uses: actions/setup-python@v2
19+
with:
20+
python-version: 3.8
1921
- uses: battila7/get-version-action@v2
2022
- name: Update version.txt
2123
run: |

docs/contributing.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ and where the implemented algorithm needs clarification.
133133
- The CI pipeline is triggered by pull requests.
134134
- Runs in a Ubuntu environment provided by GitHub
135135
- 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.
137137

138138
### Our test suite
139139
- 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,
172172
a nice strategy to show (and validate) that you understand what the PR is really
173173
doing is to provide some affirmative comments on its strengths.
174174

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

Comments
 (0)