diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..6e9a66af --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,32 @@ +# Contributing + +## Reporting bugs + +Report any bugs [in the GitHub Issue Tracker](https://github.com/ezolenko/rollup-plugin-typescript2/issues). + +Attach your `tsconfig.json`, `package.json` (for versions of dependencies), `rollup.config.js`, and anything else that could influence module resolution, ambient types, and TS compilation. + +Check if the problem is reproducible after running `npm prune` to clear any rogue types from `node_modules` (by default TS grabs _all_ ambient types). + +Check if you get the same problem with `clean` option set to `true` (might indicate a bug in the cache). + +If it makes sense, check if running `tsc` directly produces similar results. + +Attach plugin output with `verbosity` option set to 3 (this will list all files being transpiled and their imports). + +## Developing + +Use the [standard GitHub process](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models#fork-and-pull-model) of forking, making a branch, and creating a PR when ready. Fix all linting problems (`npm run lint`) and fix any failed checks on the PR. Use an editor that supports [`editorconfig`](https://editorconfig.org/), or match the settings from [`.editorconfig`](./.editorconfig) manually. + +Fastest way to test changes is to do a self build; the plugin is part of its own build system: + +1. make changes +1. run `npm run build` (uses last released version on npm) +1. check that you get expected changes in `dist` +1. run `npm run build-self` (uses fresh local build) +1. check `dist` for the expected changes +1. run `npm run build-self` _again_ to make sure plugin built by new version can still build itself + +If `build-self` breaks at some point, fix the problem and restart from the `build` step (a known good copy). + +This repo badly needs unit tests and integration tests with various scenarios and expected outcomes though. diff --git a/README.md b/README.md index 68a769fc..eed246e4 100644 --- a/README.md +++ b/README.md @@ -213,32 +213,6 @@ TypeScript `2.4+` Rollup `1.26.3+` Node `6.4.0+` (basic es6 support) -### Reporting bugs +### Reporting bugs and Contributing -Report any bugs on github: . - -Attach your `tsconfig.json`, `package.json` (for versions of dependencies), rollup script and anything else that could influence module resolution, ambient types and typescript compilation. - -Check if problem is reproducible after running `npm prune` to clear any rogue types from npm_modules (by default typescript grabs all ambient types). - -Check if you get the same problem with `clean` option set to true (might indicate a bug in the cache). - -If makes sense, check if running `tsc` directly produces similar results. - -Attach plugin output with `verbosity` option set to 3 (this will list all files being transpiled and their imports). - -### Contributing - -Use the normal github process of forking, making a branch and creating a PR when ready. Fix all linting problems (run `npm lint`), fix any failed checks that are run on the PR (basically lint right now). Use an editor that supports editorconfig, or match the settings from `.editorconfig` file manually. - -Fastest way to test changes is to do a self build, the plugin is part of its own build system: -- make changes -- run `npm build` (uses last released version on npm) -- check that you get expected changes in `dist` -- run `npm build-self` (uses fresh local build) -- check `dist` for the expected changes -- run `npm build-self` _again_ to make sure plugin built by new version can still build itself - -If `build-self` breaks at some point, fix the problem and restart from `build` step (a known good copy). - -This repo badly needs unittests and integration tests with various scenarios and expected outcomes though. +See [CONTRIBUTING.md](./CONTRIBUTING.md)