Skip to content

Commit

Permalink
Merge branch 'main' into use-typescript-incremental-builds
Browse files Browse the repository at this point in the history
  • Loading branch information
davidjgoss committed Aug 22, 2021
2 parents fdd4d93 + 2bdeec4 commit 039d366
Show file tree
Hide file tree
Showing 10 changed files with 12,948 additions and 4,288 deletions.
11 changes: 6 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn test
- run: npm i -g npm@7
- run: npm install
- run: npm test

coverage:
runs-on: ubuntu-latest
Expand All @@ -32,8 +33,8 @@ jobs:
- uses: actions/setup-node@v2
with:
node-version: 16.x
- run: yarn install
- run: yarn test-coverage
- run: npm install
- run: npm run test-coverage
- uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -45,4 +46,4 @@ jobs:
- uses: actions/setup-node@v2
with:
node-version: 16.x
- run: yarn audit --groups dependencies
- run: npm audit --groups dependencies
41 changes: 25 additions & 16 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,37 @@
# Thank you!
# Welcome 💖

Before anything else, thank you. Thank you for taking some of your precious time helping this project move forward.
Before anything else, thank you for taking some of your precious time to help this project move forward. ❤️

If you're new to open source and feeling a bit nervous 😳, we understand! We recommend watching [this excellent guide](https://egghead.io/talks/git-how-to-make-your-first-open-source-contribution)
to give you a grounding in some of the basic concepts. We want you to feel safe to make mistakes, and ask questions.

If anything in this guide or anywhere else in the codebase doesn't make sense to you, please let us know! It's through your feedback that we can make this codebase more welcoming, so we'll be glad to hear thoughts.

You can chat with us in the [#committers-js](https://cucumberbdd.slack.com/archives/C612KCP1P) channel in our [Community Slack], or feel free to [raise an issue] if you're experiencing any friction trying make your contribution.

## Setup

* install [Node.Js](https://nodejs.org/en/) and [Yarn](https://yarnpkg.com/)
* `yarn install` - Install dependencies
* `yarn test` - Compile typescript and run the tests
* install [Node.Js](https://nodejs.org/en/)
* `npm install` - Install dependencies
* `npm test` - Compile typescript and run the tests

## Tests

Now type `yarn run` or see the `package.json` scripts section for how to run each category of tests.
Now type `npm run` or see the `package.json` scripts section for how to run each category of tests.

* lint - `yarn lint`
* lint - `npm run lint`
* [prettier](https://github.com/prettier/prettier)
* [eslint](https://eslint.org/)
* [dependency-lint](https://github.com/charlierudolph/dependency-lint)
* typescript tests - `yarn types-test`
* typescript tests - `npm run types-test`
* [tsd](https://github.com/SamVerschueren/tsd)
* unit tests - `yarn unit-test`
* unit tests - `npm run unit-test`
* [mocha](https://mochajs.org/)
* [chai](https://www.chaijs.com/)
* [sinon](https://sinonjs.org/)
* compatibility kit - `yarn cck-test`
* compatibility kit - `npm run cck-test`
* checking that cucumber-js emits the [correct messages](https://github.com/cucumber/cucumber/tree/master/compatibility-kit)
* feature tests - `yarn feature-test`
* feature tests - `npm run feature-test`
* cucumber-js tests itself

## Internals
Expand Down Expand Up @@ -78,16 +85,15 @@ Start the container:

make docker-run

Inside the container, install the correct versions of Node and Yarn:
Inside the container, install the correct version of Node:

nvm install --lts
npm install -g yarn

Then update the dependencies and test:

yarn update-dependencies
yarn
yarn test
npm run update-dependencies
npm run
npm run test

If the tests fail, update your code to be compatible with the new libraries, or revert the library upgrades that break the build.

Expand Down Expand Up @@ -137,3 +143,6 @@ Push to git:
* Update [docs.cucumber.io](https://github.com/cucumber/docs.cucumber.io)
* Update the cucumber-js version `data/versions.yaml`
* Ensure the javascript examples are up to date

[Community Slack]: https://cucumber.io/community#slack
[raise an issue]: https://github.com/cucumber/cucumber-js/issues/new/choose
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ We've put a demo of Cucumber.js to [run in your browser](https://cucumber.github

## Help & support

* See here: https://cucumber.io/support
* See here: https://cucumber.io/support.

## Contributing

Expand Down Expand Up @@ -52,7 +52,7 @@ $ npm install cucumber@6

## Documentation

The following documentation is for master. See below for documentation for older versions.
The following documentation is for master. See below the documentation for older versions.

* [CLI](/docs/cli.md)
* [Custom Formatters](/docs/custom_formatters.md)
Expand Down
46 changes: 46 additions & 0 deletions docs/retro/2021/07/17.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# 2021-07-17

This retrospective was from the first [new contributors mob/ensemble]. Sadly [@mattwynne] failed to record the stream, so there's no video from this session.

## Who

* [@artismarti]
* [@16sheep]
* [@eoola]
* [@mattwynne] (taking these notes)

## What happened?

* We read the issues at https://github.com/cucumber/cucumber-js/contribute
* We decided to tackle one
* We discussed how contributing to the repo worked
* We changed what to tackle and tackled something simpler
* We made a [PR](https://github.com/cucumber/cucumber-js/pull/1734).

## What worked? What do you appreciate?

* I learned general concepts that I could use in other open source projects
* The issues were good for first timers. I'm keen to explore more now I've looked through them!
* It was so much fun! All the intimidation I had about starting to do this vanished. Low stakes way of learning new things. A nice way of learning new stuff!
* The team gelled almost instantly

## What was puzzling or frustrating?

* Why did the tests pass on your device but not mine?
* Live Share vs Screen Share it was a bit confusing
* Would it be easier to just run it locally on one of our machines? More realistic.
* Twitch setup (Matt heard his own voice the whole way through, and we started late)

## What should we decide / change for next time?

* Do this regularly but on any codebase, not just Cucumber
* Would it be easier to just run it locally on one of our machines?
* Matt do more homeowrk on twitch setup
* Let's do this again!
* Update CONTRIBUTING.md guide to include pointers to basics about forking, how to name your branch etc., and some words of comfort and encouragement to make mistakes, ask for help etc.

[@artismarti]: https://github.com/artismarti
[@mattwynne]: https://github.com/mattwynne
[@16sheep]: https://github.com/16sheep
[@eoola]: https://github.com/eoola
[new contributors mob/ensemble]: https://cucumber.io/blog/open-source/tackling-structural-racism-(and-sexism)-in-open-so/
38 changes: 38 additions & 0 deletions docs/retro/2021/08/06.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 2021-08-06

This session was streamed live and recorded. Watch the video [here](https://youtu.be/EiqLzBBpjxM).

## Who

* [@artismarti]
* [@16sheep]
* [@mattwynne] (taking these notes)

## What happened

* Discussed what to do.
* Worked from Marju's fork, using our own local machines and VSCode each time we switched driver.
* Re-did the work we did last time on the mobbing machine, using Marju's machine to submit a new PR ([#1764]) cleanly. We learned about `git cherry-pick`.
* Started working through the pre-prepared issue [#1136] in a [branch on Marju's fork](https://github.com/16sheep/cucumber-js/tree/opt-out-print-attachments-1136)
* Arti had to leave a bit early

## Insights

* Preferred working on own machine, not using the live share / mobbing machine.
* Good to prepare. But, wonder if you over-prepare, it doesn't leave space for people to explore and learn.
* Good to have an issue to focus on, and perhaps a failing test (but we could also write this ourselves).
* It would help to share what we're goin g to work on beforehand so people watching can also know ahead of time. Decide now for next session?
* Matt didn't like being in charge of the timer.
* Could use different mechanism for changing turns, like when we make a commit, or when a test is passing?
* More people would be nice. Should we make it easier for people to join? How? How often can we run it?

### Actions / decisions

* Next time, continue with fixing [#1136]

[@artismarti]: https://github.com/artismarti
[@mattwynne]: https://github.com/mattwynne
[@16sheep]: https://github.com/16sheep
[#1764]: https://github.com/cucumber/cucumber-js/pull/1764
[#1136]: https://github.com/cucumber/cucumber-js/issues/1136

13 changes: 13 additions & 0 deletions docs/retro/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Retrospective notes

From time to time, we run a mobbing/ensemble session on this codebase. At the end of each session., we
run a brief [retrospective] conversation in an effort to "turn up the good" – Woody Zuill.

Each retro we run is recorded in this folder as a dated Markdown file.

e.g. To find the retrospective for 23rd May 2020 you would look in the file `2020/05/23.md`

We use [retro-tools] to help manage these files.

[retrospective]: https://www.agilealliance.org/glossary/heartbeatretro/
[retro-tools]: https://github.com/tooky/retro-tools
Loading

0 comments on commit 039d366

Please sign in to comment.