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

incompatible_use_lexicographical_unordered_output: Incompatible flag for graphless query lexicographical output order #12757

Open
zhengwei143 opened this issue Dec 28, 2020 · 0 comments
Assignees
Labels
incompatible-change Incompatible/breaking change P1 I'll work on this now. (Assignee required) team-Performance Issues for Performance teams type: process

Comments

@zhengwei143
Copy link
Contributor

zhengwei143 commented Dec 28, 2020

Flag: --incompatible_lexicographical_output
Available: Yet to be released
Flipped in: To be confirmed.

Changes

bazel query --order_output=auto will output in lexicographical order.

bazel query --order_output=no will remain unchanged and unaffected (unordered output) by the use of this flag.

Motivation

Currently there is a mismatch in the output order of graphless query and graphless genquery. Graphless query outputs targets in the order they were processed, whereas graphless genquery outputs targets in lexicographical order. This flag is hence added to implement the same lexicographical ordering in graphless query.

Context for the flip

The flag --incompatible_prefer_unordered_output was previously added to allow for unordered output when order_output=auto (when previously this was only the case when order_output=no). This switches query to use a graphless implementation.

The plan is to roll out graphless query as the default implementation eventually (and remove --incompatible_prefer_unordered_output), with the lexicographical ordering as the default ordering.

@aiuto aiuto added the incompatible-change Incompatible/breaking change label Jan 6, 2021
bazel-io pushed a commit that referenced this issue Jan 11, 2021
…ded by a flag --incompatible_use_lexicographical_unordered_output.

The motivation behind this CL is to make consistent the output order between graphless query and graphless genquery, which outputs in unordered and lexicographical order respectively. The goal is to eventually switch to graphless query with lexicographical ordering as the default. This issue #12757 keeps track of the flag on github.

PiperOrigin-RevId: 351107138
@zhengwei143 zhengwei143 self-assigned this Jan 15, 2021
@jin jin added the team-Performance Issues for Performance teams label Jan 19, 2021
bazel-io pushed a commit that referenced this issue Jan 26, 2021
…-order_output=auto.

Previous implementation of --incompatible_use_lexicographical_unordered_output wrongly affects both --order_output=auto and --order_output=no. Renamed the flag for it to make more sense. Github issue for tracking this flag: #12757.

Additionally, using somepath as a top level function (e.g. query "somepath(a, b)") will not be affected by --incompatible_lexicographical_output and will continue to output in dependency order.

PiperOrigin-RevId: 353845699
@meisterT meisterT added type: process P1 I'll work on this now. (Assignee required) labels Feb 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
incompatible-change Incompatible/breaking change P1 I'll work on this now. (Assignee required) team-Performance Issues for Performance teams type: process
Projects
None yet
Development

No branches or pull requests

4 participants