add CONTRIBUTING.md

This commit is contained in:
Nolan Lawson 2018-03-30 17:55:55 -07:00
parent ec80a3847b
commit 8725225b68
2 changed files with 87 additions and 56 deletions

84
CONTRIBUTING.md Normal file
View File

@ -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

View File

@ -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 - Support Pleroma/non-Mastodon backends
- i18n - i18n
- Offline search - Offline search
- Full emoji keyboard
### Non-goals ### 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 - React Native / NativeScript / hybrid-native version
- Full functionality with JavaScript disabled - Full functionality with JavaScript disabled
- Emoji support beyond the built-in system emoji - Emoji support beyond the built-in system emoji
- Custom emoji keyboard
- Multi-column support - Multi-column support
- Keyboard shortcuts - Keyboard shortcuts
- Admin/moderation panel - Admin/moderation panel
- Works offline in read-write mode - Works offline in read-write mode
## Building ## Building and contributing
npm install See [CONTRIBUTING.md](https://github.com/nolanlawson/pinafore/blob/master/CONTRIBUTING.md).
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