src/python/pants/util/objects.py (11 lines): - line 22: # TODO: make some wrapper exception class to make this kind of - line 29: # TODO: remove the `.type_check_error_type` property in `DatatypeMixin` and just have mixers - line 103: # TODO: Ideally we could execute this exactly once per `cls` but it should be a - line 114: # TODO: Make this kind of exception pattern (filter for errors then display them all at once) - line 216: # TODO: consider using the repr of arguments in this method. - line 242: # TODO: look into merging this with pants.util.meta.Singleton! - line 334: # TODO: figure out if this will always trigger on primitives like strings, and what situations - line 393: # TODO: make this error into an attribute on the `TypeConstraint` class object! - line 427: # TODO: disallow overriding this method with some form of mixin/decorator along with datatype - line 551: # TODO: extend TypeConstraint to specify includes and excludes in a single constraint! - line 585: # TODO: consider making this a private method of TypeConstraint, as it now duplicates the logic in src/python/pants/backend/jvm/tasks/jvm_compile/zinc/zinc_compile.py (10 lines): - line 213: # TODO: Make incremental compiles work. See: - line 230: # TODO: Make this work by capturing the correct Digest and passing them around the - line 300: # TODO: Investigate upstream_analysis for hermetic compiles - line 304: # TODO: Support workdirs not nested under buildroot by path-rewriting. - line 312: # TODO: Have these produced correctly, rather than having to relativize them here - line 443: # TODO: Extract something common from Executor._create_command to make the command line - line 444: # TODO: Lean on distribution for the bin/java appending here - line 461: # TODO: These should always be unicodes - line 468: # TODO: Materialize as a batch in do_compile or somewhere - line 473: # TODO: This should probably return a ClasspathEntry rather than a Digest src/rust/engine/fs/brfs/src/main.rs (8 lines): - line 66: // TODO: Find out whether blocks is actaully important - line 225: // TODO: Kick off some background futures to pre-load the contents of this Directory into - line 509: // TODO: Find out whether fh is ever passed if open isn't explicitly implemented (and whether offset is ever negative) - line 527: // TODO: Read from a cache of Futures driven from a CPU pool, so we can merge in-flight - line 563: // TODO: Find out whether fh is ever passed if open isn't explicitly implemented (and whether offset is ever negative) - line 604: // TODO: Work out how to disable caching in the filesystem - line 699: // TODO: Take a command line arg. - line 950: // TODO: Write a bunch more syscall-y tests to test that each syscall for each file/directory type src/python/pants/backend/jvm/tasks/jvm_compile/rsc/rsc_compile.py (7 lines): - line 64: # TODO remove this after https://github.com/scalameta/scalameta/issues/1791 is released - line 182: # TODO: allow @memoized_method to convert lists into tuples so they can be hashed! - line 476: # TODO: remove this dep and fix tests!!! - line 478: # TODO we could remove the dependency on the rsc target in favor of bumping - line 562: # TODO: These should always be unicodes - line 583: # TODO drop a file containing the digest, named maybe output_dir.digest - line 605: # TODO: figure out and document when would this happen. src/python/pants/engine/legacy/graph.py (5 lines): - line 220: TODO: See #5606 about undoing the split between `_inject_addresses` and `_inject_specs`. - line 285: # TODO: Dependencies and implicit dependencies are mapped independently, because the latter - line 362: # TODO: add type-checking to datatype fields in this file! Tuple fields such as 'dependencies' need - line 382: TODO: `include_dependees` should become an `enum` of the choices from the - line 404: # TODO: This matching logic should be implemented using the rust `fs` crate for two reasons: src/python/pants/backend/python/tasks/build_local_python_distributions.py (5 lines): - line 34: # TODO: make this a SimpleCodegenTask!!! - line 85: # TODO: This should probably be made into an @classproperty (see PR #5901). - line 194: # TODO: remove the triplication all of this validation across _get_native_artifact_deps(), - line 284: # TODO: convert this into a SimpleCodegenTask, which does the exact same thing as this method! - line 310: # TODO: is this ever going to happen? src/rust/engine/src/rule_graph.rs (5 lines): - line 122: // TODO: A RootEntry can only have one declared `Select`, and no declared `Get`s, but these - line 228: // TODO: Update to support rendering a subgraph given a set of ParamTypes. - line 799: /// TODO: Move all of these methods to Display impls. - line 887: // TODO: Is it worth indexing this by product type? - line 924: /// TODO: It's not clear what is preventing `Node` implementations from ending up with non-Inner src/python/pants/binaries/binary_util.py (4 lines): - line 113: # TODO: Deprecate passing in an explicit supportdir? Seems like we should be able to - line 327: # TODO: we create a HostPlatform in this class instead of in the constructor because we don't want - line 339: # TODO: test this! - line 410: # TODO: add test for this error! src/python/pants/option/parser.py (4 lines): - line 457: # TODO: Remove dict_option from here after deprecation is complete. - line 685: # TODO: convert this into an enum() pattern match! - line 702: # TODO: run `check()` for all elements of a list option too!!! - line 709: # TODO: convert `member_type` for dict values too! src/rust/engine/src/nodes.rs (4 lines): - line 116: // TODO: Is it worth propagating an error here? - line 145: // TODO: This is a Node only because it is used as a root in the graph, but it should never be - line 706: // TODO: Retry failures - line 1114: // TODO Select nodes are made uncacheable as a workaround to #6146. Will be worked on in #6598 src/python/pants/option/arg_splitter.py (4 lines): - line 18: # TODO: Switch all clients to reference pants.option.scope directly. - line 98: # TODO: Get rid of our reliance on known scopes here. We don't really need it now - line 165: # TODO: Temporary warning. Eventually specifying 'goal' will be an error. - line 258: # TODO: Either fix this or at least detect such options and warn. contrib/cpp/src/python/pants/contrib/cpp/tasks/cpp_compile.py (4 lines): - line 54: # TODO: Parallelise the compilation. - line 55: # TODO: Only recompile source files that have changed since the - line 78: # TODO: include dir should include dependent work dir when headers are copied there. - line 90: # TODO: submit_async_work with self.run_command, [(cmd)] as a Work object. src/python/pants/binaries/binary_tool.py (4 lines): - line 23: # TODO: Add integration tests for this file. - line 57: # TODO: if we need to do more conditional subsystem dependencies, do it declaratively with a - line 125: # TODO: Once we're migrated, get rid of the context arg. - line 138: # TODO: Once we're migrated, get rid of the context arg. src/python/pants/backend/python/rules/python_test_runner.py (4 lines): - line 44: # TODO: Support resources - line 51: # TODO: Inject versions and digests here through some option, rather than hard-coding it. - line 84: # TODO: This is non-hermetic because the requirements will be resolved on the fly by - line 112: # TODO: make TargetAdaptor return a 'sources' field with an empty snapshot instead of raising to src/python/pants/backend/native/tasks/native_compile.py (4 lines): - line 23: # TODO: add type checking for Collection.of()! - line 110: # TODO: add some shading to file names so we can remove this check. - line 204: # TODO: add -v to every compiler and linker invocation! - line 208: # TODO: If we need to produce static libs, don't add -fPIC! (could use Variants -- see #5788). src/python/pants/java/nailgun_executor.py (4 lines): - line 34: # TODO: this should enumerate the .pids dir first, then fallback to ps enumeration (& warn). - line 59: # TODO: Once we integrate standard logging into our reporting framework, we can consider making - line 205: # TODO: share the decreasing timeout logic here with NailgunProtocol.iter_chunks() by adding - line 218: line = ng_stdout.readline() # TODO: address deadlock risk here. src/rust/engine/ui/src/display.rs (4 lines): - line 61: // TODO: Prescribe a threading/polling strategy for callers - or implement a built-in one. - line 62: // TODO: Better error handling for .flush() and .write() failure modes. - line 63: // TODO: Permit scrollback in the terminal - both at exit and during the live run. - line 160: // TODO: If the terminal size is smaller than the action map, we should fall back build-support/travis/travis.yml.mustache (4 lines): - line 58: # TODO: Figure out why we have such large caches (2-7GB) and try to trim them. - line 90: # TODO: Figure out why we have such large caches (2-7GB) and try to trim them. - line 330: # TODO: While this image shouldn't have any cache to fetch anything from, it fails to find - line 647: # TODO: Update this to use 10.14 once it is available src/rust/engine/src/externs.rs (3 lines): - line 192: // TODO: This method is currently unused, but kept as an example of how to call methods on objects. - line 518: /// TODO: An interesting optimization might be possible where we avoid actually - line 627: /// TODO: Because this is only ever passed from Python to Rust, it could just use src/python/pants/engine/legacy/structs.py (3 lines): - line 121: TODO: Replace this with some kind of field subclassing, as per - line 199: TODO: Bundles should arguably be Targets, but that distinction blurs in the `exp` examples - line 236: # TODO: we want to have this field set from the global option --glob-expansion-failure, or src/python/pants/backend/python/targets/unpacked_whls.py (3 lines): - line 39: # TODO: consider introducing some form of source roots instead of the manual `within_data_subdir` - line 71: # TODO: consider supporting transitive deps like UnpackedJars! - line 72: # TODO: consider supporting `platforms` as in PythonBinary! src/python/pants/base/exception_sink.py (3 lines): - line 258: # TODO: we should probably guard this against concurrent modification by other pants - line 469: # TODO: determine the appropriate signal-safe behavior here (to avoid writing to our file - line 488: # TODO: add testing for fatal errors at import-time, which may occur if there are errors in plugins. src/python/pants/backend/native/tasks/link_shared_libraries.py (3 lines): - line 66: # TODO: convert this to a v2 engine dependency injection. - line 82: # TODO: We need to partition links based on proper dependency edges and not - line 91: # TODO: test this branch! src/python/pants/option/options.py (3 lines): - line 110: # TODO: Once scope name validation is enforced (so there can be no dots in scope name - line 175: # TODO: Eliminate this in favor of a builder/factory. - line 442: # TODO: Eagerly precompute backing data for this? src/python/pants/goal/context.py (3 lines): - line 41: # TODO: Figure out a more structured way to construct and use context than this big flat - line 298: # TODO: Adding source roots on the fly like this is yucky, but hopefully this - line 302: # TODO: Set the lang and root category (source/test/thirdparty) based on the target type? src/python/pants/backend/native/targets/native_artifact.py (3 lines): - line 18: # TODO: This should probably be made into an @classproperty (see PR #5901). - line 24: # TODO: check that the name conforms to some format in the constructor (e.g. no dots?). - line 31: # TODO: This fingerprint computation boilerplate is error-prone and could probably be src/rust/engine/graph/src/entry.rs (3 lines): - line 174: // TODO: This is a clone of the Node, which is also kept in the `nodes` map. It would be - line 546: /// TODO: Consider moving the Generation and RunToken out of the EntryState once we decide what - line 560: /// TODO: Consider moving the Generation and RunToken out of the EntryState once we decide what src/python/pants/engine/rules.py (3 lines): - line 178: TODO: This API is slightly awkward for two reasons: - line 304: # TODO: Check that the union base type is used as a tag and nothing else (e.g. no attributes)! - line 412: # TODO: add typechecking here -- would need to have a TypedCollection for dicts for `union_rules`. src/python/pants/option/global_options.py (3 lines): - line 49: TODO: These options should move to a Subsystem once we add support for "bootstrap" Subsystems (ie, - line 214: # TODO: Deprecate the --pantsrc/--pantsrc-files options? This would require being able - line 423: # TODO: After moving to the new options system these abstraction leaks can go away. src/rust/engine/src/context.rs (3 lines): - line 125: // TODO: Take a parameter - line 173: // TODO: Errors in initialization should definitely be exposed as python - line 291: // TODO: Odd place for this... could do it periodically in the background? src/rust/engine/graph/src/lib.rs (3 lines): - line 86: // TODO: Now that we never delete Entries, we should consider making this infalliable. - line 562: // TODO: doing cycle detection under the lock... unfortunate, but probably unavoidable - line 750: /// TODO: We don't track which generation actually added which edges, so over time nodes will end contrib/go/src/python/pants/contrib/go/subsystems/fetcher.py (3 lines): - line 73: # TODO: Support the explicit form if needed. It wouldn't be difficult. - line 92: # TODO: Support other vcs systems as needed. - line 94: # TODO: Do this in a workunit (see https://github.com/pantsbuild/pants/issues/3502). src/rust/engine/process_execution/src/remote.rs (3 lines): - line 127: /// TODO: Request jdk_home be created if set. - line 633: // TODO: Maybe take rather than clone - line 1878: //#[test] // TODO: Unignore this test when the server can actually fail with status protos. src/python/pants/fs/archive.py (3 lines): - line 107: # TODO: test this exception somewhere! - line 125: # TODO: --threads=0 is supposed to use "the number of processor cores on the machine", but I - line 156: # TODO: implement this method, if we ever need it. src/python/pants/backend/jvm/tasks/jar_publish.py (3 lines): - line 607: # TODO Remove this once we fix https://github.com/pantsbuild/pants/issues/1229 - line 613: # TODO Remove this guard once we fix https://github.com/pantsbuild/pants/issues/1229, there - line 623: # TODO: doc products should be checked by an independent jar'ing task, and src/python/pants/backend/native/config/environment.py (3 lines): - line 20: # TODO: try to turn all of these accesses into v2 dependency injections! - line 46: # TODO: since we are calling these methods from other files, we should remove the leading underscore - line 298: # TODO: make this an @rule, after we can automatically produce LibcDev and other subsystems in the src/python/pants/pantsd/pants_daemon.py (3 lines): - line 162: # TODO: https://github.com/pantsbuild/pants/issues/3479 - line 349: # TODO: Consider giving these pipes/actual fds, in order to make them "deep" replacements - line 458: # TODO: Improve error handling on launch failures. src/python/pants/build_graph/build_graph.py (2 lines): - line 110: # TODO: Move this file counting into the `ProductGraph`. - line 122: # TODO: The is_initialized() check is primarily for tests and would be nice to do away with. src/python/pants/backend/jvm/subsystems/zinc.py (2 lines): - line 346: # TODO Remove when action caches are implemented. - line 413: # TODO: We convert dependencies to an iterator here in order to _preserve_ a bug that will be contrib/scalajs/src/python/pants/contrib/scalajs/tasks/scala_js_link.py (2 lines): - line 30: # TODO: revisit after https://rbcommons.com/s/twitter/r/3225/ - line 90: # TODO: scopt doesn't exit(1) when it receives an invalid option, but in all cases here src/python/pants/backend/jvm/tasks/consolidate_classpath.py (2 lines): - line 44: # TODO: use a smarter filter method we should be able to limit the targets a bit more. - line 51: # TODO: find a way to not process classpath entries for valid VTs. src/python/pants/source/source_root.py (2 lines): - line 97: # TODO: Remove this logic. It should be an error to have no matching source root. - line 163: # TODO: When we have a proper model of the concept of a language, these should really be src/python/pants/reporting/html_reporter.py (2 lines): - line 40: TODO: The entire HTML reporting system, and the pants server that backs it, should be - line 288: # TODO consider display causes for hit/miss targets src/rust/engine/src/scheduler.rs (2 lines): - line 135: // TODO: The rust log level is not currently set correctly in a pantsd context. To ensure that - line 311: // TODO Maybe we want to print something else besides the ID here. src/python/pants/backend/project_info/rules/source_file_validator.py (2 lines): - line 80: # TODO: Replace "See documentation" with actual URL, once we have some. - line 211: # TODO: Switch this to `lint` once we figure out a good way for v1 tasks and v2 rules src/python/pants/option/custom_types.py (2 lines): - line 67: # TODO: Replace target_list_option with type=list, member_type=target_option. - line 87: TODO: give the engine more control over matching paths so we don't have to sanitize the input! src/python/pants/backend/codegen/antlr/python/antlr_py_gen.py (2 lines): - line 27: # TODO: Refactor this and AntlrJavaGen to share a common base class with most of the functionality. - line 73: # TODO: Deprecate the antlr_version argument to PythonAntlrLibrary and replace src/python/pants/backend/jvm/tasks/jvm_compile/jvm_compile.py (2 lines): - line 804: # TODO: Make this less hacky. Ideally target.java_sources will point to sources, not targets. - line 876: # TODO We may want to use different jvm distributions depending on what src/rust/engine/Cargo.toml (2 lines): - line 85: # TODO: Switch to a release once https://github.com/alexcrichton/futures-timer/pull/11 and https://github.com/alexcrichton/futures-timer/pull/12 merge - line 108: # TODO: Remove patch when we can upgrade to an official released version of protobuf with a fix. src/rust/engine/fs/src/store.rs (2 lines): - line 814: /// Ignores directories. TODO: Shrink directories. - line 816: /// TODO: Use LMDB database statistics when lmdb-rs exposes them. src/python/pants/subsystem/subsystem.py (2 lines): - line 72: # TODO: A less clunky way to make option values available? - line 135: TODO: We'd like that to be true of Tasks some day. Subsystems will help with that. src/python/pants/backend/codegen/protobuf/java/protobuf_gen.py (2 lines): - line 58: # TODO https://github.com/pantsbuild/pants/issues/604 prep start - line 64: # TODO https://github.com/pantsbuild/pants/issues/604 prep finish src/python/pants/backend/jvm/tasks/ivy_imports.py (2 lines): - line 20: # TODO https://github.com/pantsbuild/pants/issues/604 product_types start - line 24: # TODO https://github.com/pantsbuild/pants/issues/604 product_types finish contrib/confluence/src/python/pants/contrib/confluence/tasks/confluence_publish.py (2 lines): - line 21: # TODO: Rethink this. We shouldn't require subclassing this. Instead, the wiki identity should come - line 30: # TODO: https://github.com/pantsbuild/pants/issues/395: src/python/pants/java/nailgun_client.py (2 lines): - line 191: # TODO: preserve the traceback somehow! - line 198: # TODO: these should be ensured to be non-None in NailgunClientSession! src/python/pants/backend/jvm/tasks/ivy_task_mixin.py (2 lines): - line 77: TODO: Get rid of this requirement by registering an --ivy-jvm-options below. - line 95: # TODO: Register an --ivy-jvm-options here and use that, instead of the --jvm-options src/python/pants/invalidation/cache_manager.py (2 lines): - line 129: TODO: Exposing old results is a bit of an abstraction leak, because ill-behaved Tasks could - line 345: # TODO: Shorten cache_key hashes in general? src/python/pants/backend/codegen/antlr/java/antlr_java_gen.py (2 lines): - line 36: # TODO: Refactor this and AntlrPyGen to share a common base class with most of the functionality. - line 47: # TODO: Do we need this? src/python/pants/base/exiter.py (2 lines): - line 21: # TODO: make these into an enum! - line 67: # TODO: Determine whether this call is a no-op because the stream gets flushed on exit, or contrib/node/src/python/pants/contrib/node/subsystems/package_managers.py (2 lines): - line 21: # TODO: Change to enum type when migrated to Python 3.4+ - line 111: # TODO: consider add a pants.util function to manipulate command line. src/scala/org/pantsbuild/zinc/compiler/InputUtils.scala (2 lines): - line 47: // TODO: Remove duplication once on Scala 2.12.x. - line 174: // TODO: The default jar locations here are definitely not helpful, but the existence src/rust/engine/fs/src/snapshot.rs (2 lines): - line 171: // TODO: Memoize this in the graph - line 601: // TODO: Pass a remote CAS address through. src/python/pants/backend/jvm/subsystems/java.py (2 lines): - line 15: # TODO: Sort out JVM compile config model: https://github.com/pantsbuild/pants/issues/4483. - line 80: # TODO: These checks are a continuation of the hack that allows tests to pass without src/python/pants/init/engine_initializer.py (2 lines): - line 79: # TODO: These calls mutate the adaptor classes for some known library types to copy over - line 118: # TODO: The alias replacement here is to avoid elevating "TargetAdaptors" into the public src/python/pants/backend/jvm/tasks/jvm_dependency_check.py (2 lines): - line 262: # TODO: What's a better way to accomplish this check? Filtering by `has_sources` would - line 277: # TODO: Refactor to do some of this above once tests are in place. src/python/pants/engine/legacy/parser.py (2 lines): - line 61: # TODO: See https://github.com/pantsbuild/pants/issues/3561 - line 111: # TODO: Replace builtins for paths with objects that will create wrapped PathGlobs objects. src/python/pants/backend/jvm/tasks/scalastyle.py (2 lines): - line 21: # TODO: Move somewhere more general? - line 79: # TODO: Use the task's log level instead of this separate verbosity knob. src/python/pants/build_graph/bundle_mixin.py (2 lines): - line 39: # TODO (Benjy): The following CLI > target > config logic - line 84: # TODO (from mateor) move distdir management somewhere more general purpose. src/python/pants/base/workunit.py (2 lines): - line 129: # TODO: Ensure that a parent can't be ended before all its children are. - line 270: TODO: Is this assumption valid? src/python/pants/util/meta.py (2 lines): - line 15: # TODO: convert this into an `@memoized_classproperty`! - line 107: # TODO: look into merging this with `enum` and `ChoicesMixin`, which describe a fixed set of src/python/pants/backend/project_info/tasks/idea_plugin_gen.py (2 lines): - line 62: # TODO: https://github.com/pantsbuild/pants/issues/3198 - line 116: # TODO: https://github.com/pantsbuild/pants/issues/3198 src/python/pants/base/build_root.py (2 lines): - line 15: # TODO: Even this should probably just be a new-style option? - line 23: TODO: If this ever causes a problem (because some subdir that people run pants in src/python/pants/reporting/reporting.py (2 lines): - line 69: TODO: See `RunTracker.start`. - line 170: cache_stats = global_options.time # TODO: Separate flag for this? src/python/pants/reporting/reporting_server.py (2 lines): - line 56: # TODO: Replace this entirely with a proper server as part of the pants daemon. - line 176: # TODO: Find these from our package, somehow. src/python/pants/backend/jvm/ivy_utils.py (2 lines): - line 1088: # TODO: Move back to applying provides excludes as target-level excludes when they are no - line 1142: # TODO: Need to provide information about where these came from - could be src/python/pants/backend/codegen/thrift/java/apache_thrift_java_gen.py (2 lines): - line 14: # TODO: Currently the injected runtime deps are specified by the --deps option defined in the - line 49: # TODO: Fix ThriftDefaults to only pertain to scrooge (see TODO there) and then src/python/pants/backend/jvm/tasks/nailgun_task.py (2 lines): - line 71: # TODO: eventually deprecate this when we can move all subclasses to use the enum! - line 79: Call only in execute() or later. TODO: Enforce this. src/python/pants/backend/native/subsystems/native_toolchain.py (2 lines): - line 127: # TODO: select the appropriate `Platform` in the `@rule` decl using variants! - line 274: # TODO: we should be providing all of these (so we can eventually phase out XCodeCLITools src/rust/engine/fs/src/lib.rs (2 lines): - line 415: // TODO: match this up with the allowed values for the GlobMatchErrorBehavior type in python - line 670: // TODO: Make this an instance method, and stop having to check this every call. contrib/go/src/python/pants/contrib/go/tasks/go_buildgen.py (1 line): - line 336: # TODO: Add "find source roots for lang" functionality to SourceRoots and use that instead. src/python/pants/task/mutex_task_mixin.py (1 line): - line 134: # TODO: once https://github.com/pantsbuild/pants/issues/425 lands, we should add src/python/pants/backend/jvm/targets/exportable_jvm_library.py (1 line): - line 21: # TODO: Move provides argument out of the parent class and onto this one? src/rust/engine/fs/brfs/Cargo.toml (1 line): - line 17: # TODO: Switch to a release once https://github.com/alexcrichton/futures-timer/pull/11 and https://github.com/alexcrichton/futures-timer/pull/12 merge pants-plugins/src/python/internal_backend/utilities/register.py (1 line): - line 125: TODO: This method should parse out the specific version from the resulting file: src/python/pants/task/unpack_remote_sources_base.py (1 line): - line 118: # TODO: we may be able to make use of glob matching in the engine to avoid doing this filtering. src/python/pants/backend/python/tasks/python_binary_create.py (1 line): - line 113: TODO: This currently does so by finding a concrete local interpreter that matches all of the src/python/pants/backend/graph_info/tasks/dependees.py (1 line): - line 24: # TODO: consider refactoring out common output format methods into MultiFormatConsoleTask. src/python/pants/engine/objects.py (1 line): - line 24: # TODO: Likely no longer necessary, due to the laziness of the product graph. src/python/pants/backend/python/tasks/python_repl.py (1 line): - line 29: # TODO: Create a python equivalent of register_jvm_tool, and use that instead of these src/python/pants/engine/legacy/options_parsing.py (1 line): - line 21: # TODO: Because _OptionsBootstapper is currently provided as a Param, this @rule relies on options src/python/pants/backend/native/subsystems/native_build_step.py (1 line): - line 96: # TODO: add a fatal_warnings kwarg to NativeArtifact and make a LinkSharedLibrariesSettings subclass src/rust/engine/resettable/src/lib.rs (1 line): - line 74: /// TODO Explore the use of parking_lot::RWLock::upgradable_read src/python/pants/backend/docgen/tasks/generate_pants_reference.py (1 line): - line 71: # TODO: Make goals Optionable and get their description via their ScopeInfo? src/python/pants/base/specs.py (1 line): - line 227: # TODO: we can't yet express a type in terms of itself, because datatype field types are evaluated src/python/pants/backend/jvm/tasks/binary_create.py (1 line): - line 26: # TODO (peiyu) switch to `target.id` based naming to avoid potential `basename` src/python/pants/backend/jvm/tasks/coursier_resolve.py (1 line): - line 188: # TODO Encapsulate this in the result from coursier instead of here. src/python/pants/base/hash_utils.py (1 line): - line 111: # TODO: determine if the __repr__ should be some abstractmethod on DatatypeMixin! src/python/pants/backend/python/tasks/python_tool_prep_base.py (1 line): - line 75: # TODO: If `.will_be_invoked()` is not overridden, this python tool setup ends up eagerly generating src/rust/engine/process_execution/src/local.rs (1 line): - line 246: // TODO: we use a HashSet to deduplicate directory paths to create, but it would probably be src/python/pants/init/extension_loader.py (1 line): - line 108: # TODO: Consider replacing the "backend" nomenclature here. pants.build_graph and src/python/pants/engine/addressable.py (1 line): - line 317: # TODO: Variants currently require an explicit name (and thus a `:`) in order to parse correctly. src/python/pants/rules/core/filedeps.py (1 line): - line 22: # TODO: Until this implements more of the options of `filedeps`, it can't claim the name! src/python/pants/option/option_tracker.py (1 line): - line 13: # TODO: Get rid of this? The parser should be able to lazily track. src/python/pants/backend/native/tasks/conan_fetch.py (1 line): - line 149: # TODO: we should really be able to download all of these in one go, and we should make an src/python/pants/backend/python/tasks/select_interpreter.py (1 line): - line 98: # NB: The file name must be changed when its format changes. See the TODO in src/python/pants/util/osutil.py (1 line): - line 90: # TODO: use this as the default value for the global --binaries-path-by-id option! src/python/pants/backend/jvm/tasks/resources_task.py (1 line): - line 41: # TODO: Rewrite those tests. execute() is not supposed to return anything. contrib/cpp/src/python/pants/contrib/cpp/tasks/cpp_library_create.py (1 line): - line 47: # TODO: copy public headers to work dir. src/rust/engine/fs/fs_util/src/main.rs (1 line): - line 309: // TODO: Take a command line arg. src/rust/engine/cbindgen.toml (1 line): - line 31: # TODO: wrapped_PyInit_native_engine is declared twice if not excluded here, figure out why. src/python/pants/backend/native/subsystems/native_build_settings.py (1 line): - line 23: # TODO: rename this so it's clear it is not the same option as JVM strict deps! src/python/pants/backend/jvm/tasks/coursier/coursier_subsystem.py (1 line): - line 87: # TODO: Capture the stdout of the fetcher, instead of letting it output src/python/pants/backend/jvm/tasks/benchmark_run.py (1 line): - line 36: # TODO (Eric Ayers) Caliper is old. Add jmh support? contrib/python/src/python/pants/contrib/python/checks/tasks/python_eval.py (1 line): - line 73: # TODO: BAD! Find another way to detect task action in tests. src/rust/engine/process_executor/Cargo.toml (1 line): - line 12: # TODO: Switch to a release once https://github.com/alexcrichton/futures-timer/pull/11 and https://github.com/alexcrichton/futures-timer/pull/12 merge contrib/scalajs/src/python/pants/contrib/scalajs/tasks/scala_js_zinc_compile.py (1 line): - line 25: # TODO: revisit after https://rbcommons.com/s/twitter/r/3225/ src/python/pants/backend/python/targets/import_wheels_mixin.py (1 line): - line 21: # TODO: figure out if this OrderedSet is necessary. src/python/pants/goal/run_tracker.py (1 line): - line 244: run_info. TODO: This lifecycle represents a delicate dance with the `Reporting.initialize` contrib/go/src/python/pants/contrib/go/subsystems/go_import_meta_tag_reader.py (1 line): - line 53: # TODO: Support https with (optional) fallback to http, as Go does. src/python/pants/backend/codegen/thrift/java/thrift_defaults.py (1 line): - line 15: # TODO: These exist to support alternate compilers (specifically scrooge), but this should src/rust/engine/fs/Cargo.toml (1 line): - line 15: # TODO: Switch to a release once https://github.com/alexcrichton/futures-timer/pull/11 and https://github.com/alexcrichton/futures-timer/pull/12 merge src/rust/engine/process_execution/Cargo.toml (1 line): - line 23: # TODO: Switch to a release once https://github.com/alexcrichton/futures-timer/pull/11 and https://github.com/alexcrichton/futures-timer/pull/12 merge src/python/pants/backend/jvm/tasks/jvm_compile/javac/javac_compile.py (1 line): - line 142: # TODO: support -release src/scala/org/pantsbuild/zinc/extractor/Settings.scala (1 line): - line 26: // TODO Subsitute with scopt, similar to `src/scala/org/pantsbuild/zinc/bootstrapper/Cli.scala src/python/pants/backend/jvm/tasks/junit_run.py (1 line): - line 456: # TODO: move this check to an optional phase in goal_runner, so contrib/go/src/python/pants/contrib/go/subsystems/fetcher_factory.py (1 line): - line 33: # TODO: Add launchpad.net? src/python/pants/source/payload_fields.py (1 line): - line 40: # TODO: It's a shame that we have to access the singleton directly here, instead of getting src/python/pants/backend/python/tasks/pytest_run.py (1 line): - line 73: # TODO: convert this into an enum! src/python/pants/core_tasks/register.py (1 line): - line 66: # TODO: The reporting server should be subsumed into pantsd, and not run via a task. src/python/pants/backend/native/targets/external_native_library.py (1 line): - line 20: # TODO: generalize this to a DatatypeSetField subclass in payload_field.py! src/python/pants/scm/git.py (1 line): - line 412: # TODO: Relatively inefficient, but easier than changing read_object, unfortunately. src/python/pants/backend/python/subsystems/python_repos.py (1 line): - line 19: # TODO: These methods of RequestsContext are monkey-patched out to work around src/python/pants/backend/jvm/register.py (1 line): - line 147: # TODO https://github.com/pantsbuild/pants/issues/604 register_goals src/python/pants/backend/native/tasks/native_task.py (1 line): - line 139: # TODO: There should be a cleaner way to do this. src/python/pants/backend/graph_info/tasks/cloc.py (1 line): - line 45: # TODO: Work out a nice library-like utility for writing an argfile, as this will be common. src/python/pants/goal/products.py (1 line): - line 68: # TODO: This is a temporary helper for use until the classpath has been split. contrib/node/src/python/pants/contrib/node/subsystems/resolvers/npm_resolver.py (1 line): - line 85: # TODO: remove/remodel the following section when node_module dependency is fleshed out. src/python/pants/backend/python/subsystems/pytest.py (1 line): - line 16: # TODO: This is currently bounded below `3.7` due to #6282. src/python/pants/engine/fs.py (1 line): - line 167: # TODO: don't recreate this in python, get this from fs::EMPTY_DIGEST somehow. src/python/pants/engine/legacy/address_mapper.py (1 line): - line 66: # TODO: This should really use `product_request`, but on the other hand, we need to src/python/pants/task/task.py (1 line): - line 246: TODO: Fix up existing targets to consult this method, for uniformity. src/python/pants/engine/native.py (1 line): - line 167: # TODO: Because PyPy uses the same `init` function name regardless of the python version, this src/python/pants/option/optionable.py (1 line): - line 43: TODO: This indirection avoids a cycle between this module and the `rules` module. src/python/pants/backend/python/tasks/python_execution_task_base.py (1 line): - line 86: # TODO: remove `pin_selected_interpreter` arg and constrain all resulting pexes to a single == src/python/pants/build_graph/target.py (1 line): - line 851: # TODO: Inline this as SourcesField(sources=sources) when all callers are guaranteed to pass an src/python/pants/engine/isolated_process.py (1 line): - line 34: # TODO: add a method to hack together a `process_executor` invocation command line which src/rust/engine/src/lib.rs (1 line): - line 86: // TODO: Consider renaming and making generic for collections of PyResults. src/python/pants/core_tasks/login.py (1 line): - line 41: # TODO: When we have other auth methods (e.g., OAuth2), select one by provider name. src/python/pants/backend/python/subsystems/pex_build_util.py (1 line): - line 362: # TODO this would be a great place to validate the constraints and present a good error message src/java/org/pantsbuild/tools/ivy/DependencyUpdateChecker.java (1 line): - line 35: * TODO: Generate json output for dependency tools src/python/pants/base/run_info.py (1 line): - line 85: # TODO: Get rid of the redundant 'path' key once everyone is off it. src/scala/org/pantsbuild/zinc/options/OptionSet.scala (1 line): - line 11: /// TODO Remove uses of this in favor of scopt src/python/pants/backend/jvm/tasks/resolve_shared.py (1 line): - line 25: # TODO This flag should be defaulted to True when we are doing hermetic execution, src/rust/engine/serverset/Cargo.toml (1 line): - line 11: # TODO: Switch to a release once https://github.com/alexcrichton/futures-timer/pull/11 and https://github.com/alexcrichton/futures-timer/pull/12 merge src/python/pants/engine/struct.py (1 line): - line 299: # TODO: enforce the type of variants using the Addressable framework. src/python/pants/init/logging.py (1 line): - line 108: # TODO This function relies on logging._checkLevel, which is private. src/python/pants/backend/native/subsystems/binaries/llvm.py (1 line): - line 24: # TODO: Give a more useful error message than KeyError if the host platform was not recognized src/python/pants/backend/jvm/tasks/bundle_create.py (1 line): - line 167: # TODO run in parallel to speed up src/rust/engine/serverset/src/lib.rs (1 line): - line 368: // TODO: un-ignore on OSX: https://github.com/pantsbuild/pants/issues/7756 src/scala/org/pantsbuild/zinc/analysis/PortableAnalysisMappers.scala (1 line): - line 75: // TODO: Determine whether the rest of these need to be overridden in practice. src/python/pants/backend/codegen/antlr/python/python_antlr_library.py (1 line): - line 13: # TODO: Deprecate antlr_version=, and replace it with a compiler= argument, that takes logical src/python/pants/pantsd/service/scheduler_service.py (1 line): - line 194: # TODO: See https://github.com/pantsbuild/pants/issues/6288 regarding Ctrl+C handling. src/python/pants/backend/project_info/tasks/export.py (1 line): - line 137: # TODO: Why is this computed directly here instead of taking from the actual product src/python/pants/ivy/bootstrapper.py (1 line): - line 147: # TODO: Capture the stdout of the fetcher, instead of letting it output src/java/org/pantsbuild/tools/jar/JarBuilder.java (1 line): - line 384: // TODO: implement read(byte[], int, int) for faster multibyte reads src/scala/org/pantsbuild/zinc/analysis/AnalysisMap.scala (1 line): - line 64: * TODO: This optimization is unnecessary for jars on the classpath, which are already indexed. src/python/pants/backend/docgen/register.py (1 line): - line 21: # TODO: Why is this capitalized? src/rust/engine/fs/fs_util/Cargo.toml (1 line): - line 15: # TODO: Switch to a release once https://github.com/alexcrichton/futures-timer/pull/11 and https://github.com/alexcrichton/futures-timer/pull/12 merge src/java/com/sun/tools/javac/api/JavacTool.java (1 line): - line 59: // TODO: Run this by someone who truly understands software licensing rules. Maybe this abundance pants-plugins/src/python/internal_backend/sitegen/tasks/sitegen.py (1 line): - line 49: # TODO: requiring these products ensures that the markdown and reference tasks run before this src/python/pants/base/file_system_project_tree.py (1 line): - line 33: # Sanity check. TODO: this should probably be added to the ProjectTree interface as contrib/go/src/python/pants/contrib/go/tasks/go_fetch.py (1 line): - line 44: # TODO(John Sirois): See TODO in _fetch_pkg, re-consider how artifact caching works for fetches. src/python/pants/backend/jvm/tasks/check_published_deps.py (1 line): - line 28: # TODO: Yuck. The repos should be a subsystem that both tasks use. src/python/pants/backend/jvm/subsystems/scala_platform.py (1 line): - line 40: # TODO: Sort out JVM compile config model: https://github.com/pantsbuild/pants/issues/4483. src/python/pants/backend/native/targets/native_library.py (1 line): - line 19: # TODO: replace this awkward classmethod with a mixin! src/python/pants/base/deprecated.py (1 line): - line 131: # TODO: propagate `deprecation_start_version` to other methods in this file! src/python/pants/engine/nodes.py (1 line): - line 35: TODO: Consider https://docs.python.org/2.7/library/pickle.html#pickling-and-unpickling-external-objects src/python/pants/backend/python/interpreter_cache.py (1 line): - line 28: # TODO: Move under subsystems/ . contrib/node/src/python/pants/contrib/node/subsystems/command.py (1 line): - line 18: # TODO: Consider generalizing this into pants.util. src/rust/engine/src/cffi_build.rs (1 line): - line 135: // TODO: bootstrap_c_source() is used to generate C source code from @_extern_decl methods in src/rust/engine/process_executor/src/main.rs (1 line): - line 254: // TODO: Take a command line arg. contrib/buildrefactor/src/python/pants/contrib/buildrefactor/meta_rename.py (1 line): - line 51: # TODO: The **{} seems unnecessary. contrib/scalajs/src/python/pants/contrib/scalajs/subsystems/scala_js_platform.py (1 line): - line 29: # TODO: revisit after https://rbcommons.com/s/twitter/r/3225/ src/rust/engine/src/handles.rs (1 line): - line 71: /// TODO: This queue should likely move to `core` to allow `enqueue` to be private. src/python/pants/engine/build_files.py (1 line): - line 93: # TODO: This is effectively: "get the BuildFileAddress for this Address". src/python/pants/option/options_bootstrapper.py (1 line): - line 68: # TODO: Enforce a ban on options with a --pants- prefix outside our global options? src/python/pants/source/wrapped_globs.py (1 line): - line 273: TODO: This exists as-is for historical reasons: we should add optional validation of the src/python/pants/backend/codegen/thrift/lib/apache_thrift_gen_base.py (1 line): - line 43: # TODO: Do a deprecation cycle to restore the old name. contrib/cpp/src/python/pants/contrib/cpp/tasks/cpp_task.py (1 line): - line 42: # TODO: capture stdout/stderr and redirect to log src/python/pants/backend/jvm/tasks/jvmdoc_gen.py (1 line): - line 28: # TODO: Shouldn't this be a NailgunTask? src/python/pants/backend/docgen/targets/doc.py (1 line): - line 51: # TODO: url_builder is not a part of fingerprint. src/python/pants/engine/scheduler.py (1 line): - line 93: # TODO: This `_tasks` reference could be a local variable, since it is not used src/rust/engine/fs/src/glob_matching.rs (1 line): - line 28: /// TODO: Should handle symlink loops (which would exhibit as an infinite loop in expand). src/python/pants/backend/codegen/thrift/python/py_thrift_namespace_clash_check.py (1 line): - line 33: # TODO: deprecate the --strict option in a future release! src/python/pants/option/errors.py (1 line): - line 29: # TODO: Similar thing for ParseError. src/python/pants/goal/goal.py (1 line): - line 165: # TODO: This is repetitive of Optionable.get_description(), which is used by v2 Goals. src/python/pants/backend/jvm/targets/jvm_target.py (1 line): - line 222: # TODO: We should deprecate this method, but doing so will require changes to JVM publishing. src/python/pants/backend/jvm/tasks/coverage/engine.py (1 line): - line 77: # TODO: Does this actually need to check AnnotationProcessor targets? It does so at present src/python/pants/backend/jvm/tasks/jvm_dependency_analyzer.py (1 line): - line 135: # TODO: Support other JVMs? Not clear if there's a standard way to do so.