cocoapods-trunk
cocoapods-trunk copied to clipboard
Can't push pod with different case after the old one was deleted
Hello 👋, I work for Datadog and I'm struggling with pushing our Datadog.podspec
by getting:
[!] {"name"=>["is already taken"]}
A little background:
- In the past, a different community member did push the
DataDog.podspec
(camel case); - We contacted this member and he added me as a contributor, so
pod trunk me
is this:
❯ pod trunk me
- Name: Maciek Grzybowski
- Email: <my datadoghq.com e-mail>
- Since: March 11th, 16:14
- Pods:
- DataDog
- Then I deleted the only existing version of his pod:
pod trunk delete DataDog 0.6.2
Now, even if the DataDog.podspec
was removed from specs repo 14 hours ago, I still can't succeed with pod trunk push Datadog.podspec
.
I have searched for possible workarounds, including this one "#172 name is already taken" after a pod version delete, but my issue seems different, as it includes both, the contributor change and case sensitivity thing.
Any suggestions what we can do to share our Datadog pod with the community 🙂?
I'm on pod --version
1.9.1.
DataDog.podspec
was on version 0.6.2
, I'm trying to push 1.0.0-beta1
- here's my podspec.
Could anyone 🙏 help on that 🙂? This blocks us from releasing our pod under our Datadog
trademark and forces us to make up an artificial name 🙅♂.
Wrapping up, even if the DataDog.podspec
is deleted:
❯ pod trunk delete DataDog 0.6.2
WARNING: It is generally considered bad behavior to remove versions of a Pod that others are depending on!
Please consider using the `deprecate` command instead.
Are you sure you want to delete this Pod version?
> yes
[!] No pod found with the specified name.
I can't push Datadog.podspec
:
❯ pod trunk push Datadog.podspec
Updating spec repo `trunk`
Validating podspec
-> Datadog (1.0.0-beta1)
- NOTE | xcodebuild: note: Using new build system
- NOTE | xcodebuild: note: Planning build
- NOTE | xcodebuild: note: Constructing build description
- NOTE | [iOS] xcodebuild: warning: Skipping code signing because the target does not have an Info.plist file and one is not being generated automatically. (in target 'App' from project 'App')
- NOTE | xcodebuild: note: Execution policy exception registration failed and was skipped: Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" (in target 'Datadog' from project 'Pods')
- NOTE | xcodebuild: note: Execution policy exception registration failed and was skipped: Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" (in target 'Pods-App' from project 'Pods')
- NOTE | xcodebuild: note: Execution policy exception registration failed and was skipped: Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" (in target 'App' from project 'App')
[!] {"name"=>["is already taken"]}
This happens because you're not trying to push the same pod than the old one and replacing it, but trying to push a different new pod (with a different name than the other one) but whose name is conflicting with the old one.
Note especially that the two use different cases, DataDog for the old, already existing one vs Datadog for the new one you're trying to push. So trunk considers that you're trying to push a different, new pod and refuses because there's already one with a name that is too similar (case-insensitive-wise)
If the goal is to replace the old pod, be sure to use the exact same name too, namely DataDog with capital D
Hey @AliSoftware, thanks for looking into this issue.
Our goal was to re-claim our Datadog
trademark for the pod name. Thus, what we want to ship is not related to old DataDog
pod in any way. But I understand if there's not a mechanism in CP trunk to solve this case 😞. We might need to end up with a different name for the pod.
https://github.com/CocoaPods/trunk.cocoapods.org/issues/279 Having a similar issue here.