xref: /aosp_15_r20/external/bazelbuild-rules_python/DEVELOPING.md (revision 60517a1edbc8ecf509223e9af94a7adec7d736b8)
1# For Developers
2
3## Updating internal dependencies
4
51. Modify the `./python/private/pypi/requirements.txt` file and run:
6   ```
7   bazel run //tools/private/update_deps:update_pip_deps
8   ```
91. Bump the coverage dependencies using the script using:
10   ```
11   bazel run //tools/private/update_deps:update_coverage_deps <VERSION>
12   ```
13
14## Releasing
15
16Start from a clean checkout at `main`.
17
18Before running through the release it's good to run the build and the tests locally, and make sure CI is passing. You can
19also test-drive the commit in an existing Bazel workspace to sanity check functionality.
20
21#### Steps
221. [Determine the next semantic version number](#determining-semantic-version)
231. Create a tag and push, e.g. `git tag 0.5.0 upstream/main && git push upstream --tags`
24   NOTE: Pushing the tag will trigger release automation.
251. Watch the release automation run on https://github.com/bazelbuild/rules_python/actions
261. Add missing information to the release notes. The automatic release note
27   generation only includes commits associated with issues.
28
29#### Determining Semantic Version
30
31**rules_python** is currently using [Zero-based versioning](https://0ver.org/) and thus backwards-incompatible API
32changes still come under the minor-version digit. So releases with API changes and new features bump the minor, and
33those with only bug fixes and other minor changes bump the patch digit.
34
35To find if there were any features added or incompatible changes made, review
36the commit history. This can be done using github by going to the url:
37`https://github.com/bazelbuild/rules_python/compare/<VERSION>...main`.
38
39#### After release creation in Github
40
411. Ping @philwo to get the new release added to mirror.bazel.build. See [this comment on issue #400](https://github.com/bazelbuild/rules_python/issues/400#issuecomment-779159530) for more context.
421. Announce the release in the #python channel in the Bazel slack (bazelbuild.slack.com).
43
44## Secrets
45
46### PyPI user rules-python
47
48Part of the release process uploads packages to PyPI as the user `rules-python`.
49This account is managed by Google; contact [email protected] if
50something needs to be done with the PyPI account.
51