Skip to content

Commit f9b48d4

Browse files
authored
Update contributing guide to mention our monthly release cycle (microsoft#567)
1 parent a3d12db commit f9b48d4

2 files changed

Lines changed: 71 additions & 80 deletions

File tree

CONTRIBUTING.md

Lines changed: 62 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -70,73 +70,48 @@ smoothly, but it allows you to help out by noticing when a step is
7070
missed or to learn in case someday you become a project maintainer as
7171
well!
7272

73+
### Helping others
74+
75+
First and foremost, we try to be helpful to users of the extension.
76+
We monitor
77+
[Stack Overflow questions](https://stackoverflow.com/questions/tagged/visual-studio-code+python)
78+
to see where people might need help. We also try to respond to all
79+
issues in some way in a timely manner (typically in less than one
80+
business day, definitely no more than a week). We also answer
81+
questions that reach us in other ways, e.g. Twitter.
82+
7383
### Iteration/milestone cycle
7484

75-
The extension aims for a two-week cycle with an appropriate
85+
The extension aims to do a new release every month. A
86+
[release plan](https://github.com/Microsoft/vscode-python/labels/release%20plan)
87+
is created for each release to help track anything that requires a
88+
person to do (long term this project aims to automate as much of the
89+
development process as possible). The current issues being worked on
90+
for a release are tracked in a
7691
[milestone](https://github.com/Microsoft/vscode-python/milestones)
77-
which tracks what is actively being worked on/towards the next
78-
release.
79-
80-
#### Tick-tock development process
81-
82-
Modeled after
83-
[Intel's tick-tock model](https://en.wikipedia.org/wiki/Tick-tock_model),
84-
our development cycle oscillates between two different focuses. In a
85-
"tick" cycle, we discuss potential changes to our development cycle.
86-
This allows to constantly improve how we develop the extension rather
87-
than simply let the process stagnate and develop outmodded approaches.
88-
89-
In a "tock" cycle we apply any changes that were agree to by the team
90-
during the previous "tick" cycle. By taking an entire cycle to discuss
91-
and agree to any changes we provide enough time to reflect upon any
92-
proposed changes so we don't make needless changes.
93-
94-
A "tock" cycle also aims to spend a week purely focused on cleaning up
95-
technical debt. This can be in the form of code refactorings, updating
96-
the code to support new checks introduced by TypeScript, etc. The goal
97-
is to keep the code base manageable long-term and to not end up
98-
calcifying any bad practices. This also provides a good opportunity to
99-
apply any development process changes to work that isn't flagged as
100-
time-critical as a new feature may be.
101-
102-
#### Iteration schedule
103-
104-
* Day 1 (Tuesday)
105-
* Leave code freeze from previous cycle
106-
* Incomplete items from the previous cycle are discussed
107-
* Why didn't an item get completed?
108-
* Should it transition to this new cycle or be dropped from the
109-
schedule for now?
110-
* [tick] Discuss if there's any issues with the current
111-
development process
112-
* [tock] Begin applying any changes to the development process as
113-
agreed upon during the previous "tick" cycle
114-
* Day 7 (Monday)
115-
* 3rd-party dependencies frozen
116-
* Ask CELA to update the TPN file
117-
* Day 14 (2nd Monday)
118-
* Update the TPN file as instructed by CELA
119-
* Bump version number
120-
* Code freeze
121-
* Cut a `.vsix` file for testing
122-
* Go through
123-
[issues awaiting validation](https://github.com/Microsoft/vscode-python/issues?q=label%3A%22awaiting+4-validation%22+is%3Aclosed)
124-
& validate they have been fixed (and not subsequently broken by
125-
later changes)
126-
* Update the
127-
[changelog](https://github.com/Microsoft/vscode-python/blob/master/CHANGELOG.md)
128-
* Create a branch for the release
129-
* Unfreeze the `master` branch
130-
* Make sure the
131-
[documentation](https://code.visualstudio.com/docs/python/python-tutorial)
132-
-- including the
133-
[WOW](https://code.visualstudio.com/docs/languages/python) page
134-
-- has [appropriate pull requests](https://github.com/microsoft/vscode-docs/pulls)
135-
* Draft a post for the [team blog](https://aka.ms/pythonblog)
136-
137-
Assuming no last-minute issues, the release should be made public
138-
later that same week. After releasing, the previous release's branch
139-
is turned into a tag and its branch is deleted.
92+
(which is actively updated as plans change).
93+
94+
The overall schedule for a release is to code freeze for on the last
95+
Monday of the month to coincide with Visual Studio Code's code freeze.
96+
We then aim to release later that week so the latest version of the
97+
extension is already live by the time Visual Studio Code launches
98+
their new release. This is so we are ready to use any new features
99+
of Visual Studio Code the day they go live. We do bugfix-only releases
100+
between scheduled releases as necessary.
101+
102+
All development is actively done in the `master` branch of the
103+
repository. It is what allows us to have an
104+
[insiders build](#insiders-build) which is expected to be stable at
105+
all times. We do keep the previous release as a branch in case the
106+
need for a bugfix release arises. But once a new release is made we
107+
convert the older branch into a tag and delete the branch as
108+
Visual Studio Code's automatic updating makes keeping old versions
109+
around unnecessary.
110+
111+
Since we try to spend about 25% of our development time fixing bugs
112+
and removing technical debt, the week of a release is mostly spent
113+
focusing on that topic. That way we don't ignore the health of the
114+
code base by accidentally focusing on new features exclusively.
140115

141116
### Issue triaging
142117

@@ -175,10 +150,8 @@ the issue from being closed.
175150
* [`verification`](https://github.com/Microsoft/vscode-python/labels/awaiting%201-verification):
176151
We need to verify that the issue can be replicated
177152
* [`2-PR`](https://github.com/Microsoft/vscode-python/labels/awaiting%202-PR):
178-
The issue is valid and is now awaiting a pull request to address the
179-
issue
180-
* [`3-merge`](https://github.com/Microsoft/vscode-python/labels/awaiting%203-merge):
181-
A pull request has been created and is currently being reviewed
153+
The issue is valid and is now awaiting a fix to be created and
154+
merged into the `master` branch
182155
* [`4-validation`](https://github.com/Microsoft/vscode-python/labels/awaiting%204-validation):
183156
A pull request has been merged and resolution of the issue should be
184157
independently validated
@@ -197,19 +170,19 @@ it should have an appropriate `closed-` label.
197170
labeled `awaiting 2-PR`
198171
* If no issue exists, open one and wait for it to reach the
199172
`awaiting 2-PR` stage before submitting the pull request
200-
1. Open the pull request, mentioning the appropriate issue(s)
173+
1. Open the pull request, mentioning the appropriate issue(s) in the
174+
pull request message body
201175
* The pull request is expected to have appropriate unit tests
202176
* The pull request must pass its CI run before merging will be
203177
considered
204-
1. [Maintainers only] Update referenced issues to the
205-
`awaiting 3-merge` stage
178+
* Code coverage is expected to not worsen
206179
1. Make sure all status checks are green (e.g. CLA check, CI, etc.)
207180
1. Address any review comments
208181
1. [Maintainers only] Merge the pull request
209182
1. [Maintainers only] Update affected issues to be:
210183
1. Closed (with an appropriate `closed-` label)
211184
1. The stage is set to `awaiting 4-validation`
212-
1. The issue and pull request are attached to the current milestone
185+
1. The issue(s) are attached to the current milestone
213186
1. Register OSS usage
214187
1. Email CELA about any 3rd-party usage changes
215188

@@ -225,16 +198,25 @@ the year (starting at 0). For example, the first release in July 2018
225198
would be `2018.7.0`, the second release that month would be
226199
`2018.7.1`, etc.
227200

228-
### Insiders Build
201+
## Insiders Build
229202

230203
Starting in 2018, we started publishing the latest development
231204
build of the extension onto a cloud storage provider.
232205
If you are interested in helping us test our development builds or would like
233206
to stay ahead of the curve, then please feel free to download and install the
234-
extension from the following [location](https://pvsc.blob.core.windows.net/extension-builds/ms-python-insiders.vsix). Once you have downloaded the [ms-python-insiders.vsix](https://pvsc.blob.core.windows.net/extension-builds/ms-python-insiders.vsix)
235-
file, please follow the instructions on [this page](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix) to install the extension.
236-
237-
The insiders build of the extension:
238-
* Will get replcaed with new releases published onto the [VS Code Marketplace](https://marketplace.visualstudio.com/VSCode).
239-
* Does not get updated with new insider build releases.
240-
* Is built everytime a PR is commited into the [master branch](https://github.com/Microsoft/vscode-python).
207+
extension from the following
208+
[location](https://pvsc.blob.core.windows.net/extension-builds/ms-python-insiders.vsix).
209+
Once you have downloaded the
210+
[ms-python-insiders.vsix](https://pvsc.blob.core.windows.net/extension-builds/ms-python-insiders.vsix)
211+
file, please follow the instructions on
212+
[this page](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix)
213+
to install the extension.
214+
215+
The insiders build of the extension ...:
216+
217+
* Will be replaced with new releases published onto the
218+
[VS Code Marketplace](https://marketplace.visualstudio.com/VSCode).
219+
* Does not get updated with new insider build releases (if you want to
220+
test a newer insiders build, uninstall the old version of the
221+
extension and then install the new version)
222+
* Is built everytime a PR is commited into the [`master` branch](https://github.com/Microsoft/vscode-python).

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Python extension for Visual Studio Code
22

3+
<p align="center">
4+
<a href="https://travis-ci.org/Microsoft/vscode-python">
5+
<img src="https://travis-ci.org/Microsoft/vscode-python.svg?branch=master" />
6+
</a>
7+
<a href="https://codecov.io/gh/Microsoft/vscode-python">
8+
<img src="https://codecov.io/gh/Microsoft/vscode-python/branch/master/graph/badge.svg" />
9+
</a>
10+
</p>
11+
312
A [Visual Studio Code](https://code.visualstudio.com/) [extension](https://marketplace.visualstudio.com/VSCode) with rich support for the [Python language](https://www.python.org/) (_including Python 3.6_), with features including the following and more:
413
* Linting ([Prospector](https://pypi.io/project/prospector/), [Pylint](https://pypi.io/project/pylint/), [pycodestyle](https://pypi.io/project/pycodestyle/), [Flake8](https://pypi.io/project/flake8/), [pylama](https://github.com/klen/pylama), [pydocstyle](https://pypi.io/project/pydocstyle/), [mypy](http://mypy-lang.org/) with config files and plugins)
514
* Intellisense (autocompletion with support for PEP 484 and PEP 526)

0 commit comments

Comments
 (0)