I deleted my previous comments, now that I realize there is actually no way to programatically find external depencies because of SPM sandboxing :(
I've been using SPM for a couple days now.
It's fantastic, in comparison to the way we had to manage Frameworks and Libraries using Xcode alone. That's a low bar, though.
I have to say SPM is too heavy for small personal projects. It would be nice if SPM started with the absolute minimum things necessary, and built up from there. Currently, that (ie: developing tiny libraries with it) seems like an afterthought.
One problem is that we have a swift-like format for Package.swift, but no way to use external dependencies without editing it. That means there is no default way to create a Package.swift file that can be copied to multiple projects: each instance will require custom editing: editing that is finicky, since we're editing an actual script, not just a json file or a softlink. If someone wants to use tiny packages, that's going to be painful. SPM should provide a way to import external dependencies without altering Package.swift
Secondly, it doesn't seem like there's an obvious way to 'import' a custom module into package.swift - this means, if I have a folder with a hundred tiny packages, they're all going to be bogged down with duplicated code.
Finally, this lack of wild card support and expectation (face it, thanks to the legwork required to do anything else, in practice the subfolders are an expectation) that there always be source code in subfolders means that a developer using tiny packages is dealing with at least 2x as complicated a directory structure as they need to.
I like SPM, and I can see how my complaints are invalid for many projects (pretty much anything with more a few files, or more than a couple people in a team, anything hosted on the net, which I do realize is SPM's reason-to-be) but I wish its design allowed me to create easy-to-use and easy-to-peruse local packages, even for projects of only a couple swift files.