Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions website/docs/implementation_guides/maintainer/checklist/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Checklist
sidebar_label: Checklist
---

# Checklist

## Hygiene

* [ ] Project created from template
* [ ] Documentation populated from template
* [ ] Documentation synced via automation to docs.pact.io
* [ ] Issue templates added
* [ ] Labels added
* [ ] Example projects created
* [ ] Tutorials/workshops to get started
* [ ] Supports minimum OS/Arch combinations?

## Quality

* [ ] TCK completed and published

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a thought for checklist, from previous threads

sustainable CI, or repo pre-reqs, good practises.

pact-foundation/roadmap#8

in addition, docs, ie

  • contributing guide
  • developer guide
  • readme

etc

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, nice ideas. I just popped a few off the top of my head, but I think it will likely be getting down what we have initially with some "TODOs" that we can populate over time as needed.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Consumer
sidebar_label: Consumer
---

# Consumer DSL

- General consumer guidance
- Matching Rules
- Specification versions and how this impacts the DSL
13 changes: 13 additions & 0 deletions website/docs/implementation_guides/maintainer/dsl/http/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: HTTP
sidebar_label: HTTP
---

# HTTP DSL

## Consumer
TBC

## Provider

TBC
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Message
sidebar_label: Message
---

# Message DSL

## Consumer
TBC

## Provider

TBC
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Plugins
sidebar_label: Plugins
---

# Plugins DSL

## Consumer
TBC

## Provider

TBC
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: Provider
sidebar_label: Provider
---

# Provider DSL

- General provider guidance e.g.
- Pact fetching guidance (local, broker etc.)
- how to setup `pactffi_verifier_set_provider_info` and `pactffi_verifier_add_provider_transport` effectively to support multiple transports
- state handlers, request filters
- FFI calls
- Transports (multiple, how they work, default host/port)
- State Handlers (setup/teardown, use as hooks, and behaviour if there are no states)

see https://pact-foundation.slack.com/archives/C02BXLDJ7JR/p1683037785422899 and https://pact-foundation.slack.com/archives/C02BXLDJ7JR/p1683282113939749 for more on this
12 changes: 12 additions & 0 deletions website/docs/implementation_guides/maintainer/dsl/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: DSL
sidebar_label: Introduction
---

# DSL

DSL Implementation

Covers Pact nomenclature vs idiomatic naming of things, how to cater for different spec versions, and FFI methods to call.

*NOTE: It might make sense to split by consumer/provider, rather than use case*
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Example
sidebar_label: Example
---

## Reference Example

-> Annotated Pact JS/Pact Node code base
15 changes: 15 additions & 0 deletions website/docs/implementation_guides/maintainer/ffi/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: FFI
sidebar_label: FFI
---

## FFI (Framework? SDK?)

- Introduction to the Pact Reference implementation / SDK framework / FFI
- Hello FFI (https://github.com/YOU54F/hello_ffi)
- Getting started (where to find, download)
- Ergonomics (make it easy on the end user)
- General usage, boundaries between FFI and Application
- Setting up for logging, debugging etc.
- Identifying the client language
- Specific methods to call (or should this be spread across the DSL implementation?)
14 changes: 14 additions & 0 deletions website/docs/implementation_guides/maintainer/general/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: General
sidebar_label: General
---

## General

- Language / Naming Things / Idioms
- Minimum supported OS/Arch combinations
- Logging
- Debugging
- Repository hygiene (issue labels, triage etc.)
- Specification versions
- A short comparison between the different versions, and how this should be considered in API/DSL design
16 changes: 16 additions & 0 deletions website/docs/implementation_guides/maintainer/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: Introduction
sidebar_label: Introduction
---

## Introduction

- Who it's for
- Ecosystem view: How it all hangs together (FFI, plugins, client language, CLI tools. Possibly use the diagrams from docs.pact.io/plugins)
- Maintainer meetings (how to stay in touch. Slack, Zoom monthly etc.)
- Roadmap (Where to find it, how to contribute to it, RFC process)
- Criteria for an implementation to be accepted into pact-foundation
- License should be MIT

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also Apache2

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah we have a handful of Apache 2.0 repos.

I noted about 9 don't have licenses, which probably should so will flag them for review.

- 2 maintainers (?)
- Agree to our community guidelines
- ...?
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Testing
sidebar_label: Testing
---

# Testing

- Expectations for a quality Pact implementation
- Compatibility suite (should elements of this be threaded throughout the guide rather than its own section?)
34 changes: 30 additions & 4 deletions website/sidebars.json
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,26 @@
"wrapper_implementations"
]
},
{
"Maintainer Guide": [
"implementation_guides/maintainer/readme",
"implementation_guides/maintainer/general/readme",
"implementation_guides/maintainer/ffi/readme",
{
"DSL": [
"implementation_guides/maintainer/dsl/readme",
"implementation_guides/maintainer/dsl/consumer/readme",
"implementation_guides/maintainer/dsl/provider/readme",
"implementation_guides/maintainer/dsl/http/readme",
"implementation_guides/maintainer/dsl/message/readme",
"implementation_guides/maintainer/dsl/plugins/readme"
]
},
"implementation_guides/maintainer/testing/readme",
"implementation_guides/maintainer/checklist/readme",
"implementation_guides/maintainer/example/readme"
]
},
{
"Stubs": ["getting_started/stubs"]
},
Expand Down Expand Up @@ -319,8 +339,7 @@
"recipes/lambdahttp",
"recipes/cypress"
],
"Ecosystems":
["diagrams/ecosystem"]
"Ecosystems": ["diagrams/ecosystem"]
},
"pact_broker": {
"Pact Broker": [
Expand Down Expand Up @@ -387,7 +406,11 @@
{
"type": "category",
"label": "API Docs",
"items": ["pact_broker/api/webhooks", "pact_broker/api/pacticipants", "pact_broker/api/pagination"]
"items": [
"pact_broker/api/webhooks",
"pact_broker/api/pacticipants",
"pact_broker/api/pagination"
]
},
"pact_broker/changelog"
],
Expand Down Expand Up @@ -415,7 +438,10 @@
"Events": [
"events",
{
"Webinars and Workshops": ["events/plugins-framework-workshop", "events/plugins-framework-launch"]
"Webinars and Workshops": [
"events/plugins-framework-workshop",
"events/plugins-framework-launch"
]
}
]
},
Expand Down