CocoaPods / cocoapods-trunk

CocoaPods plugin for trunk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't push pod with different case after the old one was deleted

ncreated opened this issue Β· comments

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.

CocoaPods/trunk.cocoapods.org#279 Having a similar issue here.
image