Parse-SDK-iOS-OSX icon indicating copy to clipboard operation
Parse-SDK-iOS-OSX copied to clipboard

Define SDK compatibility

Open mtrezza opened this issue 2 years ago • 3 comments

New Feature / Enhancement Checklist

Current Limitation

This Parse SDK is lacking a proper OS compatibility policy and CI tests.

Feature / Enhancement Description

Add CI jobs which test against the major OS versions for which this Parse SDK is claiming compatibility. For example, if it supports watchOS, the tests needs to run in watchOS 2, 3, 4, ... up to the highest version it is claiming to be compatible with.

Accordingly, a compatibility table needs to be added to the README that indicated the compatible - and tested - OS versions.

The SDK also lacks a OS support policy that defines when support for older OS versions is dropped. For example, watchOS 2 has been released 8 years ago, so its support should likely be dropped. Currently, the min supported version should likely be watchOS 9 because watchOS 8 has reached its EOL and doesn't receive security updates anymore. The only source for the support dates I found was a 3rd party website, but we should base the support policy on an official source from Apple.

mtrezza avatar Oct 07 '23 08:10 mtrezza

Thanks for opening this issue!

  • 🎉 We are excited about your ideas for improvement!

Add CI jobs which test against the major OS versions

This wouldn’t work as GitHub Actions only supports 5 concurrent jobs on MacOS images for the entire repo. A build matrix you want would take hours if not days to run. Not to mention actually implementing it.

Accordingly, a compatibility table needs to be added to the README

Github Badges for supported version have been added to the README, this should be enough.

The SDK also lacks a OS support policy

This is the current policy, no need to document it as it is standard everywhere.

  1. Support the minimum versions Xcode supports.
  2. Support the minimum versions allowed for specific iOS, macOS, tvOS, watchOS features.
  3. Support the minimum versions allowed for dependencies.

dplewis avatar Oct 07 '23 13:10 dplewis

A build matrix you want would take hours if not days to run. Not to mention actually implementing it.

The run time length is something we can solve with more runners. What's the challenge in the implementation? Is it more than just adding a matrix to the CI workflow like we do with Node.js for example?

Github Badges for supported version have been added to the README, this should be enough.

I wouldn't know how to interpret these badges. For example, what does the iOS 12.0 badge mean?

This is the current policy, no need to document it as it is standard everywhere.

We could still have a different policy, a developer currently can only guess what our policy is, so we need to define it. We do that in all other Parse SDKs.

mtrezza avatar Oct 07 '23 22:10 mtrezza