Git Product home page Git Product logo

manifesto's Introduction

Work in progress.

Topics this README needs to cover or direct the reader to are:

How to use an elm-janitor patched core package in an Elm project. Peters instructions. Future plans in this area - someone needs to write a tool to automate distribution/install of these patched versions.

Elm Core Library Maintenance

elm-janitor is a group of Elm users that are interested in maintaining the Elm core packages by applying patches to them. The patch stack will always be applied on top of the latest official release of the Elm core packages, with patches removed from the stack if they become part of the official release.

Is this a fork of Elm?

This is a release branch of Elm. It will only apply patches to Elm core packages that do not change their APIs. The aim of this GitHub organization is to keep Elm core packages up to date with their pull requests. This is so that

  • Elm users can get the core packages with fixes applied.
  • Elm users have a process for getting PRs into these packages, without being blocked on the official releases.

The difference between a fork and a release branch, is that the release branch will not try to lead the design of these packages. It will be ahead of the upstream in terms of patches. All patches will be made available to the upstream for consideration for inclusion. The main aim of a release branch is to fix defects that are fed back from real world use of the packages, in a timely manner.

What will get fixed here?

Pull requests to the Elm core packages, are evaluated to assign them to one of the following level. The level names are hopefully self explanatory, see the Appendix at the end of this README for some more detailed notes.

  1. Doc Fixes
  2. Performance Improvements
  3. Runtime Bug Fixes
  4. API Changes to Implementation
  5. API New Functions
  6. API Changes
  7. Language Semantics

A sheet of analysed PRs is maintained here, Elm Bug Fixes.

There is a column in the sheet to mark some PRs as "Controversial", which might happen if Evan has commented that a particular solution may be undesirable. This flag is used to mark things that are too controversial to merge.

Anything at levels 1-4 is acceptable for fixing as part of this maintenance work. Level 1 is regarded as low priority. Level 5 is backwards compatible, but code using it would not be able to revert to the original APIs without change. Level 5 is therefore currently out of scope.

How do I get my patch included?

Make a PR against whichever elm/ core project you want to make a change to.

Post a link to your PR to the Incremental Elm #elm-janitor channel. If you need an invite to join the Discord server, use this link here to sign up: Incremental Elm Discord Invite

We will assess your PR and assign it a level as described above, and add it to the bug tracking sheet.

To keep the patches clean, please ensure your patch follows the style of the code being modified, and does not include any changes to whitespace of code outside of the code being modified. In particular, note that Evan does not use elm-format on the core packages, but prefers to use a 2 space indent.

How do I get involved in reviewing and merging patches?

This github organization will be managed through dicussion on the Incremental Elm #elm-janitor channel. Anyone on that channel can ask to join the org as a patch maintainer.

This guide to reviewing and merging patches for maintainers should be followed.

Appendix - Bug Fix Impact Levels

1. Doc Fixes

Changes to the docs only, no code changes.

2. Performance Improvements

Changes that only affect runtime performance. Ideally a benchmark would also be provided to back up the claim.

3. Runtime Bug Fixes

Changes that eliminate one or more runtime exceptions.

4. API Changes to Implementation

Changes to the implementation that fix some bug other than a runtime exception. Sometimes it can be debatable if something if a bug or a feature. This can be discussed on the #elm-janitor channel.

5. API New Functions

Changes that add new functions to elm/ core APIs, but do not change any existing APIs.

6. API Changes

Changes to elm/ core APIs that would require a bump to the major version.

7. Language Semantics

Changes to the Elm language itself.

manifesto's People

Contributors

rupertlssmith avatar

Stargazers

Dim L. Feiron avatar Per Øyvind Kanestrøm avatar Adrian Sieber avatar gigi avatar Justin avatar Julian Pistorius avatar Ivan D Vasin avatar Laurent Payot avatar Dirk Johnson avatar Evan Relf avatar Hunor Geréd avatar Adam DiCarlo avatar Cedd Burge avatar justinTNT avatar Marek Šimek avatar Marc Walter avatar Rónán avatar Kostia R avatar Per Lundholm avatar Alessandro Re avatar Augustin avatar  avatar Matt McHenry avatar

Watchers

Jonas Coch avatar Adam DiCarlo avatar Ivan D Vasin avatar Matt McHenry avatar  avatar  avatar Rónán avatar

manifesto's Issues

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.