-
-
Notifications
You must be signed in to change notification settings - Fork 679
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
Would you consider dual-tagging GRDB releases until SPM supports your preferred tag format? #1125
Comments
|
Hello @jackpal,
I assume this issue is related to #1115. If it is not, please better describe your concern.
This is not true. You can build an app or a package that depends on the GRDB package today. SPM is one of the supported, documented, and tested installation methods of GRDB, since version 0.106.0 in April 2017.
I know that SPM does not support dually tagged packages. I once mistakenly published a
This format is not a whim.
Finally, even when Apple eventually fixes this bug in the Swift Playgrounds on iPad application, this won't allow you to use GRDB there until system modules are supported (https://twitter.com/damienpetrilli/status/1472144736983134211). All in all, I don't see any reason to do anything in the GRDB repo at the present time. Let's wait for the Apple/SPM teams to fix their bugs and build the features requested by the community. You may want to let them know you'd like to use GRDB at https://feedbackassistant.apple.com |
|
Thanks for explaining! Seems like a tough situation. My request is motivated by trying to create a Swift library package that depends upon GRDB. I guess #1115 is very similar. It's about an executable package, but the root cause is probably the same. By the way, could you explain why GRDB is using "system" for it's C target? Shouldn't it be possible to have a C target without using "system"? Is "system" required to work around some other issue? |
|
FYI, failed to create a SPM library which has a dependency on GRDB due to this semver issue with XCode Version 13.2.1 (13C100) |
|
As a temporary workaround for anyone else who is caught in this thread, I forked/updated the tag so you don't have to: .package(url: "https://github.com/JayToltTech/GRDB.swift.git", from: "5.17.0") Note: temporary fork, not going to be updated, expect this to disappear once this issue is resolved one way or the other. |
|
Re "Failed to parse the manifest file" -- I think you can make this work by
using an alternate form of specifying the dependency on GRDB, which doesn't
use the "from:" argument. That has drawbacks like either requiring you to
stick with the head of a branch, or requiring you to pin to a specific
release, neither of which are appropriate for use as a library dependency.
…On Wed, Jan 5, 2022 at 8:15 AM JayToltTech ***@***.***> wrote:
FYI, failed to create a SPM library which has a dependency on GRDB due to
this semver issue:
[image: Screen Shot 2022-01-05 at 8 12 58 AM]
<https://user-images.githubusercontent.com/69092530/148250688-fa0a95f3-1eaf-413d-8d51-ca5c3a2d8f34.png>
import PackageDescription
let package = Package(
name: "...",
products: [
.library(
name: "...",
targets: ["...","..."]),
],
dependencies: [
.package(url: "https://github.com/stephencelis/SQLite.swift.git", from:
"0.13.1"),
.package(url: "https://github.com/groue/GRDB.swift.git", from: "v5.17.0")
],
targets: [
.target(
name: "...",
dependencies: [
.product(name: "SQLite", package: "SQLite.swift"),
.product(name: "GRDB", package: "GRDB.swift")
])
]
)
—
Reply to this email directly, view it on GitHub
<#1125 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABK3V2XNA4THNKDILIPYF3UURVB3ANCNFSM5LJKPK5Q>
.
You are receiving this because you were mentioned.Message ID: <groue/GRDB.
***@***.***>
|
|
@JayToltTech - thanks for chiming in. I was wondering if doing a fork and tag rename would work. I guess GRDB doesn't want to switch to SPM compatible tags because it would break every existing downstream dependency that is depending on the old tags. (Presumably these are not SPM dependencies.) GRDB could fork a GRDB-legacy-tags.git, then the update the mainline GRDB to use SPM-compatible tags. Every client that depended on the legacy tag format would have to manually change their dependencies by changing which git repo they pulled from. I see why GRDB is choosing to live with broken SPM support, in the hope that SPM is updated to support GRDB someday. But is sure is frustrating as someone trying to use GRDB as a dependency. |
|
Also, I didn't remove tag v5.17.0, I just added tag 5.17.0 pointing to the same commit and all worked fine with SPM, so #368 doesn't seem to be an issue at this point. |
The issue, @JayToltTech, is in your package file: import PackageDescription
let package = Package(
...
dependencies: [
.package(name: "GRDB", url: "https://github.com/groue/GRDB.swift.git", .upToNextMajor(from: "5.17.0")),
],
targets: [
.executableTarget(
name: "...",
dependencies: ["GRDB"]),
]
)I deeply regret SPM is so immature, and that I have to answer this kind of issue. I'm not paid by Apple to provide support for their lacking environment. But please don't mismatch SPM issues, poor ergonomics, and bad error reporting with issues in community packages. Here the problem(s) are clearly on the SPM side. If you have concerns, do raise your voice at the correct location, thank you. |
Yes. This is basic respect for the work of GRDB users.
I fully agree. Frustrated users, I beg you to report Apple bugs to Apple. I can't do it for you. I understand it is easier to calm one's frustration on an open source volunteer. But in such situations, this does strictly nothing to help fixing your problem. Use https://feedbackassistant.apple.com. Ideally, report any progress on this side so that all GRDB users are aware of the progress. |
|
@groue reported to Apple as you requested. From a pure practicality standpoint, assuming the responsible apple developer takes your viewpoint that "v*" is acceptable, it will be many months before XCode and the toolchain is released with a fix. And as an impartial third party, I'm not certain your argument will be received as 'unquestionably correct'. Is there a value in perhaps thinking that a Swift library should adapt itself to work with the Swift toolchain that Apple provides, as opposed to the other way around? One of the reasons for the fork is that you can use that repo to test for other unintended consequences or breakages with the dual tag approach, if you were so inclined. |
|
You are not impartial, @JayToltTech, you are lost. There is no problem with GRDB support for SPM with Xcode, as far as I know. This is not a GRDB issue, it is a buggy package definition that has to be fixed. There is a problem with Swift Playgrounds for iPad. This app is buggy. I won't create difficulties for other GRDB users who are working hard in order to satisfy the desire of a few people to fiddle with an immature application. |
|
Ouch! Hey, thanks for all the great work here @groue, it's much appreciated. I know open source development can feel like it's a lot of conflict and not a lot of gratitude. Wasn't trying to be that person to you.
|
|
Don't worry! I had to put an end to what looked like an endless argument 😅 For whoever read this discussion in the future, make sure you read the reasons why this request was rejected, all listed in the previous comments. |
|
FYI, in case you're waiting for Apple to change their mind @groue: Jan 5, 2022 at 10:19 AM – FB9833870 Recent Similar Reports:None Apple, Jan 12, 2022 at 1:47 PM |
|
Let me repeat the arguments I gave above, @JayToltTech, because they still stand:
Until each one of those arguments is addressed, I do not see any reason to change my decision, which is to keep the current tagging policy. Yet your energy is quite welcome! What about spending it on writing an answer to the Apple engineer, with all the reasons why Swift Playgrounds for iPad should support "v..." tags? This would be a helpful contribution. |
|
Just in case it can help, I reported the issue in the Swift forums as well. |
|
This definitely closes this issue. There is no debate: the bug is in Swift Playgrounds for iPad, and the tagging scheme of GRDB is totally legit. Thanks to everyone! |

As I understand it, Swift Package Manager requires tags to be in the format 1.0.0 (without any prefix), while GRDB strongly prefers the format v1.0.0.
I understand that you've filed a bug requesting that SPM be extended to support the GRDB project's preferred tag format.
But in the meantime, would you be willing to double-tag your releases, so that each release has both a v tag and a SPM-compatible tag?
As things currently stand, it's hard for people to write Swift Package Manager packages that depend on GRDB.
The text was updated successfully, but these errors were encountered: