Skip to content
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

Release POD #10

Closed
mattheworiordan opened this issue Apr 29, 2015 · 28 comments
Closed

Release POD #10

mattheworiordan opened this issue Apr 29, 2015 · 28 comments
Labels
bug Something isn't working. It's clear that this does need to be fixed.

Comments

@mattheworiordan
Copy link
Member

When doing a lint on the pod spec I get an error:

$ pod spec lint ably.podspec

 -> ably (0.7.0)
    - WARN  | [iOS]  SocketRocket/SocketRocket/SRWebSocket.m:923:55: warning: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long long') to 'size_t' (aka 'unsigned long') [-Wshorten-64-to-32]
    - WARN  |  SocketRocket/SocketRocket/SRWebSocket.m:1606:32: warning: unused function 'log_queue' [-Wunused-function]
    - WARN  | [iOS]  SocketRocket/SocketRocket/SRWebSocket.m:127:20: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'CC_LONG' (aka 'unsigned int') [-Wshorten-64-to-32]
    - WARN  | [iOS]  SocketRocket/SocketRocket/SRWebSocket.m:464:209: warning: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead [-Wformat]
    - WARN  | [iOS]  SocketRocket/SocketRocket/SRWebSocket.m:533:135: warning: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead [-Wformat]
    - WARN  | [iOS]  SocketRocket/SocketRocket/SRWebSocket.m:568:74: warning: implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'UInt32' (aka 'unsigned int') [-Wshorten-64-to-32]
    - WARN  | [iOS]  SocketRocket/SocketRocket/SRWebSocket.m:879:92: warning: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead [-Wformat]
    - WARN  | [iOS]  SocketRocket/SocketRocket/SRWebSocket.m:1463:38: warning: implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int' [-Wshorten-64-to-32]
    - WARN  | [iOS]  SocketRocket/SocketRocket/SRWebSocket.m:1673:12: warning: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Wshorten-64-to-32]
    - WARN  | [iOS]  SocketRocket/SocketRocket/base64.c:183:10: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    - WARN  |  ably/ably-ios/ARTMsgPackEncoder.m:63:17: warning: method 'decodeError:' in protocol 'ARTEncoder' not implemented [-Wprotocol]
    - NOTE  |  ably/ably-ios/ARTEncoder.h:37:1: note: method 'decodeError:' declared here

Analyzed 1 podspec.

[!] The spec did not pass validation.

Also, once this is fixed, can you advise how I can publish this pod?

@mattheworiordan mattheworiordan added the bug Something isn't working. It's clear that this does need to be fixed. label Apr 29, 2015
@mattheworiordan
Copy link
Member Author

@thevixac please see above?

@mattheworiordan
Copy link
Member Author

@ricardopereira can you confirm this is resolved?

@ricardopereira
Copy link
Contributor

Still broken. Removing all the current warnings from code will do it.

@mattheworiordan
Copy link
Member Author

Removing all the current warnings from code will do it.

What is involved in that?

@ricardopereira
Copy link
Contributor

The pod spec lint validates the podspec and warns you of any errors that occur. The warnings are the same from what we have on the code. There is an option --allow-warnings that validates even if warnings are present but I prefer to fix them all.

@mattheworiordan
Copy link
Member Author

Yes, definitely

@ricardopereira
Copy link
Contributor

#213 does some changes about this issue.
Now, the lint result is:

➜  ably-ios git:(master) ✗ pod spec lint Ably.podspec

[!] The spec did not pass validation, due to 1 error.
➜  ably-ios git:(master) ✗ pod spec lint Ably.podspec --verbose

    Ably (0.8.0) - Analyzing on iOS 8.0 platform.
  Preparing

Analyzing dependencies

Fetching external sources
-> Fetching podspec for `Ably` from `/Users/ricardopereira/Repositories/Whitesmith/ably-ios/Ably.podspec`

Resolving dependencies of

Comparing resolved specification to the sandbox manifest
  A Ably
  A SwiftWebSocket

Downloading dependencies

-> Installing Ably (0.8.0)
 > Git download
 > Git download
     $ /usr/bin/git clone https://github.com/ably/ably-ios.git
     /var/folders/s0/n37l1z0x4jv26v1cfkt9514m0000gn/T/d20160213-44778-x0hrcl --single-branch --depth
     1 --branch 0.8.0
     Cloning into '/var/folders/s0/n37l1z0x4jv26v1cfkt9514m0000gn/T/d20160213-44778-x0hrcl'...
     warning: Could not find remote branch 0.8.0 to clone.
     fatal: Remote branch 0.8.0 not found in upstream origin

[!] Error installing Ably
 -> Ably (0.8.0)
    - ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/bin/git clone https://github.com/ably/ably-ios.git /var/folders/s0/n37l1z0x4jv26v1cfkt9514m0000gn/T/d20160213-44778-x0hrcl --single-branch --depth 1 --branch 0.8.0

Cloning into '/var/folders/s0/n37l1z0x4jv26v1cfkt9514m0000gn/T/d20160213-44778-x0hrcl'...
warning: Could not find remote branch 0.8.0 to clone.
fatal: Remote branch 0.8.0 not found in upstream origin
) during validation.

It is an expected error.
Basically, the tag 0.8.0 is missing.

@mattheworiordan
Copy link
Member Author

Basically, the tag 0.8.0 is missing.

Ok, we should hopefully be in a position to do a 0.8.0 tag release I expect, once we are confident the API won't have expected breaking changes. @tcard do you think we are at this point, especially considering ably/docs#87?

@tcard
Copy link
Contributor

tcard commented Feb 14, 2016

@mattheworiordan Well, I don't know what is to be expected form a 0.8.0 tag release. It surely doesn't implement the 0.8 full spec (including ably/docs#87) yet. The API, on superficial terms, should be totally compatible with the 0.8 spec after merging #204, so if you think that's enough...

@mattheworiordan
Copy link
Member Author

@tcard based on semver, I'd like to ensure that any updates from the point we hit 0.8.0 don't break the existing API i.e. if we add more overloaded methods, new methods to objects, add attributes, then that's not breaking. But if we are aware of any breaking changes to the API in the current state, then I'd prefer we address that before a 0.8 release. What is your view on that?

@tcard
Copy link
Contributor

tcard commented Feb 14, 2016

@mattheworiordan Semantic versioning API guarantees don't kick in before 1.0, so OK, we can make a "soft promise" about it at this point (after #204), I think.

@mattheworiordan
Copy link
Member Author

Semantic versioning API guarantees don't kick in before 1.0

I was not aware of that, our next release should then be 1.0 instead of 0.9. I will raise an issue

@mattheworiordan
Copy link
Member Author

@ricardopereira we have decided that given the fix for
CocoaPods/trunk.cocoapods.org#172 (comment) could take a long time, we're going to publish as AblyRealtime. Please update the Pod for master, tell me when done, and I will push this to Cocoapods.

@mattheworiordan
Copy link
Member Author

FYI, I published it successfully:

$ pod trunk push AblyRealtime.podspec
Updating spec repo `master`

CocoaPods 1.0.0.beta.6 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Validating podspec
 -> AblyRealtime (0.8.0-beta.3)

Updating spec repo `master`

CocoaPods 1.0.0.beta.6 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

  - Data URL: https://raw.githubusercontent.com/CocoaPods/Specs/b0ffd47dc16bc5b72d350301e7f84b601e00acf3/Specs/AblyRealtime/0.8.0-beta.3/AblyRealtime.podspec.json
  - Log messages:
    - March 18th, 19:07: Push for `AblyRealtime 0.8.0-beta.3' initiated.
    - March 18th, 19:07: Push for `AblyRealtime 0.8.0-beta.3' has been pushed (2.168428523 s).

However, oddly it seems that Cocoapods is having an issue now, see https://cocoapods.org/?q=Ably, the old Ably module is now showing and AblyRealtime is missing, then weirdly going to https://cocoapods.org/pods/ably gives a 500, yet going to https://cocoapods.org/pods/AblyRealtime redirects to https://www.ably.io. WTF is going on?

mattheworiordan added a commit to ably/docs that referenced this issue Mar 18, 2016
Not working currently, see ably/ably-cocoa#10
@ricardopereira
Copy link
Contributor

What the mess!
Well, AblyRealtime is available https://github.com/CocoaPods/Specs/blob/master/Specs/AblyRealtime/0.8.0-beta.3/AblyRealtime.podspec.json and I try it with:

pod 'AblyRealtime', '= 0.8.0-beta.3'

and it works.

Note: it's necessary to explicitly specify the version in order to install a pre-release version.

@orta
Copy link

orta commented Mar 18, 2016

The old one is showing because I classed it as un-deleted for you, I've un-done that, next time the search is re-index'd it should be removed.

@mattheworiordan
Copy link
Member Author

Thanks @orta. I assume we'll follow the issue progress until you guys have addressed the Github issue so that we can publish it as Ably? Thanks again.

@ricardopereira
Copy link
Contributor

What about this one? Will AblyRealtime pod be renamed to Ably?

@mattheworiordan
Copy link
Member Author

@ricardopereira if we can yes, can you try?

@ricardopereira
Copy link
Contributor

@mattheworiordan I tried again and the usual error occurs: [!] {"name"=>["is already taken"]}.
@orta Could you please take a look?


branch: test-rename-ably-pod
tag: 0.8.6
log:

... (redacted)

** BUILD SUCCEEDED **

 -> Ably (0.8.6)
    - WARN  | xcodebuild:  msgpack/Pod/Classes/MessagePackParser+Streaming.m:22:18: warning: designated initializer should only invoke a designated initializer on 'super' [-Wobjc-designated-initializers]
    - NOTE  | xcodebuild:  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk/usr/include/objc/NSObject.h:60:1: note: method marked as designated initializer of the class here

opening connection to trunk.cocoapods.org:443...
opened
starting SSL for trunk.cocoapods.org:443...
SSL established
<- "POST /api/v1/pods?allow_warnings=true HTTP/1.1\r\nContent-Type: application/json; charset=utf-8\r\nAccept: application/json; charset=utf-8\r\nUser-Agent: CocoaPods/1.0.1\r\nAuthorization: Token a9dd38babd855c64fc6d84da2209c868\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nHost: trunk.cocoapods.org\r\nContent-Length: 670\r\n\r\n"
<- "{\"name\":\"Ably\",\"version\":\"0.8.6\",\"summary\":\"iOS client for Ably\",\"description\":\"iOS client library for ably.io, the realtime messaging service, written in Objective-C and ready for Swift 2.0.\",\"homepage\":\"https://www.ably.io\",\"license\":{\"type\":\"Apache 2.0\",\"file\":\"LICENSE\"},\"authors\":{\"Ably\":\"[email protected]\"},\"source\":{\"git\":\"https://github.com/ably/ably-ios.git\",\"tag\":\"0.8.6\"},\"requires_arc\":true,\"social_media_url\":\"https://twitter.com/ablyrealtime\",\"documentation_url\":\"https://www.ably.io/documentation\",\"platforms\":{\"ios\":\"8.0\"},\"source_files\":\"Source/*.{h,m}\",\"module_map\":\"Source/Ably.modulemap\",\"dependencies\":{\"SocketRocket\":[\"0.5.1\"],\"msgpack\":[\"0.1.8\"]}}\n"
-> "HTTP/1.1 422 \r\n"
-> "Date: Fri, 02 Sep 2016 17:28:23 GMT\r\n"
-> "Connection: keep-alive\r\n"
-> "Strict-Transport-Security: max-age=31536000\r\n"
-> "Content-Type: application/json\r\n"
-> "Content-Length: 39\r\n"
-> "X-Content-Type-Options: nosniff\r\n"
-> "Server: thin 1.6.2 codename Doc Brown\r\n"
-> "Via: 1.1 vegur\r\n"
-> "\r\n"
reading 39 bytes...
-> "{\"error\":{\"name\":[\"is already taken\"]}}"
read 39 bytes
Conn keep-alive

@orta
Copy link

orta commented Sep 2, 2016

I've marked "Ably" as not deleted, if you can't push now it's because you don't have access via trunk for that email. 👍

@ricardopereira
Copy link
Contributor

@orta Unfortunately, I got the same error: [!] {"name"=>["is already taken"]}.

@ricardopereira
Copy link
Contributor

pod trunk me has ably

  - Name:     Ricardo Pereira
  - Email:    [email protected]
  - Since:    May 30th, 2015 21:02
  - Pods:
    - ably
... (redacted)

@orta Maybe is something related with the char case, could be? Is it possbile to rename it to capitalised?

@orta
Copy link

orta commented Sep 2, 2016

Yeah looks like the case check is on purpose - I can change the case in the db, but I'm not 100% sure of all the ramifications, though, as I guess no-one is using the pod nor is it in the Specs repo yet so it shouldn't break existing installations

@orta
Copy link

orta commented Sep 2, 2016

done

@ricardopereira
Copy link
Contributor

Success 🙌
@orta thank you.

@ricardopereira
Copy link
Contributor

@mattheworiordan
Copy link
Member Author

Thanks @orta, we all really appreciate your help :)

ricardopereira added a commit that referenced this issue Aug 22, 2019
 - This failed in RTP9a because it sometimes ends but the ACK/NACK of the last sent presence message has not arrived yet, it means the callback is pended. The callback is called when the connection closes (test ends), a "ARTErrorInfo with code 0, message: connection broken before receiving publishing acknowledgment." happens and it will crash because the callback is nil.

EXC_BAD_ACCESS (code=1, address=0x10) in ARTRealtimeChannel.m:335

Thread 3 Queue : io.ably.tests (serial)
#0	0x000000012186c6b4 in __47-[ARTRealtimeChannel publishPresence:callback:]_block_invoke.164 at /<redacted>/ably-cocoa/Source/ARTRealtimeChannel.m:335
#1	0x000000012186ecdd in __43-[ARTRealtimeChannel sendMessage:callback:]_block_invoke at /<redacted>/ably-cocoa/Source/ARTRealtimeChannel.m:450
#2	0x00000001218be38e in __22-[ARTEventEmitter on:]_block_invoke at /<redacted>/ably-cocoa/Source/ARTEventEmitter.m:209
#3	0x00000001083ff632 in -[__NSObserver _doit:] ()
#4	0x00000001094827bc in __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ ()
#5	0x0000000109481c3f in _CFXRegistrationPost ()
#6	0x0000000109481983 in ___CFXNotificationPost_block_invoke ()
#7	0x00000001095657c2 in -[_CFXNotificationRegistrar find:object:observer:enumerator:] ()
#8	0x00000001094812d1 in _CFXNotificationPost ()
#9	0x00000001083ffddb in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#10	0x00000001218bf843 in -[ARTEventEmitter emit:with:] at /<redacted>/ably-cocoa/Source/ARTEventEmitter.m:275
#11	0x0000000121915222 in -[ARTRealtime transition:withErrorInfo:] at /<redacted>/ably-cocoa/Source/ARTRealtime.m:429
#12	0x0000000121914c0a in -[ARTRealtime transition:] at /<redacted>/ably-cocoa/Source/ARTRealtime.m:412
#13	0x000000012191b755 in -[ARTRealtime onClosed] at /<redacted>/ably-cocoa/Source/ARTRealtime.m:768
#14	0x0000000121928933 in -[ARTRealtime realtimeTransport:didReceiveMessage:] at /<redacted>/ably-cocoa/Source/ARTRealtime.m:1392
#15	0x00000001218c4bef in -[ARTWebSocketTransport receive:] at /<redacted>/ably-cocoa/Source/ARTWebSocketTransport.m:109
#16	0x00000001218c4cbe in -[ARTWebSocketTransport receiveWithData:] at /<redacted>/ably-cocoa/Source/ARTWebSocketTransport.m:114
#17	0x00000001218c7c44 in -[ARTWebSocketTransport webSocketMessageData:] at /<redacted>/ably-cocoa/Source/ARTWebSocketTransport.m:367
#18	0x00000001218c77a0 in -[ARTWebSocketTransport webSocket:didReceiveMessage:] at /<redacted>/ably-cocoa/Source/ARTWebSocketTransport.m:349
#19	0x0000000121bf06c9 in __43-[SRWebSocket _handleFrameWithData:opCode:]_block_invoke.239 ()
#20	0x000000010b3e2ccf in _dispatch_call_block_and_release ()
#21	0x000000010b3e3d02 in _dispatch_client_callout ()
#22	0x000000010b3ea720 in _dispatch_lane_serial_drain ()
#23	0x000000010b3eb261 in _dispatch_lane_invoke ()
#24	0x000000010b3f3fcb in _dispatch_workloop_worker_thread ()
#25	0x000000010bb12611 in _pthread_wqthread ()
#26	0x000000010bb123fd in start_wqthread ()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working. It's clear that this does need to be fixed.
Development

No branches or pull requests

4 participants