Skip to content

Update for Contributors library guidelines #18

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

Merged
merged 5 commits into from
Oct 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# https://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false
29 changes: 29 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"env": { "browser": true, "commonjs": true },
"extends": "eslint:recommended",
"parserOptions": { "ecmaVersion": 5 },
"rules": {
"block-scoped-var": "error",
"consistent-return": "error",
"eqeqeq": "error",
"guard-for-in": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-extra-parens": "off",
"no-extend-native": "error",
"no-loop-func": "error",
"no-new": "error",
"no-param-reassign": "error",
"no-return-assign": "error",
"no-sequences": "error",
"no-unused-expressions": "error",
"no-use-before-define": "error",
"no-undef": "error",
"no-eq-null": "error",
"radix": ["error", "always"],
"indent": ["error", 2, { "SwitchCase": 1 }],
"quotes": ["error", "double"],
"semi": ["error", "always"],
"strict": ["error", "global"]
}
}
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Bug report
about: Report an issue
title: ""
labels: bug
assignees: ""
---

**Describe the bug**
A clear and concise description of the bug.

**To Reproduce**
A minimal code example (preferably a runnable example on [Try PureScript](https://try.purescript.org)!) or steps to reproduce the issue.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Additional context**
Add any other context about the problem here.
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/change-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: Change request
about: Propose an improvement to this library
title: ""
labels: ""
assignees: ""
---

**Is your change request related to a problem? Please describe.**
A clear and concise description of the problem.

Examples:

- It's frustrating to have to [...]
- I was looking for a function to [...]

**Describe the solution you'd like**
A clear and concise description of what a good solution to you looks like, including any solutions you've already considered.

**Additional context**
Add any other context about the change request here.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: PureScript Discourse
url: https://discourse.purescript.org/
about: Ask and answer questions here.
- name: Functional Programming Slack
url: https://functionalprogramming.slack.com
about: For casual chat and questions (use https://fpchat-invite.herokuapp.com to join).
11 changes: 11 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
**Description of the change**
Clearly and concisely describe the purpose of the pull request. If this PR relates to an existing issue or change proposal, please link to it. Include any other background context that would help reviewers understand the motivation for this PR.

---

**Checklist:**

- [ ] Added the change to the changelog's "Unreleased" section with a link to this PR and your username
- [ ] Linked any existing issues or proposals that this pull request should close
- [ ] Updated or added relevant documentation in the README and/or documentation directory
- [ ] Added a test for the contribution (if applicable)
51 changes: 51 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up PureScript toolchain
uses: purescript-contrib/setup-purescript@main

- name: Cache PureScript dependencies
uses: actions/cache@v2
with:
key: ${{ runner.os }}-spago-${{ hashFiles('**/*.dhall') }}
path: |
.spago
output

- name: Set up Node toolchain
uses: actions/setup-node@v1
with:
node-version: "12.x"

- name: Cache NPM dependencies
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-

- name: Install NPM dependencies
run: npm install

- name: Build the project
run: npm run build

- name: Run tests
run: npm run test
24 changes: 13 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
.DS_Store
.psci
.psci_modules
.pulp-cache
npm-debug.log
node_modules/
bower_components/
tmp/
output/
.psc-ide-port
.psc-package/
.*
!.gitignore
!.github
!.editorconfig
!.eslintrc.json

output
generated-docs
bower_components

node_modules
package-lock.json
*.lock
15 changes: 0 additions & 15 deletions .travis.yml

This file was deleted.

64 changes: 64 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Changelog

Notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

Breaking changes (😱!!!):

New features:

Bugfixes:

Other improvements:

## [v6.1.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v6.1.0) - 2019-05-28

**Updates**

* #14 Add `hydrate` function (@starper)
* #17 Relax upper bound on `purescript-react` for v0.13.x compiler compatibility (@hdgarrood)

## [v6.0.1](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v6.0.1) - 2019-03-10

**Updates**

- #12 update web-dom dependency (@athanclark)

## [v6.0.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v6.0.0) - 2018-06-09

**Breaking Changes**

- Updates for PureScript 0.12 and React 6.0.0 #11 (@natefaubion)

## [v5.0.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v5.0.0) - 2017-12-16

**Breaking**

- #10 Updates dependencies (@jvliwanag)

## [v4.1.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v4.1.0) - 2017-10-11

**Features**

- #8 Added `refToNode` (@coot)

## [v4.0.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v4.0.0) - 2017-07-11

- Updates for the latest `purescript-react` release (@coot)

## [v3.0.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v3.0.0) - 2017-04-05

- Updates for 0.11 compiler

## [v1.0.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v1.0.0) - 2016-06-12

- Compatible with PureScript compiler versions >= 0.9.1 (@spicydonuts)

## [v0.2.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v0.2.0) - 2016-03-05

- Release compatible with `purescript-react#v0.7.0` (@kRITZCREEK)

## [v0.1.0](https://github.com/purescript-contrib/purescript-react-dom/releases/tag/v0.1.0) - 2016-01-25

- Initial release compatible with `purescript-react#v0.6.0`
5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Contributing to React DOM

Thanks for your interest in contributing to `react-dom`! We welcome new contributions regardless of your level of experience or familiarity with PureScript.

Every library in the Contributors organization shares a simple handbook that helps new contributors get started. With that in mind, please [read the short contributing guide on purescript-contrib/governance](https://github.com/purescript-contrib/governance/blob/main/contributing.md) before contributing to this library.
48 changes: 42 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,51 @@
# purescript-react-dom
# React DOM

Low-level React DOM bindings for PureScript
[![CI](https://github.com/purescript-contrib/purescript-react-dom/workflows/CI/badge.svg?branch=main)](https://github.com/purescript-contrib/purescript-react-dom/actions?query=workflow%3ACI+branch%3Amain)
[![Release](https://img.shields.io/github/release/purescript-contrib/purescript-react-dom.svg)](https://github.com/purescript-contrib/purescript-react-dom/releases)
[![Pursuit](https://pursuit.purescript.org/packages/purescript-react-dom/badge)](https://pursuit.purescript.org/packages/purescript-react-dom)
[![Maintainer: ethul](https://img.shields.io/badge/maintainer-ethul-teal.svg)](https://github.com/ethul)

- [Module Documentation](https://pursuit.purescript.org/packages/purescript-react-dom/)
Low-level React DOM bindings for PureScript. You may also be interested in the higher-level [`react-basic-dom`](https://github.com/lumihq/purescript-react-basic-dom) library.

The library summary hasn't been written yet (contributions are welcome!). The library summary describes the library's purpose in one to three sentences.

## Installation

Install `react-dom` with [Spago](https://github.com/purescript/spago):

```sh
spago install react-dom
```
bower install purescript-react-dom

You will also need to install the `react-dom` package from NPM:

```sh
npm install --save react-dom
```

## Example
## Quick start

The quick start hasn't been written yet (contributions are welcome!). The quick start covers a common, minimal use case for the library, whereas longer examples and tutorials are kept in the [docs directory](./docs).

## Documentation

`react-dom` documentation is stored in a few places:

1. Module documentation is [published on Pursuit](https://pursuit.purescript.org/packages/purescript-react-dom).
2. Written documentation is kept in the [docs directory](./docs).
3. You can use the [react-example](https://github.com/ethul/purescript-react-example) to see these bindings in action.

If you get stuck, there are several ways to get help:

- [Open an issue](https://github.com/purescript-contrib/purescript-react-dom/issues) if you have encountered a bug or problem.
- [Search or start a thread on the PureScript Discourse](https://discourse.purescript.org) if you have general questions. You can also ask questions in the `#purescript` and `#purescript-beginners` channels on the [Functional Programming Slack](https://functionalprogramming.slack.com) ([invite link](https://fpchat-invite.herokuapp.com/)).

## Contributing

You can contribute to `react-dom` in several ways:

1. If you encounter a problem or have a question, please [open an issue](https://github.com/purescript-contrib/purescript-react-dom/issues). We'll do our best to work with you to resolve or answer it.

2. If you would like to contribute code, tests, or documentation, please [read the contributor guide](./CONTRIBUTING.md). It's a short, helpful introduction to contributing to this library, including development instructions.

Please refer to [purescript-react-example](https://github.com/ethul/purescript-react-example)
3. If you have written a library, tutorial, guide, or other resource based on this package, please share it on the [PureScript Discourse](https://discourse.purescript.org)! Writing libraries and learning resources are a great way to help this library succeed.
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
],
"repository": {
"type": "git",
"url": "git://github.com/purescript-contrib/purescript-react-dom.git"
"url": "https:://github.com/purescript-contrib/purescript-react-dom.git"
},
"dependencies": {
"purescript-web-dom": "^2.0.0",
Expand Down
3 changes: 3 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# React DOM Documentation

This directory contains documentation for `react-dom`. If you are interested in contributing new documentation, please read the [contributor guidelines](../CONTRIBUTING.md) and [What Nobody Tells You About Documentation](https://documentation.divio.com) for help getting started.
10 changes: 4 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
{
"private": true,
"scripts": {
"clean": "rimraf output && rimraf .pulp-cache",
"build": "pulp build"
"build": "eslint src && spago build --purs-args '--censor-lib --strict'",
"test": "spago test --no-install"
},
"devDependencies": {
"pulp": "^12.0.0",
"purescript-psa": "^0.6.0",
"purescript": "^0.12.0",
"rimraf": "^2.5.4"
"eslint": "^7.6.0",
"purescript-psa": "^0.8.0"
},
"peerDependencies": {
"react-dom": "^16.0.0"
Expand Down
4 changes: 4 additions & 0 deletions packages.dhall
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
let upstream =
https://github.com/purescript/package-sets/releases/download/psc-0.13.8-20201007/packages.dhall sha256:35633f6f591b94d216392c9e0500207bb1fec42dd355f4fecdfd186956567b6b

in upstream
9 changes: 0 additions & 9 deletions psc-package.json

This file was deleted.

5 changes: 5 additions & 0 deletions spago.dhall
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{ name = "react-dom"
, dependencies = [ "console", "effect", "psci-support", "react", "web-dom" ]
, packages = ./packages.dhall
, sources = [ "src/**/*.purs", "test/**/*.purs" ]
}
1 change: 0 additions & 1 deletion src/ReactDOM.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* global exports */
"use strict";

var ReactDOM = require("react-dom");
Expand Down
11 changes: 11 additions & 0 deletions test/Main.purs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module Test.Main where

import Prelude

import Effect (Effect)
import Effect.Class.Console (log)

main :: Effect Unit
main = do
log "🍝"
log "You should add some tests."