Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set up API Extractor for generating API documentation #290

Merged
merged 60 commits into from
Jul 8, 2021

Conversation

kasperisager
Copy link
Contributor

@kasperisager kasperisager commented Jul 3, 2020

This pull request sets up API Extractor for generating API documentation as Markdown files. API Extractor was chosen as it seemed the most mature and feature-complete of the options available as outlined in #135. Additionally, it's backed by @microsoft and used for large projects such as the SharePoint Framework (https://docs.microsoft.com/en-us/javascript/api/sp-core-library).

In addition to generating API documentation, API Extractor also generates API report files that extract and track the public API surface exposed across packages: https://github.com/Siteimprove/alfa/blob/api-extractor/docs/review/api. During CI, API Extractor can then fail the build if the public API changes.

There are still some outstanding issues in API Extractor that we need resolutions to before this pull request can advance:

Closes #135.

@kasperisager kasperisager added the internal Change that only affects internal APIs or other non-public aspects label Jul 3, 2020
@kasperisager kasperisager self-assigned this Jul 3, 2020
* master:
  Correct test case title
  Add additional examples and include link in README
  Move shortlinks to bottom
  Correct workflow link
  Add initial docs on managing releases
  Add crawler example to README
* master: (477 commits)
  Add @siteimprove/alfa-selective package (#702)
  Implement `Hashable` for `Either<L, R>`
  Bump typescript from 4.1.3 to 4.1.4 (#701)
  Add @siteimprove/alfa-network package (#696)
  Rework @siteimprove/alfa-trilean package (#695)
  Add @siteimprove/alfa-sarif package (#694)
  Support `font` shorthand property (#693)
  Update changelog
  Add additional `Array` functions
  Bump highlight.js from 10.5.0 to 10.6.0 (#697)
  Add additional `Sequence` test case
  Remove unneeded test
  Clean up R69 tests
  Refactor JSON internals
  Adjust `Emitter<T>` and add tests
  Add additional JSON props to ARIA types
  Add some missing package references
  Formatting
  Housekeeping
  Swap some uses of `Ok.of()` for `Result.of()`
  ...
* master: (75 commits)
  Rework audit interviewers for CLI (#699)
  Rework `Hash` as an abstract class (#670)
  `NODE_AUTH_TOKEN` -> `GITHUB_TOKEN`
  Use `NODE_AUTH_TOKEN` for registry authentication
  v0.11.0
  Add scripts for handling release tasks
  Update release workflow
  Update lockfile
  Upgrade to Yarn `master`
  Add version ranges to workspace references
  Add missing plugin
  Use `workspace:` protocol for local package references
  Remove Lerna and disable publish
  Revert "v0.11.0"
  Add missing release heading
  v0.11.0
  Update changelog
  Additional allocation reductions
  Allow self-referencing `aria-labelledby`
  Bump actions/setup-node from v2.1.4 to v2.1.5 (#721)
  ...
@kasperisager
Copy link
Contributor Author

The need for landing this is ever increasing as reiterated on a call I joined today with a prospect. I have added some additional issues to the list of blockers and so I'm afraid it's headed somewhat in the wrong direction 😞

* master:
  Switch to ES2018, take two
  Update to TypeScript 4.2
Base automatically changed from master to main March 1, 2021 08:53
* main:
  Unbranch ARIA types (#729)
  Update change log
  Track ARIA editors draft (#728)
  Update workflows
  Shuffle around some change logs
  v0.12.0
  Prepare release
  Normalize computed accessible names in SIA-R41 and SIA-R81
  Make `Text#toString()` a little better
  Simplify empty `role` check
  Don't overwrite the source of inherited property values
  Accept spaces around CSS variable names in `var()` functions (#725)
  Deal with accessible names that are only whitespace
  Rework media query and handle media ranges (#722)
* main:
  Mark all public APIs
* main:
  Move some documentation files around
  Make descendents of fully clipped nodes invisible (#848)
  Use built-in caching of `actions/setup-node`
  Bump actions/setup-node from 2.1.5 to 2.2.0 (#849)
@kasperisager
Copy link
Contributor Author

A patch for the last blocker is hopefully coming soon: microsoft/rushstack#1916

@kasperisager kasperisager marked this pull request as ready for review July 8, 2021 09:23
@kasperisager kasperisager requested a review from Jym77 as a code owner July 8, 2021 09:23
@kasperisager kasperisager merged commit ae7ebfa into main Jul 8, 2021
@kasperisager kasperisager deleted the api-extractor branch July 8, 2021 09:24
@kasperisager
Copy link
Contributor Author

Landing this now that everything is green and then we'll deal with the outstanding issues as patches are made available. I've still got some changes to make to the API overview, which I want to get done today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal Change that only affects internal APIs or other non-public aspects
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Generate API documentation for all packages
1 participant