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

RFC: Semantic Versioning for TypeScript Types #730

Merged
merged 41 commits into from
Apr 19, 2022

Commits on Mar 23, 2021

  1. RFC: Semantic Versioning for TypeScript Types

    This RFC proposes a definition of [Semantic Versioning][semver] for
    managing changes to TypeScript types, including when the TypeScript
    compiler makes breaking changes in its type-checking and type emit
    across a “minor”release.(Note that this RFC addresses *only* type
    checking and type emit, *no t* the “transpilation”mode of the TypeScript
    compiler.)
    
    [semver]: https://semver.org
    
    While this RFC is being authored in the context of Ember.js’ [adoption
    of TypeScript as a first-cl ass supported language][RFC], its
    recommendations are intentionally general, in hopes that th ese
    recommendations can be widely adopted by the broader TypeScript
    community.
    
    [RFC]: emberjs#724
    chriskrycho committed Mar 23, 2021
    Configuration menu
    Copy the full SHA
    2fca926 View commit details
    Browse the repository at this point in the history

Commits on Mar 24, 2021

  1. Configuration menu
    Copy the full SHA
    758d1fb View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2021

  1. Fix typo in discussion of user-constructibility

    Co-authored-by: Jeremy W. Sherman <[email protected]>
    chriskrycho and jeremy-w committed Apr 16, 2021
    Configuration menu
    Copy the full SHA
    d593ea9 View commit details
    Browse the repository at this point in the history
  2. Fix many typos and wordos

    Co-authored-by: Jeremy W. Sherman <[email protected]>
    chriskrycho and jeremy-w committed Apr 16, 2021
    Configuration menu
    Copy the full SHA
    20f6f3c View commit details
    Browse the repository at this point in the history

Commits on May 21, 2021

  1. Improve the discussion of type and value symbols

    - incorporate `enum`, `const enum`, and `namespace`
    - break it out into bullet points for easier digestion
    chriskrycho committed May 21, 2021
    Configuration menu
    Copy the full SHA
    94af7e6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0f253da View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6c6352f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    892bc8b View commit details
    Browse the repository at this point in the history
  5. Fix typo: double word

    Co-authored-by: Jeremy W. Sherman <[email protected]>
    chriskrycho and jeremy-w committed May 21, 2021
    Configuration menu
    Copy the full SHA
    0156240 View commit details
    Browse the repository at this point in the history
  6. Move the design summary to the top

    Per discussion with the Ember TS strike team, moving the design summary
    to the top gives an easily-digestible and -comprehensible overview of
    the recommendations in the doc for people just wanting to get the big
    idea.
    chriskrycho committed May 21, 2021
    Configuration menu
    Copy the full SHA
    97ff732 View commit details
    Browse the repository at this point in the history
  7. Elaborate how type-only imports affect new value exports

    Thanks to @jeremy-w and @tjjfvi for this clarification.
    chriskrycho committed May 21, 2021
    Configuration menu
    Copy the full SHA
    8620856 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2a61af5 View commit details
    Browse the repository at this point in the history
  9. Type definitions should reflect API design *intent*

    As @RyanCavanaugh notes [here][1], the author of an API may intend that
    a given function or method is allowed to return a wider type than the
    "current" implementation at a given time allows. The type signature thus
    should reflect the intent of the API, *not* merely its implementation.
    
    [1]: emberjs#730 (comment)
    chriskrycho committed May 21, 2021
    Configuration menu
    Copy the full SHA
    36fc065 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    3a353db View commit details
    Browse the repository at this point in the history
  11. Update outline

    chriskrycho committed May 21, 2021
    Configuration menu
    Copy the full SHA
    21e6e8a View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2021

  1. Configuration menu
    Copy the full SHA
    756393e View commit details
    Browse the repository at this point in the history
  2. Update outline!

    chriskrycho committed Jun 10, 2021
    Configuration menu
    Copy the full SHA
    199e94c View commit details
    Browse the repository at this point in the history
  3. Explicitly address TS' lack of spec

    @jeremy-w correctly [pointed out][1] that the presence of the playground
    links suggests that the behavior is *observed* rather than *promised*.
    Make explicit both that the playground links are not normative *and*
    that since TS has no formal spec, the implementation is the source of
    truth for the type system.
    
    [1]: emberjs#730 (comment)
    chriskrycho committed Jun 10, 2021
    Configuration menu
    Copy the full SHA
    68f2743 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    59d4cb7 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    564a301 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2021

  1. Configuration menu
    Copy the full SHA
    54c2352 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b7aac99 View commit details
    Browse the repository at this point in the history
  3. Improve structure of discussion of breaking changes

    In order to support the upcoming addition of a discussion of variance,
    and to make the flow of the document clearer, restructure subsections
    under Defining Breaking Changes:
    
    - Introduce a new level-3 section, "Changes to Types", to cover all
      the detailed analysis of changes to code, and which will be the
      natural home of the discussion of variance.
    - Move the discussion of supported compiler versions into another new
      level-3 section "Compiler Considerations", which also subsumes the
      existing discussions of strictness and module interop.
    chriskrycho committed Jun 11, 2021
    Configuration menu
    Copy the full SHA
    2619e88 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2021

  1. Add explanation of (type-level) variance

    This does not *quite* finish the RFC content: it still requires showing
    the examples of kinds of things which type-level variance prevents us
    from typing safely, and describing the workarounds. This is much
    simpler than the explanation, though!
    chriskrycho committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    e9823f8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bfe34e6 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2021

  1. Configuration menu
    Copy the full SHA
    e69ca4b View commit details
    Browse the repository at this point in the history
  2. Trivial cleanup

    chriskrycho committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    018474b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    fb5f21e View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2021

  1. Configuration menu
    Copy the full SHA
    fba27fe View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7c606c8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    37f8469 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ebef821 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a9ab13a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a20fc11 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0a51d41 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    9329a14 View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2021

  1. Configuration menu
    Copy the full SHA
    225457f View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2022

  1. Configuration menu
    Copy the full SHA
    be1bb90 View commit details
    Browse the repository at this point in the history
  2. Missing .

    chriskrycho committed Feb 21, 2022
    Configuration menu
    Copy the full SHA
    db09c0e View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2022

  1. noPropertyAccessFromIndexSignature -> noUncheckedIndexedAccess

    This was just a mental flub: it was always intended to be the latter,
    and I just repeatedly typo'd it.
    chriskrycho committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    2628216 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2022

  1. Point to semver-ts.org

    chriskrycho committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    20587e6 View commit details
    Browse the repository at this point in the history