Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gherkin Rule keyword and Protocol Buffer messages #416

Merged
merged 51 commits into from
Jun 29, 2018
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
ac368e7
update
Apr 27, 2018
86be532
Merge branch 'master' into cr-proto
aslakhellesoy Apr 29, 2018
fc67459
gherkin: protobuf: Fix syntax error, set up Java build
aslakhellesoy Apr 29, 2018
8f3920b
gherkin: (Java) Add support for Rule
aslakhellesoy Jun 15, 2018
2426411
Support background under Rule
aslakhellesoy Jun 15, 2018
56bcb1b
Implement Rule for C#,Java,JavaScript,Ruby and partially Go
aslakhellesoy Jun 16, 2018
11b24f0
Merge branch 'master' into proto
aslakhellesoy Jun 17, 2018
d2baee9
gherkin: (Java) Use protobuf structs
aslakhellesoy Jun 18, 2018
f9cb346
Merge rule branch
aslakhellesoy Jun 18, 2018
c8319dc
messages: Add JavaScript
aslakhellesoy Jun 18, 2018
4f7488e
Fix makefiles
aslakhellesoy Jun 18, 2018
16569cc
Set up subrepo sync
aslakhellesoy Jun 18, 2018
90b50ce
Merge branch 'master' into gherkin-rule
aslakhellesoy Jun 18, 2018
e20b6e3
Merge branch 'gherkin-rule' into proto
aslakhellesoy Jun 18, 2018
67fd38b
Sync changes to gherkin and messages subrepos
aslakhellesoy Jun 19, 2018
f324158
Update branching/CI instructions
aslakhellesoy Jun 19, 2018
f21af88
Fix indentation
aslakhellesoy Jun 19, 2018
84c850b
Fix branch pushing
aslakhellesoy Jun 19, 2018
a000f22
gherkin: Fix Protobuf for Java and JavaScript
aslakhellesoy Jun 20, 2018
b2cd00c
Clean up
aslakhellesoy Jun 20, 2018
19f7c39
gherkin: Add missing uri
aslakhellesoy Jun 21, 2018
a47bc1d
messages: change package name to io.cucumber.messages
aslakhellesoy Jun 21, 2018
fde4a59
Merge branch 'master' into messages_gherkin-rule-keyword-protobuf
aslakhellesoy Jun 21, 2018
fd0b477
ruby: Extract more templates for Ruby
aslakhellesoy Jun 22, 2018
f652914
messages: Create ruby gems. Ref #416
aslakhellesoy Jun 22, 2018
50fcd8f
tmp
charlierudolph Jun 24, 2018
6a03b2b
add go messages
charlierudolph Jun 24, 2018
5a99c7d
move to local import
charlierudolph Jun 24, 2018
4e01bb3
gherkin: Read protobuf from stdin
aslakhellesoy Jun 25, 2018
3face24
Resolve merge conflict
aslakhellesoy Jun 25, 2018
60dab4e
Install protoc in Docker image
aslakhellesoy Jun 25, 2018
c4fdc8c
Don't force push
aslakhellesoy Jun 25, 2018
18e5652
Only unshallow on Travis
aslakhellesoy Jun 25, 2018
06ad13a
Sync to cucumber/cucumber-messages-go
aslakhellesoy Jun 25, 2018
2eaf07a
Merge remote-tracking branch 'origin/master' into messages_gherkin-ru…
aslakhellesoy Jun 25, 2018
393ccf0
Merge from master
aslakhellesoy Jun 25, 2018
e23099a
Ignore spec
aslakhellesoy Jun 25, 2018
f6172e3
Use system protoc for java
aslakhellesoy Jun 25, 2018
51099fd
Fix clean target
aslakhellesoy Jun 25, 2018
8998a45
Add missing READMEs
aslakhellesoy Jun 25, 2018
7de3af2
Sync to cucumber/cucumber-messages-ruby.git
aslakhellesoy Jun 25, 2018
ad0365b
Check in generated source so it can build on Travis without protoc av…
aslakhellesoy Jun 25, 2018
1399820
Don't regenerate protobuf classes
aslakhellesoy Jun 25, 2018
75fb89f
Don't regenerate protobuf classes
aslakhellesoy Jun 25, 2018
3d8315f
Don't check in yarn.lock
aslakhellesoy Jun 25, 2018
cb881b5
Don't rebuild protobuf classes - remove yarn.lock
aslakhellesoy Jun 25, 2018
aae0f41
Add missing target for go and ruby
aslakhellesoy Jun 25, 2018
2e1db4c
Read protobuf messages from a child process if GHERKIN_EXECUTABLE is …
aslakhellesoy Jun 26, 2018
7f826f0
Remove gherkin-jvm-deps. Depend on shaded google libs from the messag…
aslakhellesoy Jun 27, 2018
65460ae
Merge with master
aslakhellesoy Jun 28, 2018
b65ff9e
Rules and Protobuf done for Ruby/Java/JavaScript
aslakhellesoy Jun 29, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
node_modules/
_book/
.idea/
*.iml
target/
**/*/.release/
cucumber_manyrepo_id_rsa
cucumber_manyrepo_id_rsa.pub
Expand Down
2 changes: 1 addition & 1 deletion .templates/java/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ default: .built

clean:
rm -rf target
.PHONY: clean
.PHONY: clean .built
6 changes: 5 additions & 1 deletion Dockerfile.cucumber-build
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@ FROM alpine:3.7

WORKDIR /app

RUN apk add --no-cache --update --upgrade alpine-sdk make bash maven openjdk8 diffutils jq python py-pip ruby ruby-dev perl perl-dev wget rsync go nodejs
RUN apk add --no-cache --update --upgrade alpine-sdk make bash maven openjdk8 diffutils jq python py-pip ruby ruby-dev perl perl-dev wget rsync go nodejs unzip
RUN npm install --global yarn
RUN echo "gem: --no-document" > ~/.gemrc
RUN gem install bundler io-console
RUN pip install pipenv==8.3.2
RUN curl --fail -L http://cpanmin.us/ > /usr/local/bin/cpanm && chmod +x /usr/local/bin/cpanm
RUN curl --fail -L https://github.com/google/protobuf/releases/download/v3.5.1/protoc-3.5.1-linux-x86_64.zip > protoc-3.5.1-linux-x86_64.zip
RUN unzip protoc-3.5.1-linux-x86_64.zip -d protoc-3.5.1
RUN mv protoc-3.5.1/bin/protoc /usr/local/bin/protoc && chmod +rx /usr/local/bin/protoc
RUN rm -rf protoc-3.5.1 protoc-3.5.1-linux-x86_64.zip
18 changes: 16 additions & 2 deletions HACKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,19 @@ You can learn more about monorepos here:
* http://danluu.com/monorepo/
* https://medium.com/@bebraw/the-case-for-monorepos-907c1361708a

### Branching and CI

The CI build will synchronise from the monorepo to all the subrepos for the `master` branch.
For other branches, a naming convention is used to decide what subrepos to sync to.
(This is to avoid an explosion of unrelated branches in every subrepo).

For example, if you're making a change to `gherkin` on a branch, prefix the branch
with `gherkin`, for example `gherkin-upgrade-dependencies`.

Occasionally you want to sync to multiple subrepos. For example, if you are making changes
in two modules (say `messages` and `gherkin`), prefix the branch with both module names,
separated by an underscore. For example, `messages_gherkin-use-protobuf`.

### Adding a new subrepo

Occasionally, a sub directory is promoted to a separate subrepo. The process for doing this is:
Expand Down Expand Up @@ -60,13 +73,14 @@ In the new directory, create the following files:

#### Create new subrepo.

Create a new, empty subrepo at GitHub.
Create a new, empty subrepo at GitHub. Check the box for initialising
with a README - it's needed to create an initial `master` branch to push to.

Log into Travis and set up build for the new (empty) subrepo.

Initialise the subrepo, for example:

echo "[email protected]:cucumber/tag-expressions-go.git" > tag-expressions/go/.subrepo
echo "cucumber/tag-expressions-go.git" > tag-expressions/go/.subrepo

Push to the subrepo:

Expand Down
5 changes: 3 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
SHELL := /usr/bin/env bash
MAKEFILES=event-protocol/Makefile \
gherkin/Makefile \
MAKEFILES=messages/Makefile \
event-protocol/Makefile \
gherkin/Makefile \
datatable/Makefile \
config/Makefile \
event-protocol/Makefile \
Expand Down
2 changes: 1 addition & 1 deletion config/java/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ default: .built

clean:
rm -rf target
.PHONY: clean
.PHONY: clean .built
2 changes: 1 addition & 1 deletion cucumber-expressions/java/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ default: .built

clean:
rm -rf target
.PHONY: clean
.PHONY: clean .built
2 changes: 1 addition & 1 deletion datatable/java/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ default: .built

clean:
rm -rf target
.PHONY: clean
.PHONY: clean .built
8 changes: 0 additions & 8 deletions gherkin/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ MAKEFILES=dotnet/Makefile go/Makefile java/Makefile javascript/Makefile ruby/Mak
# implement https://github.com/cucumber/cucumber/pull/353
# MAKEFILES=$(wildcard */Makefile)
EVENT_FILES = $(wildcard testdata/**/*.ndjson)
SCHEMAS = $(wildcard ../event-protocol/schemas/*.json)

default: $(patsubst %/Makefile,default-%,$(MAKEFILES))
.PHONY: default
Expand All @@ -16,10 +15,3 @@ clean: $(patsubst %/Makefile,clean-%,$(MAKEFILES))

clean-%: %
cd $< && make clean

validate-events: .valid-events
.PHONY: validate-events

.valid-events: $(EVENT_FILES) $(SCHEMAS)
@cat $(EVENT_FILES) | node ../event-protocol/bin/cucumber-event-validator.js
touch $@
Loading