Skip to content

Publish pre-release versions of TypeScript via npm #964

Closed

Description

TypeScript in master contains many new and interesting features. It would be great if pre-release versions could be installed via npm. This would hopefully help get more testing and exposure for these features for downstreams who can tolerate the risks.

eg. via

npm install typescript@future

Activity

  1. danquirk commented on Oct 27, 2014

    @danquirk
    Member

    We did talk about this somewhat recently. I believe a pending work item was to clarify the npm naming conventions here to ensure that the pre-release packages never interfered with workflows of people who don't want pre-release bits. How often would you expect the pre-release versions to be published? On some regular cadence or like every day/check in automatically?

  2. robertknight commented on Oct 28, 2014

    @robertknight
    Author

    My understanding of the semver rules is that a prerelease package would be named [major].[minor].[patch]-[prerelease tag] eg. '1.3.0-beta.1' and published to a tag such as 'future' (eg. with 'npm publish --tag future'). By default npm installs the 'latest' tag, so as long as you publish a pre-release with a different tag, users who don't want pre-release builds shouldn't get them. Packages which depend on a pre-release version of TypeScript (eg. with "^1.3.0-beta.4') are only satisfied by pre-releases with the same (major, minor, patch) tuple.

    As far as release cadence goes, I think it is a good idea to automate the process - but whether it happens on each check-in, once a day etc. doesn't matter so much - whatever fits in with your CI system. For a typical Github project the easiest place to do it is as part of a Travis CI build triggered by a check-in.

  3. vvakame commented on Oct 31, 2014

    @vvakame
    Contributor

    DefinitelyTyped/DefinitelyTyped#3031
    I'm expecting publish when LKG is updated.

  4. Arnavion commented on Nov 14, 2014

    @Arnavion

    You don't have to publish to the npm registry (or even a private registry) to be able to use it to install packages. npm supports installing from tarballs, and Github generates tarballs for tags. I maintain https://github.com/Arnavion/typescript-github and update it every so often with the build products of latest master. Installing it with npm is just npm install https://github.com/Arnavion/typescript-github/tarball/<release name>

    Of course in this repository's case, the automatic tarball will contain the full source whereas consumers of the tarball are just interested in the bin directory. You can have a task in your Jakefile that tags a pre-release but uploads a custom tarball to GH. Alternatively, you can do as I did and make a separate repository and check in just the contents of the bin directory.

    Regarding how often to tag and publish, I agree with Masahiro Wakame (@vvakame) that a publish on every LKG update is a good idea.

  5. vvakame commented on Jul 24, 2015

    @vvakame
    Contributor

    closed by #3875 ?

  6. DanielRosenwasser commented on Jul 24, 2015

    @DanielRosenwasser
    Member

    Not just yet; I need to ensure that the nightly build script actually works when it gets triggered before closing.

  7. added
    CommittedThe team has roadmapped this issue
    and removed
    Needs ProposalThis issue needs a plan that clarifies the finer details of how it could be implemented.
    on Jul 24, 2015
  8. DanielRosenwasser commented on Jul 24, 2015

    @DanielRosenwasser
    Member

    Pretty confident it works so far. The command is

    npm install -g typescript@next
  9. Arnavion commented on Jul 24, 2015

    @Arnavion

    Daniel Rosenwasser (@DanielRosenwasser) How often are you guys going to publish? Then I can retire my repo :)

  10. DanielRosenwasser commented on Jul 24, 2015

    @DanielRosenwasser
    Member

    Arnav Singh (@Arnavion) Nightly :D

    Check around midnightish to see the end-of-day build.

  11. dsebastien commented on Jul 24, 2015

    @dsebastien

    Awesome news :)

  12. robertknight commented on Jul 25, 2015

    @robertknight
    Author

    Indeed. Thanks so much!

  13. locked and limited conversation to collaborators on Jun 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

CommittedThe team has roadmapped this issueFixedA PR has been merged for this issueSuggestionAn idea for TypeScript

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions