Skip to content

Latest commit

 

History

History
79 lines (54 loc) · 2.5 KB

DEVELOPMENT.md

File metadata and controls

79 lines (54 loc) · 2.5 KB

Development/Releasing of this Project

Development

You can use CocoaPods or Swift Package Manager.

Reminder: Please see the CONTRIBUTING.md file for how to contribute to this project.

Swift Package Manager

  • open Package.swift or double click Package.swift in Finder.
  • Xcode will open the project
    • The GTMSessionFetcher-Package scheme seems generally the simplest to build everything and run tests.
    • Choose a target platform by selecting the run destination along with the scheme

CocoaPods

Install

  • CocoaPods 1.10.0 (or later)
  • CocoaPods generate - This is not part of the core cocoapods install.

Generate an Xcode project from the podspec:

pod gen GTMSessionFetcher.podspec --local-sources=./ --auto-open --platforms=ios

Note: Set the --platforms option to macos, tvos, or watchos to develop/test for those platforms.


Releasing

To update the version number and push a release:

  1. Examine what has changed; determine the appropriate new version number.

  2. Update the version number.

    Run the update_version.py script to update the appropriate files with the new version number, by passing in the new version (must be in X.Y.Z format).

    ./update_version.py 1.3.1

    Submit the changes to the repo.

  3. Create a release on Github.

    Top left of the project's release page is Draft a new release.

    The tag should be vX.Y.Z where the version number X.Y.Z exactly matches the one you provided to the update_version.py script. (GTMSessionFetcher has a v prefix on its tags.)

    For the description call out any major changes in the release. Usually the Generate release notes button in the toolbar is a good starting point and just updating as need for more/less detail (dropping comments about CI, updating the version number, etc.).

  4. Publish the CocoaPod.

    pod trunk push --skip-tests GTMSessionFetcher.podspec

    NOTE: We use --skip-tests because CocoaPods has issues testing spec that have tests and target watchOS. The CI setup also skips the tests for watchOS for the same reason. Since we generally get testing on ever PR these seems to be safe. If CI ever can start to enable watchOS tests, that running the tests against as part of the push will be an option.