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 blacklist/whitelist Terms #622

Closed

Conversation

allenh1
Copy link
Contributor

@allenh1 allenh1 commented Jul 13, 2020

Given the recent wave of renaming terms to be more inclusive, I thought it might be worth removing the terms "blacklist" and "whitelist".

This PR replaces the terms with "denylist" and "allowlist" respectively (one of the proposed replacements for these terms for Linux kernel), but I would be happy to change this patch to use other terms upon request.

Signed-off-by: Hunter L. Allen <[email protected]>
Signed-off-by: Hunter L. Allen <[email protected]>
@gavanderhoorn
Copy link
Contributor

This doesn't sound like a good change: the packages on the blacklist are not denied anything. They are ignored by the tool during topological ordering, which is something else.

@allenh1
Copy link
Contributor Author

allenh1 commented Jul 14, 2020

This doesn't sound like a good change: the packages on the blacklist are not denied anything.

Which term would you suggest instead? Maybe "skip list"?

@wjwwood
Copy link
Member

wjwwood commented Jul 15, 2020

Perhaps include_list and exclude_list?

@dirk-thomas
Copy link
Contributor

In colcon there is a semantic different between ignoring packages (as if they didn't exist in the file system) and skipping packages (not processing them in the current invocation but considering there effect on e.g. the dependency graph). I don't know the behavior of the existing options in catkin_tools but if they match one of these two it might make sense to align the naming.

Comment on lines +549 to +550
clr("@{cf}Whitelisted Packages:@| @{yf}{allowlisted_packages}@|"),
clr("@{cf}Blacklisted Packages:@| @{yf}{denylisted_packages}@|"),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The labels would need to be updated as well.

# Select the blacklist
blacklist = DEVEL_LINK_PREBUILD_BLACKLIST if prebuild else DEVEL_LINK_BLACKLIST
# Select the denylist
denylist = DEVEL_LINK_PREBUILD_BLACKLIST if prebuild else DEVEL_LINK_BLACKLIST
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missed one here too.

@@ -138,43 +138,43 @@ This can be done with the ``--extend`` option like so:
Whitelisting and Blacklisting Packages
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here

@wjwwood
Copy link
Member

wjwwood commented Jul 15, 2020

These options are most closely related to the ignoring behavior in colcon. It dictates which packages are built or not by default when you don't specify anything else. It's part of the persistent catkin config command. Each invocation can override these though.

If the *blacklist* is non-empty, it will filter the packages to be built in all cases except where a given package is named explicitly.
This means that blacklisted packages will not be built even if another package in the workspace depends on them.
If the *denylist* is non-empty, it will filter the packages to be built in all cases except where a given package is named explicitly.
This means that denylisted packages will not be built even if another package in the workspace depends on them.

.. note::

Blacklisting a package does not remove it's build directory or build
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here.

@allenh1
Copy link
Contributor Author

allenh1 commented Jul 15, 2020

@wjwwood thanks for the review, I'll catch those in my next pass.

@dirk-thomas / @wjwwood ignore_list certainly makes a lot of sense given this context, but I'm not sure what the opposite verb would be? focus_list? build_list?

Glad to hear other suggestions for that one, as I'm not quite sure (I don't really use the whitelist feature).

@dirk-thomas
Copy link
Contributor

I'm not sure what the opposite verb would be? focus_list? build_list?

colcon uses select in that context.

@mintar
Copy link

mintar commented Jul 15, 2020

Also make sure to properly update the verbs. "blacklisted"/"whitelisted" are verbs, but "allowlisted/denylisted"? If you're going with "ignorelist" and "selectlist", use the proper verb forms like "ignored" and "selected".

@wjwwood / @dirk-thomas : Is this change going to be rolled out in released distros? Will there be some kind of backwards compatibility / deprecation warnings / user config migration?

@allenh1
Copy link
Contributor Author

allenh1 commented Jul 15, 2020

"blacklisted"/"whitelisted" are verbs, but "allowlisted/denylisted"? If you're going with "ignorelist" and "selectlist", use the proper verb forms like "ignored" and "selected".

@mintar Yeah, that's a good point. For context, I just looked up what Linux kernel is using to replace "blacklist/whitelist" and applied it in this patch, but it certainly isn't proper English and doesn't really sound all that great (or as @gavanderhoorn pointed out earlier make all that much sense).

catkin config --packages-select [x] [y] [z]

and

catkin config --packages-ignore [x] [y] [z]

seem to be the most in-line with the way colcon is doing things, and the most sensible replacement to me. Sound good?

@wjwwood
Copy link
Member

wjwwood commented Jul 15, 2020

@wjwwood / @dirk-thomas : Is this change going to be rolled out in released distros? Will there be some kind of backwards compatibility / deprecation warnings / user config migration?

I don't know how we'd land the change just yet. I think it would be best to perhaps allow the old arguments to continue to work as aliases to the new arguments, but not document them and perhaps have a deprecation warning.

If we released it, it would likely only impact the Python3 version of catkin_tools I still need to release and so it would limited to some of the newer Ubuntu distributions and only if you use the python3 version in older distros (as it is available). It has no correlation with ROS distributions, since it is a pure Python tool.

@NikolausDemmel
Copy link
Member

If we released it, it would likely only impact the Python3 version of catkin_tools I still need to release and so it would limited to some of the newer Ubuntu distributions and only if you use the python3 version in older distros (as it is available). It has no correlation with ROS distributions, since it is a pure Python tool.

Also would affect pip installs, but those a probably a smaller minority.

I agree some config migration / backwards compatibility / deprecation would be good.

@wjwwood
Copy link
Member

wjwwood commented Jul 24, 2020

I looked at this again for a while this afternoon. I want to get it in a better state in terms of backwards compatibility before I push some new changes. I just wanted to let you know @allenh1 that I was making fixups and stuff so you didn't do the same.

@allenh1
Copy link
Contributor Author

allenh1 commented Jul 24, 2020

@wjwwood thanks for letting me know, sorry for leaving this one get stale. I will have some time this weekend if you need me to do any modifications.

@wjwwood
Copy link
Member

wjwwood commented Jul 24, 2020

It's ok, I'll let you know.

@timonegk
Copy link
Member

Closed in favor of #712.

@timonegk timonegk closed this Feb 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants