From 8725225b68882bdaeb8510a6699efd1425edb3fa Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Fri, 30 Mar 2018 17:55:55 -0700 Subject: [PATCH] add CONTRIBUTING.md --- CONTRIBUTING.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 59 ++-------------------------------- 2 files changed, 87 insertions(+), 56 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..70b8a87 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,84 @@ +# Contributing to Pinafore + +## Caveats + +Please note that this project is _very_ beta right now, and I'm +not in a good position to accept large PRs for +big new features. + +I'm making my code open-source for the sake of +transparency and because it's the right thing to do, but I'm hesitant +to start nurturing a community because of +[all that entails](https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/). + +So I may not be very responsive to PRs or issues. Thanks for understanding. + +## Building + +To build Pinafore for production: + + npm install + npm run build + PORT=4002 npm start + +Now Pinafore is running at `localhost:4002`. + +## Development + +To run a dev server with hot reloading: + + npm run dev + +Now it's running at `localhost:4002`. + +## Linting + +Pinafore uses [JavaScript Standard Style](https://standardjs.com/). + +Lint: + + npm run lint + +Automatically fix most linting issues: + + npx standard --fix + +## Testing + +_**Note:** If you have a local `mastodon_development` Postgres database, this will erase it._ + +Run integration tests, using headless Chrome by default: + + npm test + +Run tests for a particular browser: + + BROWSER=chrome npm run test-browser + BROWSER=chrome:headless npm run test-browser + BROWSER=firefox npm run test-browser + BROWSER=firefox:headless npm run test-browser + BROWSER=safari npm run test-browser + BROWSER=edge npm run test-browser + +## Testing in development mode + +_**Note:** If you have a local `mastodon_development` Postgres database, this will erase it._ + +In separate terminals: + +1\. Run a Mastodon dev server: + + npm run run-mastodon + +2\. Run a Pinafore dev server: + + npm run dev + +3\. Run a debuggable TestCafé instance: + + npx testcafe --hostname localhost --skip-js-errors --debug-mode firefox tests/spec + +If you want to export the current data in the Mastodon instance as canned data, +so that it can be loaded later, run: + + npm run backup-mastodon-data \ No newline at end of file diff --git a/README.md b/README.md index d09f74d..1fee59d 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ This section lays out some high-level goals for Pinafore, as well as the goals i - Support Pleroma/non-Mastodon backends - i18n - Offline search +- Full emoji keyboard ### Non-goals @@ -30,65 +31,11 @@ This section lays out some high-level goals for Pinafore, as well as the goals i - React Native / NativeScript / hybrid-native version - Full functionality with JavaScript disabled - Emoji support beyond the built-in system emoji -- Custom emoji keyboard - Multi-column support - Keyboard shortcuts - Admin/moderation panel - Works offline in read-write mode -## Building +## Building and contributing - npm install - npm run build - PORT=4002 npm start - -Now it's running at `localhost:4002`. - -## Development - - npm run dev - -Now it's running at `localhost:4002`. - -## Testing in development mode - -In separate terminals: - -1\. Run a Mastodon dev server (note this destroys the `mastodon_development` database and inserts canned data): - - npm run run-mastodon - -2\. Run a Pinafore dev server: - - npm run dev - -3\. Run a debuggable TestCafé instance: - - npx testcafe --hostname localhost --skip-js-errors --debug-mode firefox tests/spec - -If you want to export the current data in the Mastodon instance as canned data, so that it can be loaded later: - - npm run backup-mastodon-data - -## Testing - -Lint: - - npm run lint - -Run integration tests: - - npm test - -Run tests for a particular browser: - - BROWSER=chrome npm run test-browser - BROWSER=chrome:headless npm run test-browser - BROWSER=firefox npm run test-browser - BROWSER=firefox:headless npm run test-browser - BROWSER=safari npm run test-browser - BROWSER=edge npm run test-browser - -Automatically fix most linting issues: - - npx standard --fix +See [CONTRIBUTING.md](https://github.com/nolanlawson/pinafore/blob/master/CONTRIBUTING.md). \ No newline at end of file