Skip to content
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

Remove objc_proto_library rule #7348

Open
laurentlb opened this issue Feb 4, 2019 · 11 comments

Comments

@laurentlb
Copy link
Member

commented Feb 4, 2019

objc_proto_library is not usable in Bazel. The code is present because it may be used inside Google. We should remove the rule from Bazel and from its documentation (https://docs.bazel.build/versions/master/be/objective-c.html#objc_proto_library).

(tracking bug in Google: b/123888674)

@lberki

This comment has been minimized.

Copy link
Contributor

commented Feb 5, 2019

@lberki

This comment has been minimized.

Copy link
Contributor

commented Feb 5, 2019

What about e.g. apple_binary -> proto_library dependencies?

Removing the rule itself is a trivial amount of work, but it appears that apple_binary and apple_static_library also use the aspect. Does this mean that those rules can't depend directly on proto_library rules?

@aragos

This comment has been minimized.

Copy link
Contributor

commented Feb 5, 2019

apple_binary cannot directly depend on proto_library targets. It does however register an aspect on its transitive dependencies to aid processing of any objc_proto_library target it ends up linking. We'll have to decide whether to remove this code as well (it does nothing without the presence of objc_proto_library) or to leave it in place.

@lberki

This comment has been minimized.

Copy link
Contributor

commented Feb 5, 2019

What does that aspect do then? I mean, objc_proto_library propagates that aspect just as well, so what extra functionality does apple_binary / apple_static_library gain from it?

@sergiocampama

This comment has been minimized.

Copy link
Member

commented Feb 5, 2019

apple_binary propagates the aspect to collect all proto_library sources and other files to generate a comprehensive list of protos and which symbols are required, and at that point generate/compile/link them into the binary.

We'd like to remove the processing done in apple_binary at some point, but disallowing the objc_proto_library rule from Bazel should be orthogonal to that cleanup.

Please ping me for a more in depth description of how objc protos work, if you want to gaze into the abyss.

@lberki

This comment has been minimized.

Copy link
Contributor

commented Feb 6, 2019

Well, I thought it was simpler than that :) My motivation was to also remove the aspect implementation and not just objc_proto_library itself.

Let's continue the discussion on the "Bazel 1.0 and objc_proto_library" thread.

@dnkoutso

This comment has been minimized.

Copy link

commented Apr 24, 2019

Related #1802

@dslomov

This comment has been minimized.

Copy link
Contributor

commented Jul 24, 2019

This P1 bazel 1.0 issue is unassigned. Please assign cc @aragos

@thomasvl

This comment has been minimized.

Copy link
Member

commented Jul 24, 2019

@sergiocampama is working on this

@dslomov

This comment has been minimized.

Copy link
Contributor

commented Sep 2, 2019

Does not seem to be on track for 1.0

@dslomov dslomov removed the bazel 1.0 label Sep 2, 2019

@sergiocampama

This comment has been minimized.

Copy link
Member

commented Sep 3, 2019

objc_proto_library has been deleted from the native codebase, but not all native support has been removed. We would have liked to remove this sooner, but there are still unresolved blockers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants
You can’t perform that action at this time.