Skip to content

Implement API Diff workflow#3103

Merged
S2Ler merged 1 commit into
mainfrom
v2/s2ler/300-api-stability
Sep 10, 2021
Merged

Implement API Diff workflow#3103
S2Ler merged 1 commit into
mainfrom
v2/s2ler/300-api-stability

Conversation

@S2Ler
Copy link
Copy Markdown
Contributor

@S2Ler S2Ler commented Jun 21, 2021

  • API Diff job is only run on the correctly named PR branches.
  • Depending on the release you are targeting, you need to append the
    version in the first part of the branch name. See CONTRIBUTING.md for
    more details.
    There much limitation in CircleCI configs which make it difficult to
    automate picking correct base API commit hash:
    • Can't have dynamic keys in the save_cache step.

High-level overview of the API Diff workflow:

  1. Get API definition for the base API
  2. Get API definition for the current API
  3. Compare two APIs and report breaking changes

Other workflow improvements:

  • Cache Carthage builds across workflow runs.

Authors: @Udumft @dersim-davaod @S2Ler

@S2Ler S2Ler requested a review from a team June 21, 2021 14:53
@S2Ler S2Ler self-assigned this Jun 21, 2021
Comment thread .circleci/config.yml Outdated
Comment thread .circleci/config.yml Outdated
Comment thread CONTRIBUTING.md Outdated
@S2Ler S2Ler mentioned this pull request Jun 22, 2021
Comment thread .circleci/config.yml Outdated
@S2Ler S2Ler force-pushed the v2/s2ler/300-api-stability branch from 6e80a35 to a455547 Compare June 24, 2021 08:08
@S2Ler S2Ler requested a review from a team June 24, 2021 14:50
@S2Ler S2Ler force-pushed the v2/s2ler/300-api-stability branch 2 times, most recently from 04ba839 to 7a83262 Compare June 25, 2021 21:12
@S2Ler
Copy link
Copy Markdown
Contributor Author

S2Ler commented Jun 25, 2021

I found a way to do everything I wanted but without requiring branch convention. The idea is to have a file in the repository (.base_api at the moment) which will contain a hash of the commit which should be considered use for base API.

The caching is done by using checksum template component in cache key.

@S2Ler S2Ler force-pushed the v2/s2ler/300-api-stability branch 2 times, most recently from 224f77a to 400f562 Compare June 28, 2021 06:58
@S2Ler S2Ler requested a review from 1ec5 June 28, 2021 07:08
@S2Ler S2Ler force-pushed the v2/s2ler/300-api-stability branch 2 times, most recently from bf117f3 to 4dd0439 Compare June 30, 2021 09:56
@S2Ler S2Ler changed the base branch from release-v2.0 to main June 30, 2021 09:56
@S2Ler S2Ler force-pushed the v2/s2ler/300-api-stability branch 2 times, most recently from 6640a80 to c21565a Compare July 6, 2021 10:38
@S2Ler
Copy link
Copy Markdown
Contributor Author

S2Ler commented Jul 6, 2021

@mapbox/navigation-ios I've addressed all the concerns. Let's land this PR right after we release RC to start tracking API breaking changes and find/fix edge cases if any.

@S2Ler S2Ler added this to the v2.0.0 (GA) milestone Aug 10, 2021
@S2Ler S2Ler force-pushed the v2/s2ler/300-api-stability branch 2 times, most recently from 77878c7 to 2e1b87c Compare September 8, 2021 14:00
@S2Ler S2Ler requested review from a team, Udumft and azarovalex and removed request for a team September 10, 2021 07:18
@S2Ler S2Ler force-pushed the v2/s2ler/300-api-stability branch from 2e1b87c to 3169e6e Compare September 10, 2021 07:25
`.base_api` file contains a hash of the first major version release
commit.

High-level overview of the API Diff workflow:
1. Get API definition for the base API
2. Get API definition for the current API
3. Compare two APIs and report breaking changes

Other workflow improvements:
- Cache Carthage builds across workflow runs.
@S2Ler S2Ler force-pushed the v2/s2ler/300-api-stability branch from 3169e6e to e6cfb22 Compare September 10, 2021 07:26
Comment thread .base_api
@S2Ler S2Ler merged commit a645600 into main Sep 10, 2021
@S2Ler S2Ler deleted the v2/s2ler/300-api-stability branch September 10, 2021 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants