-
Notifications
You must be signed in to change notification settings - Fork 179
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
Rename sets.bzl to old_sets.bzl #70
Conversation
@c-parsons Shall we use Also, are we going to keep the name |
Do you want to assert the alpha state of skylib? Maybe it is an opportunity to establish a process for making breaking changes to the API? I'm not saying that is has to go as far as, for example, Abseil does. I think there should be 3 stages:
|
My initial thought is that we may be able to skip (1) in your proposal. I think it is a nice-to-have for users to be able to use old libraries, but I think we want to aggressively stress that users of skylib upgrade to the new functionality ASAP, as soon as they upgrade. One reason we should strive to avoid branching is that it would be unfortunate, as a user, to depend on two libraries A and B, where A depends on the old version of the library, and the B depends on the new version -- there may be significant incompatibility there. As for Sorry, this become a longwinded monologue about our options. Here's my stance (but I'm certainly willing to discuss and debate this further):
|
Right, I haven't thought of dependencies using different skylib versions. I think that in (1) everything should still work. For (2) I see there a way to use a dummy rule in WORKSPACE as an @c-parsons Are there currently any plans for stabilizing skylib API? I find it surprising, that the standard library for Bazel doesn't use a process similar to Bazel's backward compatibility At some point a process for skylib should be established and the same tools could be used by skylib users for their API changes. Let's say we have a
Maybe a more generic name could be used - With these methods, the process would be:
|
Bazel's backward compatibility mechanism is pretty new and we're still figuring out the details. I agree that Skylib should be more stable, and we definitely have a more stable approach before Bazel 1.0. That being said, this |
Sorry, I don't quite understand this proposal. Perhaps a somewhat full example would help my understanding? (Feel free to share a Google Doc, as inlining on a github issue might be difficult to share something rigorous) I'll respond to your other comments, though:
To clarify, I'm concerned with two libraries depending on the same release version of skylib, but with different deprecation policies. We have to be aware of interop between the "deprecated" way and the "new" way. In contrast, we do not have this requirement for bazel's Starlark semantics, because we know that, in a single build, a user must choose the semantics (they need to specify a consistent flag across the build).
The policies may need be different because the requirements, ecosystems, and integration points are different. I've highlighted one difference above: that we don't need to worry about semantic interop in Bazel. Another is that (Concretely, if Bazel deprecates an API for removal, we must remove our dependence on it from |
@c-parsons Which parts of this change are you willing to approve?
|
Lets take a step back. I may be missing some overall context here -- why are we deprecating Proposed a CONTIBUTORS change in #72 , because I also need to be in CONTRIBUTORS :) |
Look up the PR that created |
Got it. I understand much better now, thanks. I would opt for:
No print-deprecation warning needed.
How does this sound? |
@c-parsons Sounds good. Is there a tool that helps with mass refactoring of github repos? |
Alas, I know of no such tool to deal with cross-repo refactoring. Lets address some major ones manually. Other repositories can follow themselves, and aren't forced to until they would update to the next |
Can you merge this? I don't have write access. |
No description provided.