-
Notifications
You must be signed in to change notification settings - Fork 543
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release version 1.0 #1361
Comments
Do we want #1360 as well? This is a big change to have after a 1.0 release. It is more a 1.1. |
Nah, it's separate from 1.0 requirements. The key point of these 1.0 requirements are rules_python being able to control its implementation and establishing a framework for how to move forward. The latter is necessary to create predictability and plan for the future (something both maintainers and users need). The former is a basic necessity (it's hard to support or address anything when half our implementation isn't under our direct control and has 3 to 9 month lead times with an order of magnitude higher barrier to entry).
We're going to have a variety of other large changes, too, as we address some of the hairy issues (pip support, bzlmod, cross-building, patch-level-Python-version specificity, etc etc). So I'm not really worried about having to release a 1.1, or 2.0, or etc in the future. Creating sustainable and predictable processes for that is what's important. |
This adds a changelog in a keepachanglog.com style format. It's initially populated with currently unreleased behavior and the last release's (0.24.0) changes. Work towards bazelbuild#1361
This adds a changelog in a keepachanglog.com style format. It's initially populated with currently unreleased behavior and the last release's (0.24.0) changes. Work towards bazelbuild#1361
This adds a changelog in a keepachanglog.com style format. It's initially populated with currently unreleased behavior and the last release's (0.24.0) changes. Work towards #1361
This just writes down our support policies and puts them in a single location in the hosted docs. Summarized: * Bazel version support is as discussed from the maintainers meeting: upcoming, current, and last versions * Reference the Bazel rule compatibility guidelines (always having an incremental path to upgrade) * Described what experimental features mean. * Only support the latest rules_python version; older ones are best effort. * Only support platforms CI can run. Work towards #1361
This issue has been automatically marked as stale because it has not had any activity for 180 days. It will be closed if no further activity occurs in 30 days. |
Can the maintainers give an update on this? Breaking changes have been a major obstacle for my clients, and not having a stable Python ruleset is inhibiting the Bazel ecosystem generally. Perhaps it's part of this issue to remove "NOTE: bzlmod support is still beta. APIs subject to change." from release notes as well? |
We have had a breaking change policy that we created to avoid causing too much pain for the users when we have to make a change. Do you have examples of what breaking changes were painful to your clients when going from one release to another? I would be interested in learning about them so that we can avoid breaking things in a similar way. Given the current bzlmod state of things, I think we can discuss this issue in our next maintainer meeting. |
A summary of things that we discussed in the maintainers meeting:
EDIT: added to the top comment. |
Yes please. My favorite candidate is
Yes for all of those items in the list. I don't think
Should we consider going 1.0 after Bazel 8 is released later this year? Then that is our baseline LTS? I think we need to be more strict when we receive issues and cover what "supported" means. If we follow what bazel does, new features are added to to the rolling HEAD and the LTS bumps. But releases in maintenance mode are not automatically added. Only serious bug fixes and security fixes are backported. Some other items for consideration:
|
Hi @aignas - any update to this since the last two months? I'd like to ship our 1.0 of aspect_rules_py, but since it's a layer on top of rules_python we cannot give any stability guarantee in practice until our dependency does. |
We are getting closer, but not yet ready to release 1.0 as we need to finish/stabilize the python and pip extension APIs and potentially the py_binary implementation based on the two stage bootstrap. Can't give you an ETA for those things right now, but we can discuss this more in our upcoming maintainers meeting. What APIs are you depending on? Maybe we could prioritize stabilizing those first so that you could give your users the stability guarantees? EDIT: One extra thing that we have discussed about is that we should release 1.0 when bazel 8.0 is released as that will allow us to build on a stable foundation - |
A quick update that we will finish the work on |
Before this PR the users could not override how the hermetic toolchain is downloaded when in `bzlmod`. However, the same APIs would be available to users using `WORKSPACE`. With this we also allow root modules to restrict which toolchain versions the non-root modules, which may be helpful when optimizing the CI runtimes so that we don't waste time downloading multiple `micro` versions of the same `3.X` python version, which most of the times have identical behavior. Work towards bazelbuild#2081 and this should be one of the last items that are blocking bazelbuild#1361 from the API point of view.
Before this PR the users could not override how the hermetic toolchain is downloaded when in `bzlmod`. However, the same APIs would be available to users using `WORKSPACE`. With this we also allow root modules to restrict which toolchain versions the non-root modules, which may be helpful when optimizing the CI runtimes so that we don't waste time downloading multiple `micro` versions of the same `3.X` python version, which most of the times have identical behavior. Whilst at it, tweak the `semver` implementation to allow for testing of absence of values in the original input. Work towards bazelbuild#2081 and this should be one of the last items that are blocking bazelbuild#1361 from the API point of view.
Tossing a minor one here: Whatever migration this refers to was surely completed by now? |
Before this PR the users could not override how the hermetic toolchain is downloaded when in `bzlmod`. However, the same APIs would be available to users using `WORKSPACE`. With this we also allow root modules to restrict which toolchain versions the non-root modules, which may be helpful when optimizing the CI runtimes so that we don't waste time downloading multiple `micro` versions of the same `3.X` python version, which most of the times have identical behavior. Whilst at it, tweak the `semver` implementation to allow for testing of absence of values in the original input. Work towards #2081 and this should be one of the last items that are blocking #1361 from the API point of view. Replaces #2151. --------- Co-authored-by: Richard Levasseur <[email protected]>
This avoids the tag being added when it doesn't need to be, which can look confusing to users without context about what it means. Work towards bazelbuild#1361
I've sent PR #2257 to remove the migration tag when the rules_python implementation is enabled (basically when using Bazel 7+).
Mostly, yeah. We're just waiting to drop Bazel 6 support at this point. Under Bazel 6, that special migration tag is used to so the Once Bazel 8 comes out, we can drop Bazel 6, and all that logic can go away entirely. |
This is documenting the current state and closing the last remaining TODO items for 1.0 release. Work towards bazelbuild#1361.
This is documenting the current state and closing the last remaining TODO items for 1.0 release. Work towards bazelbuild#1361.
A quick update here, the only blocking thing for 1.0 IMHO is #2268. I have a plan to address that at least, so once that is done we'll do a |
This is documenting the current state and closing the last remaining TODO items for 1.0 release. Work towards #1361. --------- Co-authored-by: Greg Roodt <[email protected]> Co-authored-by: Richard Levasseur <[email protected]>
Quick update #2325 and #2369 will be merged before we release 1.0. There will be breaking changes, so the last |
With this PR we are changing the defaults in the upcoming `0.39` version, and if all goes well, the release after that will be `1.0`. Work towards #1361
…2406) Before this PR we would shell out to `uname` on UNIX systems to get the `arch` of the toolchain - on Windows we would not need to do it because there used to be only a single Windows platform. With this change we can correctly support the resolution of the python interpreter on various platforms and I have also added an env variable to customize the selection, so that users can use `musl` or a `freethreaded` interpreter if they wish. As part of this change, I have restricted visibility of the config settings used in the toolchain alias repo so that we are creating fewer targets. This is a very good time to do this before `1.0.0`. Fixes #2145 Work towards #2276 Work towards #2386 Work towards #1211 to unblock #2402 Work towards #1361 --------- Co-authored-by: Richard Levasseur <[email protected]>
Alternatives have existed for a long time and we just ensure that we remove before the 1.0 release. Summary: - remove pip_install_dependencies - remove DEFAULT_PYTHON_VERSION from interpreters.bzl Work towards #1361
The milestone says that the next release should be 1.0. |
Hello all, I have just tagged the first release candidate for |
I’ve tagged rules_python 1.0.0-rc1 for the changes since the last RC see here. The changelog for the entire release is in our online docs here. You should be able to download it via |
This issue is for tracking the effort to release a version 1.0 of rules_python.
There are several reasons for wanting to have a major version release:
Anyways, there's a few large items to complete before a 1.0 release can be considered:
visible and accessible to users, even if weren't intended so. This is especially true for
rules_python, which carries various legacy and historical behaviors.
of newer functionality and reduce the size of the test/support matrix
EDIT: additional scope
Renamepip_parse
to something else.gazelle
as experimental or splitting the versioning scheme so that it is clear that it does not have similar semver guarantees.pip.parse
APIs as experimental and to stabilize later.bzlmod
first andWORKSPACE
is something that needs to be supported until bazel 9 is the lowest supported version. It's OK to have new features inbzlmod
only, butWORKSPACE
has to be present. PRs would be welcome forWORKSPACE
additions.TOOL_VERSIONS
for thepython
bzlmod extension to have API parity.The text was updated successfully, but these errors were encountered: