parse-community / Parse-SDK-iOS-OSX

The Apple SDK for Parse Platform (iOS, macOS, watchOS, tvOS)
https://parseplatform.org
Other
2.81k stars 865 forks source link

Define SDK compatibility #1755

Open mtrezza opened 9 months ago

mtrezza commented 9 months ago

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.

parse-github-assistant[bot] commented 9 months ago

Thanks for opening this issue!

dplewis commented 9 months ago

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.
mtrezza commented 9 months ago

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.