From b1bb4f2a467831249f8b82b83db9d27162cf76c3 Mon Sep 17 00:00:00 2001 From: "Thomas R. Honeyman" Date: Mon, 31 Aug 2020 20:51:57 -0700 Subject: [PATCH 1/5] Update for Spago --- packages.dhall | 4 ++++ spago.dhall | 13 +++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 packages.dhall create mode 100644 spago.dhall diff --git a/packages.dhall b/packages.dhall new file mode 100644 index 0000000..6413e8d --- /dev/null +++ b/packages.dhall @@ -0,0 +1,4 @@ +let upstream = + https://github.com/purescript/package-sets/releases/download/psc-0.13.8-20200831/packages.dhall sha256:cdb3529cac2cd8dd780f07c80fd907d5faceae7decfcaa11a12037df68812c83 + +in upstream diff --git a/spago.dhall b/spago.dhall new file mode 100644 index 0000000..86131de --- /dev/null +++ b/spago.dhall @@ -0,0 +1,13 @@ +{ name = "argonaut" +, dependencies = + [ "argonaut-codecs" + , "argonaut-core" + , "argonaut-traversals" + , "console" + , "effect" + , "psci-support" + , "quickcheck" + ] +, packages = ./packages.dhall +, sources = [ "src/**/*.purs", "test/**/*.purs" ] +} From 2f24b63ec861daf4bef0c556a8fd44455b8dcc8e Mon Sep 17 00:00:00 2001 From: "Thomas R. Honeyman" Date: Mon, 31 Aug 2020 20:52:39 -0700 Subject: [PATCH 2/5] Update .github directory --- .github/{contributing.md => CONTRIBUTING.md} | 0 ...t_template.md => PULL_REQUEST_TEMPLATE.md} | 0 .github/issue_template.md | 21 ------------------- 3 files changed, 21 deletions(-) rename .github/{contributing.md => CONTRIBUTING.md} (100%) rename .github/{pull_request_template.md => PULL_REQUEST_TEMPLATE.md} (100%) delete mode 100644 .github/issue_template.md diff --git a/.github/contributing.md b/.github/CONTRIBUTING.md similarity index 100% rename from .github/contributing.md rename to .github/CONTRIBUTING.md diff --git a/.github/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from .github/pull_request_template.md rename to .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/issue_template.md b/.github/issue_template.md deleted file mode 100644 index 648770e..0000000 --- a/.github/issue_template.md +++ /dev/null @@ -1,21 +0,0 @@ -## Pre-check - -* For help and support, try the [PureScript user forum](https://discourse.purescript.org) or the [functional programming Slack](https://functionalprogramming.slack.com) before opening an issue in the repository. -* For bug reports, do a quick search to ensure the bug has not yet been reported. -* For new feature requests, please remember to describe the feature you would like to see, why you need it, and how it might be implemented. -* Finally -- be nice and have fun! - ---- - -## Environment - -* PureScript **[version]** -* `purescript-argonaut` **[version]** - -## Current behavior - -Please include code samples, errors, steps to reproduce, and compiler output if appropriate. - -If possible, provide a sample minimal app or test case that reproduces the error. For visual bugs that are difficult to demonstrate in text, consider including a .gif using an app like [Recordit](http://www.recordit.co/). - -## Expected behavior From 50e00e5bd2fc39b55b5927f42794c1b1ac9460cf Mon Sep 17 00:00:00 2001 From: "Thomas R. Honeyman" Date: Mon, 31 Aug 2020 20:53:22 -0700 Subject: [PATCH 3/5] Add examples to Spago paths --- spago.dhall | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spago.dhall b/spago.dhall index 86131de..6e9b133 100644 --- a/spago.dhall +++ b/spago.dhall @@ -9,5 +9,5 @@ , "quickcheck" ] , packages = ./packages.dhall -, sources = [ "src/**/*.purs", "test/**/*.purs" ] +, sources = [ "src/**/*.purs", "test/**/*.purs", "examples/**/*.purs" ] } From 83dc6051002ab25d12b8643f910bfb627ee409b2 Mon Sep 17 00:00:00 2001 From: "Thomas R. Honeyman" Date: Mon, 31 Aug 2020 20:58:31 -0700 Subject: [PATCH 4/5] Update library structure --- .editorconfig | 13 ++++++ .github/CONTRIBUTING.md | 52 ++---------------------- .github/ISSUE_TEMPLATE/bug-report.md | 19 +++++++++ .github/ISSUE_TEMPLATE/change-request.md | 21 ++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 ++++ .github/PULL_REQUEST_TEMPLATE.md | 20 ++++----- .github/workflows/ci.yml | 34 ++++++++++++++++ .github/workflows/stale.yml | 23 +++++++++++ .gitignore | 22 +++------- .travis.yml | 23 ----------- README.md | 49 +++++++++++++++------- docs/CHANGELOG.md | 15 +++++++ docs/README.md | 3 ++ package.json | 13 ------ 14 files changed, 186 insertions(+), 129 deletions(-) create mode 100644 .editorconfig create mode 100644 .github/ISSUE_TEMPLATE/bug-report.md create mode 100644 .github/ISSUE_TEMPLATE/change-request.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/stale.yml delete mode 100644 .travis.yml mode change 100755 => 100644 README.md create mode 100644 docs/CHANGELOG.md create mode 100644 docs/README.md delete mode 100644 package.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..e717f5e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# http://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 diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 368e5e2..8403405 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,51 +1,5 @@ -# Contribution +# Contributing to Argonaut -Thank you for contributing to `purescript-argonaut`! +Thanks for your interest in contributing to `argonaut`! We welcome new contributions regardless of your level of experience or familiarity with PureScript. -Following these guidelines helps ensure we're able to carefully consider your contribution and help you finalize your pull request. Your time (like ours) is valuable, and we try to at least provide constructive feedback on every contribution. - -### Contributions we love -`purescript-argonaut` is an open-source library and we love to receive contributions. There are many ways you can contribute: - -* Help expand our test coverage -* Help fix open issues, even if that simply means adding a helpful comment -* Help push along open pull requests that need more work to be complete -* Improve or add new usage examples to better demonstrate how to use the library in real-world scenarios -* Update documentation and tutorials to be easier to understand, more comprehensive, and above all -- up to date! - -### Contributions we should discuss -Some contributions will take some discussion before we accept an update to the project. If your contribution includes one of the below examples (or seems to be reasonably similar), please consider reaching out to us before putting in a lot of work to build the feature. We're active on the [PureScript user forum](https://discourse.purescript.org) and the [functional programming Slack](https://functionalprogramming.slack.com/) community (new? [use this link to join](https://fpchat-invite.herokuapp.com/)!). For feature requests, feel free to open an issue with a tag. - -* New features and functions that will change the library's public API -* New tutorials (while we love seeing new tutorials, we won't always be able to feature them in the readme) - -# Ground Rules - -We have a small set of quality-of-life guidelines for contributing to `purescript-argonaut`. These include: - -* All pull requests must pass continuous integration. -* If you are adding new functionality, you should provide tests and documentation for your code. If you're fixing an existing bug, please provide a failing test case your patch solves. -* If possible, please avoid requiring new dependencies. - -### Filing issues -If you have a general question about the project, it's best to ask on the [PureScript user forum](https://discourse.purescript.org) or the [functional programming Slack](https://functionalprogramming.slack.com/) than to open a new issue. If you have run into a bug in the project, then please do open an issue! When you do, we ask that you follow a few steps which are outlined in our issues template. The gist of it is here: - -* Verify the problem is indeed with `purescript-argonaut` (not with Pulp, Bower, or PureScript); -* Record what versions you are using for PureScript and `purescript-argonaut` -* Describe the issue with steps to reproduce (as much as you are able). A minimal reproducible example is the absolute best case scenario. - -We promise to address the issue as soon as we can. - -### Suggesting features or enhancements -We love to hear about ways we could make better. If you're wishing for a feature that doesn't exist in `purescript-argonaut`, you're probably not alone; there are bound to be others with similar needs. Please feel free to open an issue on GitHub that describes: - -* the feature you would like to see -* why you need it -* how it should work - -We promise to review your issue, but we aren't always able to accommodate all requests. It helps if you're able to contribute to the implementation, too! - -### Code reviews -The core team looks at pull requests at weekly, at which point we will review your code, ensure it meets our ground rules and fits with the philosophy of the project, and -- if necessary -- provide constructive feedback. As soon as at least one member of the team has signed off on your pull request, we will merge your contribution. - -If you opened a pull request and we need to ask a few questions, we expect responses within a month. After that we may close the pull request if it isn't showing any activity to keep things manageable. +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. diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 0000000..b79b995 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -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. diff --git a/.github/ISSUE_TEMPLATE/change-request.md b/.github/ISSUE_TEMPLATE/change-request.md new file mode 100644 index 0000000..a2ee685 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/change-request.md @@ -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. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..c47a263 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -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). diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 7c16360..d8780f7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,15 +1,11 @@ -## What does this pull request do? +**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. -Please describe the purpose of the pull request, including any background context and links to related issues. If this introduces a large change to the project, please describe what you have implemented. +--- -## Where should the reviewer start? +**Checklist:** -Help save the reviewer time by highlighting the most important sections of code. - -## How should this be manually tested? - -If this is a new feature, you should provide new test coverage. If it fixes an existing bug, you should provide a failing test case this change fixes. Other than automated testing, what manual tests can the reviewer perform to verify your work? - -## Other Notes: - -Does the project documentation need to be updated? Should we introduce a new example, or update any existing examples? Does this PR require any other follow-up tasks? +- [ ] 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) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..6b0550f --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,34 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up a 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: Install dependencies + run: spago install + + - name: Build source + run: spago build --no-install --purs-args '--censor-lib --strict' + + - name: Run tests + run: spago test --no-install diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000..002dae8 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,23 @@ +name: "Stale" + +on: + schedule: + - cron: "0 0 * * *" + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v3 + env: + days-until-stale: 60 + days-until-close: 14 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: "This issue is stale because it has been open for ${{ env.days-until-stale }} days with no activity. Remove the stale label or comment to keep this issue open. Otherwise, this issue will be closed in ${{ env.days-until-close }} days." + stale-pr-message: "This pull request is stale because it has been open for ${{ env.days-until-stale }} days with no activity. Remove the stale label or comment to keep this pull request open. Otherwise, this pull request will be closed in ${{ env.days-until-close }} days." + days-before-stale: ${{ env.days-until-stale }} + days-before-close: ${{ env.days-until-close }} + stale-issue-label: "stale" + stale-pr-label: "stale" + exempt-pr-labels: "breaking change" diff --git a/.gitignore b/.gitignore index 87cdc07..7bca306 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,8 @@ -/.* -!/.gitignore -!/.github -!/.travis.yml +.* +!.gitignore +!.github +!.editorconfig -# Dependencies -bower_components -node_modules - -# Generated files output generated-docs - -# Lockfiles -package-lock.json -*.lock - -# Extra files -!/.jscsrc -!/.jshintrc +bower_components diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 6da455e..0000000 --- a/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: node_js -dist: trusty -sudo: required -node_js: stable -env: - - PATH=$HOME/purescript:$PATH -install: - - TAG=$(basename $(curl --location --silent --output /dev/null -w %{url_effective} https://github.com/purescript/purescript/releases/latest)) - - curl --location --output $HOME/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$TAG/linux64.tar.gz - - tar -xvf $HOME/purescript.tar.gz -C $HOME/ - - chmod a+x $HOME/purescript - - npm install -g bower - - npm install - - bower install --production -script: - - npm run -s build - - bower install - - npm run -s test -after_success: - - >- - test $TRAVIS_TAG && - echo $GITHUB_TOKEN | pulp login && - echo y | pulp publish --no-push diff --git a/README.md b/README.md old mode 100755 new mode 100644 index 11a2e71..6ed69c6 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# purescript-argonaut +# Argonaut -[![Latest Release](http://img.shields.io/github/release/purescript-contrib/purescript-argonaut.svg)](https://github.com/purescript-contrib/purescript-argonaut/releases) -[![Build Status](https://travis-ci.org/purescript-contrib/purescript-argonaut.svg)](https://travis-ci.org/purescript-contrib/purescript-argonaut) -[![Pursuit](http://pursuit.purescript.org/packages/purescript-argonaut/badge)](http://pursuit.purescript.org/packages/purescript-argonaut/) -[![Maintainer: garyb](https://img.shields.io/badge/maintainer-garyb-lightgrey.svg)](http://github.com/garyb) -[![Maintainer: thomashoneyman](https://img.shields.io/badge/maintainer-thomashoneyman-lightgrey.svg)](http://github.com/thomashoneyman) +[![CI](https://github.com/purescript-contrib/purescript-argonaut/workflows/CI/badge.svg?branch=main)](https://github.com/purescript-contrib/purescript-argonaut/actions?query=workflow%3ACI+branch%3Amain) +[![Release](http://img.shields.io/github/release/purescript-contrib/purescript-argonaut.svg)](https://github.com/purescript-contrib/purescript-argonaut/releases) +[![Pursuit](http://pursuit.purescript.org/packages/purescript-argonaut/badge)](http://pursuit.purescript.org/packages/purescript-argonaut) +[![Maintainer: garyb](https://img.shields.io/badge/maintainer-garyb-teal.svg)](http://github.com/thomashoneyman) +[![Maintainer: thomashoneyman](https://img.shields.io/badge/maintainer-thomashoneyman-teal.svg)](http://github.com/thomashoneyman) [Argonaut](https://github.com/purescript-contrib/purescript-argonaut) is a collection of libraries for working with JSON in PureScript. This library bundles together the following: @@ -14,23 +14,42 @@ ## Installation +Install `argonaut` with [Spago](https://github.com/purescript/spago): + ```sh -# with Spago spago install argonaut - -# with Bower -bower install purescript-argonaut ``` -## Documentation +You can also install Argonaut libraries individually (for example, by only installing `argonaut-core` for the `Json` type). -Module documentation is [published on Pursuit](https://pursuit.purescript.org/packages/purescript-argonaut). +## Quick start -- To learn more about Argonaut, its basic data types, and its approach to JSON, see [purescript-argonaut-core](https://github.com/purescript-contrib/purescript-argonaut-core). -- To learn more about encoding and decoding PureScript types to and from `Json`, see [purescript-argonaut-codecs](https://github.com/purescript-contrib/purescript-argonaut-codecs). +This library bundles together several other libraries. We recommend checking out the quick starts for those libraries depending on which use case you're looking for: + +- To learn more about the basic data types and parsing functions in Argonaut, see [purescript-argonaut-core](https://github.com/purescript-contrib/purescript-argonaut-core). +- To learn more about encoding and decoding PureScript types to and from `Json` using type classes, see [purescript-argonaut-codecs](https://github.com/purescript-contrib/purescript-argonaut-codecs). +- To learn more about encoding and decoding PureScript types to and from `Json` using profunctors, see [purescript-codec-argonaut](https://github.com/garyb/purescript-codec-argonaut). - To learn more about manipulating `Json` using optics and `JCursor`, see [purescript-argonaut-traversals](https://github.com/purescript-contrib/purescript-argonaut-traversals) +## Documentation + +`argonaut` documentation is stored in a few places: + +1. Module documentation is [published on Pursuit](https://pursuit.purescript.org/packages/purescript-argonaut). +2. Written documentation and [the changelog](./docs/CHANGELOG.md) are kept in [the docs directory](./docs). +3. Usage examples can be found in [the test suite](./test). + +If you get stuck, there are several ways to get help: + +- [Open an issue](https://github.com/purescript-contrib/purescript-argonaut/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 -Read the [contribution guidelines](https://github.com/purescript-contrib/purescript-argonaut/blob/master/.github/contributing.md) to get started and see helpful related resources. +You can contribute to `argonaut` in several ways: + +1. If you encounter a problem or have a question, please [open an issue](https://github.com/purescript-contrib/purescript-argonaut/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](./.github/CONTRIBUTING.md). It's a short, helpful introduction to contributing to this library, including development instructions. + +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. diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md new file mode 100644 index 0000000..bb34d86 --- /dev/null +++ b/docs/CHANGELOG.md @@ -0,0 +1,15 @@ +# 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: + +## [0.0.0] - 2020-01-01 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..1e73991 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,3 @@ +# Argonaut Documentation + +This directory contains documentation for `argonaut`. If you are interested in contributing new documentation, please read the [contributor guidelines](../.github/CONTRIBUTING.md) and [What Nobody Tells You About Documentation](https://documentation.divio.com) for help getting started. diff --git a/package.json b/package.json deleted file mode 100644 index 94fceee..0000000 --- a/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "private": true, - "scripts": { - "clean": "rimraf output && rimraf .pulp-cache", - "build": "pulp build -- --censor-lib --strict", - "test": "pulp build --include examples -- --censor-lib --strict && pulp test" - }, - "devDependencies": { - "pulp": "^14.0.0", - "purescript-psa": "^0.7.3", - "rimraf": "^3.0.2" - } -} From 0eddf285953dd3310c301f42796b4a7c6ec62a1f Mon Sep 17 00:00:00 2001 From: "Thomas R. Honeyman" Date: Mon, 31 Aug 2020 21:00:15 -0700 Subject: [PATCH 5/5] Fix link in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ed69c6..b7e4434 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![CI](https://github.com/purescript-contrib/purescript-argonaut/workflows/CI/badge.svg?branch=main)](https://github.com/purescript-contrib/purescript-argonaut/actions?query=workflow%3ACI+branch%3Amain) [![Release](http://img.shields.io/github/release/purescript-contrib/purescript-argonaut.svg)](https://github.com/purescript-contrib/purescript-argonaut/releases) [![Pursuit](http://pursuit.purescript.org/packages/purescript-argonaut/badge)](http://pursuit.purescript.org/packages/purescript-argonaut) -[![Maintainer: garyb](https://img.shields.io/badge/maintainer-garyb-teal.svg)](http://github.com/thomashoneyman) +[![Maintainer: garyb](https://img.shields.io/badge/maintainer-garyb-teal.svg)](http://github.com/garyb) [![Maintainer: thomashoneyman](https://img.shields.io/badge/maintainer-thomashoneyman-teal.svg)](http://github.com/thomashoneyman) [Argonaut](https://github.com/purescript-contrib/purescript-argonaut) is a collection of libraries for working with JSON in PureScript. This library bundles together the following: