Summary: 358 instances, 305 unique Text Count // FIXME: this should not block 1 // TODO: rdar://87582621 call package index's list API 1 // TODO: formalize package registry identifier 1 // FIXME: Handle problems sending the message. 1 // FIXME: This is a suboptimal format for object identifier strings; 1 // FIXME: this filter needs to become more sophisticated 1 // FIXME: This should be part of the Diagnostics APIs. 1 // FIXME: this is for backwards compatibility with existing diagnostics printing format 1 // FIXME: It is weird to read Process's verbosity to determine this, we 1 // FIXME: We should surface errors from here. 1 // FIXME: cancel the request? 1 // FIXME: What do we do with any diagnostics here? 1 // TODO (next steps): move the location into PackageKind to preserve path vs. location 1 // TODO: this check should go away when introducing explicit overrides 1 // FIXME: Ignore C language test targets on linux for now. 1 // TODO: enforce exclusivity 1 // FIXME: This doesn't belong here. 1 // TODO: We need to also use any working directory, but that support isn't yet available on all platforms at a lower level. 1 // FIXME: this should not block 5 // TODO: We should also emit a final line of output regarding the result. 1 // FIXME: (diagnostics) compare complete metadata when legacy bridge is removed 2 // TODO: make these defaults configurable? 3 // TODO: This can be removed when the `Security` framework APIs that the `PackageCollectionsSigning` 1 // TODO: this seems fragile, perhaps we replace commandFailureHandler by adding relevant calls in the delegates chain 1 // FIXME: We can optimize this by recomputing only the removed things. 1 // TODO: consider location as well? 2 // TODO: Memoize this result for the host triple 1 // FIXME: Probably lift this error definition to ToolsVersion. 1 name = package.manifest.displayName // TODO: use identity instead? 1 // FIXME: We should get the trivia from the closing brace. 1 // TODO: replace multiroot-data-file with explicit overrides 1 // FIXME: Currently, this class is serving two goals, it is the Repository 1 // FIXME: This is messy and needs a redesign. 1 // FIXME: this brings in the TSC API still 1 // FIXME: This is somewhat flaky; packages should have a notion of 1 // FIXME: This could be more efficient by directly writing to a stream 1 // FIXME: We should parameterize this so that a package can return the path 1 // FIXME: This can be easily cached. 2 // FIXME: We'll want to make this asynchronous when there is back deployment support for it. 3 // FIXME: Support C++ headers. 1 // TODO: find a better way to get the base path (not via the manifest) 1 // FIXME: We need to throw from here if given sanitizers can't be 1 let firstLevelManifests = try temp_await { self.loadManagedManifests(for: firstLevelDependencies, observabilityScope: observabilityScope, completion: $0) } // FIXME: this should not block 1 name: self.manifest.displayName, // FIXME: use identity instead? 1 // TODO: Add options for whitespace styles. 1 // FIXME: the following logic is pretty fragile, but has always been this way 1 // TODO: where should we read defaults from? 1 // TODO: why is this only required on Windows? is there something better we can do? 1 //FIXME: Return false when the path is not a valid path string. 1 // FIXME: At some point SwiftPM should provide its own executor for 1 // FIXME: Shoule we really? Why would we not want to get upgraded? 1 // TODO: add configuration including: 1 // FIXME: we currently requires that Value conforms to CustomStringConvertible which sucks 1 // FIXME: We do not handle de-quoting of names, currently. 1 // FIXME: We don't need to set these every time but we usually only commit once or twice for a test repo. 1 // FIXME: ideally this would be done outside of the planning phase, 1 // FIXME: This shouldn't be needed once is fixed. 1 // FIXME: Handle case insensitive filesystems. 1 // FIXME: use Foundation.URL instead of string 1 // FIXME: We should probably report some kind of protocol error if the path isn't valid. 1 // FIXME: this filter needs to become more sophisticated 1 // FIXME: This should be moved to user toolchain. 1 let packageName = graph.rootPackages[0].manifest.displayName // TODO: use identity instead? 1 "name": .string(package.manifest.displayName), // TODO: remove? 1 // FIXME: This is super unfortunate that we might need to load the package graph. 1 // TODO: we could potentially optimize this with db connection pool 1 // FIXME: We need this to work with InMem file system too. 1 // FIXME: We should emitting warnings for duplicate// declarations. 1 let identity = PackageIdentity(urlString: location) // FIXME: pin store should also encode identity 1 // FIXME: Ideally we should pass `--progress` here and report status regularly. We currently don't have callbacks for that. 1 // TODO: replace with async/await when avail 1 // FIXME: deprecated 2/2021, remove once clients migrate 1 // FIXME: Implement a class convenience initializer that does this once they are supported 3 // FIXME: Move to TSC. 1 // FIXME: we should not need this once we migrate off URLs 2 // FIXME: use identity instead? 1 // FIXME: deprecate this, this is not part of the manifest information, we just use it as a container for this data 2 // FIXME: pluginUsages property is skipped on purpose as it points to 2 // FIXME: Add config file as an input 1 // FIXME: This is wasteful, we should be caching the PkgConfig result. 1 // FIXME: This doesn't belong here, but for now is the mechanism we use 1 projectName = graph.rootPackages[0].manifest.displayName // TODO: use identity instead? 2 // TODO: refactor this when adding registry support 1 // FIXME: this seems like hack, needs further investigation why this is needed 1 // TODO: Extract version from SPM target (see SR-4265 and SR-12926). 1 dict["shellPath"] = .string("/bin/sh") // FIXME: should be settable 1 // FIXME: Deprecate special casing once the manifest supports declaring used executable products. 1 // FIXME: This switch case is kind of sad but we need to convert Xcode's 1 // FIXME: We shouldn't need to manually do this here, instead this 1 /// FIXME: While we want the end result of being able to say `FLAGS += ["-O"]` 1 /// FIXME: We do not check for cycles. Should we? This is an extremely 1 // FIXME: We can speed this up by having one llbuild command per object file. 1 // FIXME: this should not block 3 dict["dstPath"] = .string("") // FIXME: needs to be real 1 // FIXME: Implement the custom build command provider also. 1 // FIXME: This should contain the right elapsed time. 1 // FIXME: Should we allow this to be set in the model? 1 // FIXME: Need to handle version-specific manifests. 1 // FIXME: Factor all of the development-time resource location stuff into a common place. 1 // FIXME: Eliminate filtering test from here. 1 name: "\(package.manifest.displayName)PackageDescription" // TODO: use identity instead? 1 var groupName = package.manifest.displayName // TODO: use identity instead? 1 // FIXME: Kill this. 1 // FIXME: What is this, and why are we setting it? 1 // FIXME: deprecate this 1 // FIXME: This should be a set but we need Equatable existential (or AnyEquatable) for that. 1 // TODO: get rid of this global settings in TSC 1 // FIXME: this is dropping legitimate packages with equal identities and should be revised as part of the identity work 1 userID: props["0.9.2342.19200300.100.1.1"], // FIXME: don't hardcode? 1 // FIXME: mark as deprecated once async/await is available 2 // TODO: we can do some finger-print checking to improve the validation 1 name: rootPackage.manifest.displayName, // TODO: use identity instead? 1 // FIXME: This should be an ordered set. 1 // FIXME: encode the type 1 // TODO: deprecate / transition to PackageIdentity 2 // FIXME: This will never happen I think. 1 // TODO: Do we need to filter out targets that aren't available on the host platform? 1 // FIXME: We need to emit the API name and not the internal platform name. 1 customRepositoryProvider: repositoryProvider, // FIXME: ideally we would not customize the repository provider. its currently done for shutdown handling which can be better abstracted 1 // FIXME: Handle WMO 2 // FIXME: SwiftPM can't handle file locations with file:// scheme so we need to 1 // FIXME: Shouldn't we check this _before_ making a decision? 1 // FIXME: It would be nice to move this to a generalized method which takes path and predicate and 1 // FIXME: This should probably be refactored into a switch statement to avoid missing new cases. 1 // TODO: In the future these should be folded into regular build commands when the build system can handle not knowing the names of all the outputs before the command runs. 1 // FIXME: Audit behavior with off-branch tags in remote repositories, we 2 // FIXME: We should handle errors here. 1 let sortedPackages = graph.packages.sorted { $0.manifest.displayName < $1.manifest.displayName } // TODO: use identity instead? 1 // FIXME: Or is it? What about system targets, can we depend 1 // FIXME: the manifest loading logic should be changed to use identity instead of location once identity is unique 1 // FIXME: If we find a dependencies section but not an array expr, then we should 1 // FIXME: we should not need this once we migrate off URLs 2 // FIXME: this filter needs to become more sophisticated 1 // FIXME: This is not correct, we need to find the 1 // FIXME: (diagnostics) pass in observability scope when we have one 1 // FIXME: Possibly factor this out into a separate protocol; the 1 // FIXME: We need to implement the build tool invocation closure here so that build tool plugins work with dumping the symbol graph (the only case that currently goes through this path, as far as I can tell). rdar://86112934 1 // TODO: Add login and password to .netrc 1 // FIXME: This seems quite hacky; we should provide some control over where fixtures are found. 1 // FIXME: this mixes quite a bit of workspace logic with repository specific one 1 // FIXME: This is unfortunate that we have to fetch to update remote's data. 1 // TODO: is there a better name? this conflicts with the module name which is okay in this case but not ideal in Swift 1 // TODO copy this fixture and make one that should not compile due to the dependency not being specified 1 /// FIXME: I'm not totally happy with how this looks. It's far too clunky 1 // FIXME: It would be nicer to be able to use inheritance for the code 7 // FIXME: We should form everything we want to write, then validate that 1 // FIXME: use identity instead 1 // FIXME: We can rewrite this to use a stack instead of recursion. 1 // TODO: Deal better with errors in parsing the artifacts 1 // TODO: Implement a more sophisticated check that also verifies if the file is in the sources directories of the passed in `packageGraph`. 1 // FIXME: We need to ingest the emitted dependencies. 1 /* TODO: why is X509_TRUST_OCSP_REQUEST set? Seems to get ignored. */ 1 // TODO: how do we read default config values? ENV variables? user settings? 1 // FIXME: We should perhaps define some particularly useful error codes 1 let bundleIdentifier = "\(package.manifest.displayName).\(target.name).resources".spm_mangledToBundleIdentifier() // TODO: use identity instead? 1 // TODO: refactor this when adding registry support 1 // FIXME: Rename to something else. 1 // FIXME: we should change the delegate to take identity instead of location 1 // FIXME: is this worth merging with the logic in (range, exact) case above? 1 // FIXME: Much of this is similar to what the ManifestLoader is doing. This should be consolidated. 1 // TODO: Skip compiling the plugin script if it has already been compiled and hasn't changed. 1 // FIXME: We need to get the raw bytes back, not a String. 1 // FIXME: This needs to be optimized, somewhere. 1 // FIXME: This should be an error, not a precondition. 2 // TODO: consider using @autoclosure to delay potentially expensive evaluation of data when some diagnostics may be filtered out 1 // TODO: Ask for approval here if connected to TTY; only emit an error if not. 1 /// FIXME: It would be nicer to be able to use inheritance to serialize the 2 // FIXME: Do/should we print a warning if a dependency has no products? 1 // FIXME: this seems like the wrong place to print 1 // FIXME: This is just a fake entry, we should fix it. 1 // FIXME: Temporary workaround to filter out debug output from integrated Swift driver. [rdar://73710910] 1 // TODO: What should we do if we find non-Swift sources here? 2 // TODO: use identity instead 1 // TODO: replace multiroot-data-file with explicit overrides 3 // TODO: Uncomment once .netrc management is implemented 1 // FIXME: Workaround for the module cache bug that's been haunting Swift CI 1 // FIXME: Need to record this deps file for processing it later. 1 // FIXME: We're depending on a target for which we didn't create 1 // TODO: consider rolling into Equatable 1 // FIXME: This is duplicated from SwiftDriver, maybe it shouldn't be a protocol requirement. 1 // FIXME: adding this guard to ensure refactoring is correct 9/21 1 // FIXME: we want to remove this functionality and move to more conventional error handling 2 // FIXME: Warn if the two tags point to different git references. 1 // FIXME: We should consider building a registry for all items in the 1 // FIXME: We should factor this out. 1 // FIXME: (diagnostics) deprecate in favor of the metadata version ^^ when transitioning manifest loader to Observability APIs 1 // FIXME: Lift this out of the manifest. 1 // TODO: simplify when deprecating the older flag 1 // FIXME: This is not very correct but doesn't matter much in practice. 1 // FIXME: Can we avoid this? testConflict1 goes into a loop if we don't do this. 1 // FIXME: What about .hh files, or .hpp, etc? We should centralize the detection of file types based on names (and ideally share with SwiftDriver). 1 // FIXME: This is generic functionality, and should move to FileSystem. 1 // FIXME: We shouldn't need to construct a new package reference object here. 1 * Done here for CRLs; TODO should be done also for OCSP-based checks. 1 /// FIXME: deprecate this, there is no value in this once we have real package identifiers 1 // FIXME: we should assert that the identifier doesn't need quoting 1 // TODO: rdar://87582621 call package index's search API 1 // TODO: replace with async/await when available 2 // FIXME: Do we care about holding this open for the lifetime of the container. 1 // FIXME: we should simplify target based dependencies such that this is no longer required 2 let schemeName = "\(graph.rootPackages[0].manifest.displayName)-Package.xcscheme" // TODO: use identity instead? 1 // FIXME: We should write this as a custom llbuild task once we adopt it 1 // FIXME: We need to implement the build tool invocation closure here so that build tool plugins work with the REPL. rdar://86112934 1 // FIXME: We don't need SRCROOT macro below but there is an issue with sourcekit. 1 // FIXME: this is a placeholder 1 let bundleName = "\(package.manifest.displayName)_\(target.name)" // TODO: use identity instead? 1 // FIXME: dependencies property is skipped on purpose as it points to 2 // FIXME: This won't be the location of Package.resolved for multiroot packages. 1 // FIXME: At the moment we just pass the built products directory for the host. We will need to extend this 1 // FIXME: Optimize. 1 // FIXME: ideally this would not be required and we can check on the enum directly 1 // FIXME: placeholder 2 // TODO: validate package url? 1 // FIXME: Eliminate side effect. 2 // FIXME: Handle failure gracefully, somehow. 1 customManifestLoader: self.getManifestLoader(), // FIXME: ideally we would not customize the manifest loader 1 // TODO: Convert this function to be asynchronous, taking a completion closure. This may require changes to the package graph APIs to make them accessible concurrently. 1 // FIXME: remove this when remove the single call site that uses it 1 // FIXME: We need to find out if any product has a target on which it depends 1 // FIXME: @testable internal 1 // FIXME: This is a bit arbitrary and should be controllable. We may also want an option to only emit 1 // TODO: store bad actors to prevent server DoS 1 // TODO: replace with async/await when available 4 // FIXME: Handle other types of requirements. 1 // FIXME: We can exit the loop early when the range goes above lhs. 1 // FIXME: Handle rules here. 1 // FIXME: this is a placeholder 1 // FIXME: It would be nice to compute bounds for this as well. 1 location = "" // FIXME: this is likely not correct 1 // FIXME: This is very minimal right now. We should allow including test output etc. 1 // TODO: We will need to decide how this should best be handled; it 1 // FIXME: Convert to stack. 1 // FIXME: we shouldn't always include both the deep and shallow bundle paths here, but for that we'll need 1 // FIXME: This should be per-version. 1 // FIXME: This doesn't belong here, we want the Manifest to be purely tied 2 // FIXME: this currently requires that Value conforms to CustomStringConvertible which sucks 1 // FIXME: would be nice if checksumAlgorithm.hash took Data directly 1 // TODO: this does not use the identity resolver which is probably fine since its the root packages 1 // FIXME: We shouldn't need to construct a new package reference object here. 1 // FIXME: This doesn't seem correct, but was what the old project generation 1 // FIXME: how do we test this? 1 // FIXME: This might not be the best way to determine this. 1 // TODO: where should we read defaults from? 1 self.name = self.manifestDisplayName // TODO: deprecate, backwards compatibility 11/2021 1 name: rootPackage.manifest.displayName + "-Package", // TODO: use identity instead? 1 // FIXME: expose as user-facing configuration 1 // FIXME: Need to add cancel support. 1 // FIXME: This API behavior wrt to non-found manifests is fragile, but required by IDEs 1 // FIXME: Need to record this deps file for processing it later. 1 // FIXME: We should generate this file during the actual build. 2 // TODO: Remove this once the environment variable is no longer used. 1 // FIXME: (diagnostics) deprecate in favor of the metadata version ^^ when transitioning manifest loader to Observability APIs 1 // FIXME: add links to docs in error messages 1 // FIXME: We need to get the revision here, and we don't have a 1 // FIXME: Not sure if it's better to base this off of Swift compiler or our own binary. 1 // FIXME: inject platform specific implementation here 1 // FIXME: We need to handle version-specific manifests. 2 // TODO: rdar://87582621 call package index's get metadata API 1 // TODO: How do we determine what the executable name will be for the host platform? 1 // TODO: This probably makes more sense as isSatisfied(by:) instead. 1 // FIXME: string interpolation seems brittle 1 // FIXME: This is a temporary API until index store is widely available in 1 // TODO: Ideally we should only resolve plugin dependencies, if we had a way of distinguishing them. 1 import struct SourceControl.Revision // FIXME: remove this dependency 1 // TODO: rdar://87575573 remove feature flag 1 dict["dstSubfolderSpec"] = .string("") // FIXME: needs to be real 1 // TODO: Add support for libraries 1 // FIXME: We should optimize this representation. 1 // TODO: we could wrap the failure here with diagnostics if it wasn't optional throughout 3 // FIXME: workaround linux sqlite concurrency issues causing CI failures 1 // FIXME: We should probably just warn in case we fail to create 1 // FIXME: We need to implement the build tool invocation closure here so that build tool plugins work with the APIDigester. rdar://86112934 1 // FIXME change into enum after deprecation grace period 1 // FIXME: This is relying on implementation detail of the output but passing the 1 // FIXME: @testable(internal) 1 // TODO: Use the same extraction logic for both remote and local archived artifacts. 1 // FIXME: (diagnostics) compare complete metadata when legacy bridge is removed 1 // FIXME: Get rid of this method once we move on to new Build code. 1 // FIXME: This is copied from ManifestLoader. This should be consolidated when ManifestLoader is cleaned up. 2 // FIXME: this works but the way we find out about this is based on a side effect, need to improve it 1 // FIXME: We should have some general utility to find tools. 1 // FIXME: We should verify our edits by loading the edited manifest before writing it to disk. 2 // FIXME: placeholder 1 // FIXME: We should be able to handle this case and also allow changed paths for registry and SCM downloads. 1 public private(set) static var pkgConfigPaths: [AbsolutePath]? // FIXME: @testable(internal) 1 // FIXME: This is only for SwiftPM development time support. It is OK 1 // FIXME: Should we error out instead if content is not UTF8 representable? 1 /// FIXME: This shouldn't use a static variable, since the first lookup 1 // FIXME: Do we always have a module? 1 platforms: self.platforms(), // FIXME: this should be host platform 1 // FIXME: this brings OpenSSL dependency on Linux 1 // FIXME: We use this hack to let swiftpm's functional test use shared 1 // TODO: move more manifest validation in here from other parts of the code, e.g. from ManifestLoader 1 // TODO: dedicated retry queue? 1 // TODO: should this simply be an error? 1 // FIXME: Maybe refactor these into "common args". 1 // TODO: do something useful with scope 2 // FIXME: better name 1 // FIXME: There's a lot repetition in these methods; using generics to 1 // FIXME: (diagnostics) deprecate this with Diagnostics.fatalError 2 // FIXME: We should check for duplicate assignments. 1 // FIXME: We don't add edited packages in the package structure command yet (SR-11254). 1 // TODO: make `per_page` configurable? GitHub API's max/default is 100 1 // TODO: Require login if password is specified 1 // TODO: Bail if archive contains relative paths or overlapping files 1