Code Monkey home page Code Monkey logo

package.elm-lang.org's Introduction

Native review process

To be able to upload native JS code to Elm's package repository, the repository name has to be whitelisted. The Elm packages team is responsible for reviewing the proposals and sending a pull request. Evan is responsible for merging the pull request, and doing the final review.

  1. First, the author of the library should open a new issue with the title: Native review for github-user/repo-name
  2. Members from the packages team will review the library and comment on the issue.
  3. Once three members give their approval, the packages team will create a pull request to add the repo to the whitelist.
  4. Evan will either merge the pull request, or veto whitelisting the library.

In the case that the library get's rejected, the packages team should provide feedback on the issue so the library author can make changes. There is no limit to the number of times a library can be re-reviewed, but we ask that you keep the discuss in one issue (don't create new issues for another review).

Guidelines for native libraries

Library authors should follow these guidelines to avoid having their library rejected. Please note that even if you meet all the requirements on this list, it does not guarantee that your library will be approved. However the reviewer will give you clear feedback on what changes you need to make to get your library approved.

  • Native libraries must only be used for functions which cannot be implemented in Elm.
    • For example, in 0.16 Elm will support tail-call optimization and at that time "avoiding stack overflow" will no longer be a good enough reason to use a native library.
  • All functions must be type-safe and not cause runtime errors. This is a feature of Elm that we want to preserve.
  • All effects must be wrapped in a Signal or Task (Since 0.15, Task is preferred for most functionality).
  • All other functions must not cause side effects.
  • Native libraries should have appropriate types for all definitions. No stringly typed functions please!

Open issues

Members of the packages team should check the list of open native reviews frequently and use the NativeReview-* tags to organize them.

package.elm-lang.org's People

Contributors

avh4 avatar etaque avatar evancz avatar hura avatar ianbollinger avatar jvoigtlaender avatar laszlopandy avatar mgold avatar process-bot avatar rudi-c avatar samweill avatar zinggi avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.