Giter Club home page Giter Club logo

nanopb-podspec's Introduction

Version numbers

nanopb doesn't follow https://semver.org/. It uses four digit versions and has only used major version 0 which in semver implies any update can be breaking.

The CocoaPods minor version is calculated from the nanopb version with the formula: minor * 10,000 + patch * 100 + fourth

The CocoaPod major version is not 0 because some CocoaPods incorrectly published with floating dependencies allowing updates to any 0 major version. Other major version updates may be done because of iOS support versioning changes even if the underlying nanopb library is unimpacted. For example, the major update from 1 to 2 is done to bump the minimum supported iOS version to 9 because Xcode 12 no longer supports iOS 8 and generates build warnings for nanopb client apps.

The CocoaPods patch version should be used for any podspec or other packaging updates.

Additional versioning background

While nanopb tries to follow a variation of semver and updates the fourth digit for non-breaking patch updates, the policy is not enforced for binary dependencies which can break when source dependencies don't, like the #define changes in 0.3.9.4.

The pod instead looks for sources from the podspec's source attribute.

Publishing

Publish this pod with --allow-warnings to address a warning caused by the podspec's version attribute not matching a tag in the source-of-truth repo.

nanopb-podspec's People

Contributors

chuongv avatar davidair avatar jou avatar ncooke3 avatar paulb777 avatar rsgowman avatar var-const avatar vimanyu avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nanopb-podspec's Issues

iOS 10 no longer supported with version 0.3.9.6

Same report than nanopb/nanopb#586.

Steps to reproduce the issue

  1. Install firebase version 6.31.1 with cocoapods, include nanopb version 0.3.9.6 (pod spec 1.30906.0).
  2. In Xcode, archived with iOS Deployment Target iOS 10.0.

What happens?

Ignoring file /Users/xxxxxx/Library/Developer/Xcode/DerivedData/xxxxxx-xxxxx/Build/Intermediates.noindex/ArchiveIntermediates/xxxxxxx/BuildProductsPath/Recette-iphoneos/nanopb/libnanopb.a, building for iOS-armv7 but attempting to link with file built for iOS-arm64
Undefined symbol: _pb_encode_varint
Undefined symbol: _pb_decode_varint
Undefined symbol: _pb_encode_string
Undefined symbol: _pb_encode_submessage
Undefined symbol: _pb_encode_tag_for_field
Undefined symbol: _pb_read
Undefined symbol: _pb_istream_from_buffer
Undefined symbol: _pb_ostream_from_buffer
Undefined symbol: _pb_decode
Undefined symbol: _pb_release
Undefined symbol: _pb_encode

What should happen?

nothing (no warning, no ignoring file, no error). Works well with nonapb version 0.3.9.1 (pod spec 0.3.901).

CocoaPod nanopb released with missing file

Hey Google,

I was working with your new Firebase and Flutter systems. I found that on iOS that the linker complains about a missing references in your Pod for nanopb which incidentally required by Firebase/Core via Firebase/Analytics.

Here is my version of the firebase_core lib
image

A full write up of the situation can be found over here in the appendix to my comment here: nanopb/nanopb#393

I believe the following needs to happen:

  1. A new pod needs to be released with the missing file included
  2. A test suite at Google for flutter + firebase on iOS should probably be installed (how can a failure like this happen?)
  3. Someone should probably update the cocoa pod listing page for this Pod to list the new maintainer and the git repo (https://cocoapods.org/pods/nanopb)

If I made a mistake please forgive me its my first few hours in the flutter ecosystem so I apologize in advance. :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.