swiftlang / swiftlang/github-workflows

Add an API diff workflow

Open
#155 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Swift
Stars
115
Forks
57
Avg merge
1d 8h
Merged PRs (30d)
3

Description

In addition to the existing API breakage workflow, it'd be helpful to see the diff of the swiftinterface file (or equivalent for packages that can't build with library evolution enabled) that the PR is making.

When a package has a large diff where most of the code is implementation, it can be difficult to spot the exact API changes it's making.

There are a few ways this could be surfaced to the user:

  • Option A: A comment posted by the workflow back on the PR
  • Option B: The workflow just printing the diff and the user needing to click on the GitHub check link and reviewing it manually

Either would be fine to start.

Presumably, this would come with some configurability, mainly the list of modules to diff - there might be internal modules that the maintainer might not care about seeing the diff of, and might even cause noise.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing API breakage workflow and trace how it runs on pull requests. Determine how to obtain the swiftinterface diff, or an equivalent for packages without library evolution, and compare presenting it as a PR comment versus a GitHub check output. Done means the workflow surfaces the API diff and supports configuring which modules are included.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, swift
Domain
api, ci-cd
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.