Skip to content

Commit ab18f3b

Browse files
authored
Merge pull request #376 from pact-foundation/blog/feb-2025
blog: add feb 2025 blog
2 parents 5271b3a + faaa5e6 commit ab18f3b

File tree

1 file changed

+198
-0
lines changed

1 file changed

+198
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
---
2+
title: Pact Open Source Update — February 2025
3+
author: Yousaf Nabi
4+
authorURL: https://twitter.com/you54f
5+
tags: [pact, oss, community]
6+
keywords: [pact, oss, community]
7+
date: 2025-03-07
8+
draft: false
9+
hide_table_of_contents: false
10+
---
11+
12+
Hope you enjoyed our shortest month of the year, so short that I didn't manage to get my February blog post out until the first week of March! Whoops. Anyway, I'm pleased as the sun is shining, we've had some decent progress in the Pact ecosystem and we've had some surprises start arriving on contributors doorsteps. So let's not waste time and get straight into your monthly Pact updates.
13+
14+
## Pact OSS Updates
15+
16+
### Pact RFCs
17+
18+
We have an open RFC, that we would love input on, please take a look if you have time.
19+
20+
- [rfc: Implement generators for XML text and attribute](https://github.com/pact-foundation/roadmap/pull/113)
21+
- [feat: Implement generators for XML pact-reference](https://github.com/pact-foundation/pact-reference/pull/486)
22+
- [feat: Use new XML generator pact-reference](https://github.com/pact-foundation/pact-reference/pull/487)
23+
- [chore: Add example for xml generators pact-php](https://github.com/pact-foundation/pact-php/pull/720)
24+
25+
### Pact-JS
26+
27+
[pact-js v14 has been released](https://github.com/pact-foundation/pact-js/releases/tag/v14.0.0), this now includes the libpact_ffi & pact-js-core node bindings published as separate npm packages.
28+
29+
You'll benefit from smaller package downloads (the benefits of which will depend on your packager) with all the previous benefits of prebuilt node bindings on your machine, eliminating the need for post install steps and a full compiler set (gcc or msvc toolchain).
30+
31+
these are segmented by `${os}-{arch}-{libc}`
32+
33+
users should not need to require these automatically, npm should determine the required optional dependency to download at install time.
34+
35+
supported_platforms
36+
37+
"@pact-foundation/pact-core-darwin-arm64": "16.0.0",
38+
"@pact-foundation/pact-core-darwin-x64": "16.0.0",
39+
"@pact-foundation/pact-core-linux-arm64-glibc": "16.0.0",
40+
"@pact-foundation/pact-core-linux-arm64-musl": "16.0.0",
41+
"@pact-foundation/pact-core-linux-x64-glibc": "16.0.0",
42+
"@pact-foundation/pact-core-linux-x64-musl": "16.0.0",
43+
"@pact-foundation/pact-core-windows-x64": "16.0.0"
44+
45+
#### Pact-JS - Slack
46+
47+
Chat with us in: [#pact-js](https://pact-foundation.slack.com/archives/C9VBGLUM9)
48+
49+
### Pact-Python
50+
51+
Hope you've tried the Pact Python V3 interface.
52+
53+
Some of our users have been, and in doing so strike up the potential for new feature enhancements and improvements like this one.
54+
55+
- [Async state and message handler](https://github.com/pact-foundation/pact-python/issues/1005)
56+
57+
If not, why not try it out today?
58+
59+
#### Pact-Python - Slack
60+
61+
Chat to us in: [#pact-python](https://pact-foundation.slack.com/archives/C9VECUP6E).
62+
63+
### Pact-PHP
64+
65+
See the [RFC](#pact-rfcs) section above, to find out how [Tien](https://github.com/tienvx) is trying to introduce XML generators to the Pact core.
66+
67+
#### Pact-PHP - Slack
68+
69+
Chat to us in: [#pact-php](https://pact-foundation.slack.com/archives/C9W94PXPY).
70+
71+
### Pact-Go
72+
73+
pact-go [v2.3.0](https://github.com/pact-foundation/pact-go/releases/tag/v2.3.0) has been released.
74+
75+
It contains a [change to support the correct reporting of the pact-go client library version](https://github.com/pact-foundation/pact-go/pull/501), during contract creation and verification. This has been paired with a Pact Broker change, to support display of the verifier tool detail.
76+
77+
We've will again be dropping the minimum version of golang, to 1.23, in this [PR](https://github.com/pact-foundation/pact-go/pull/504)
78+
79+
#### Pact-Go - Slack
80+
81+
Chat with us in: [#pact-go](https://pact-foundation.slack.com/archives/C9UTHTFFB).
82+
83+
### Pact-Reference
84+
85+
Don't forgot to check out some of the latest proposals for the Pact-Plugin framework
86+
87+
| Proposal | State | Discussion |
88+
| -------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | -------------------------------------------------------------- |
89+
| [V2 Plugin Interface](https://github.com/pact-foundation/pact-plugins/blob/main/docs/proposals/001_V2_Plugin_Interface.md) | Draft | https://github.com/pact-foundation/pact-plugins/discussions/83 |
90+
| [Support script language plugins](https://github.com/pact-foundation/pact-plugins/blob/main/docs/proposals/002_Support_script_language_plugins.md) | Draft | https://github.com/pact-foundation/pact-plugins/discussions/84 |
91+
| [Support WASM plugins](https://github.com/pact-foundation/pact-plugins/blob/main/docs/proposals/003_Support_WASM_plugins.md) | Draft | https://github.com/pact-foundation/pact-plugins/discussions/85 |
92+
93+
#### Pact-Reference - Slack
94+
95+
Chat with us in: [#pact-rust](https://pact-foundation.slack.com/archives/CA2S7E6KC).
96+
97+
### Pact Broker
98+
99+
#### Rack 3 upgrade is complete
100+
101+
We've now completed the Rack 3 upgrade work, which allows us to upgrade some existing dependencies and close off a CVE.
102+
103+
You can find it in [v2.113.2](https://github.com/pact-foundation/pact_broker/releases/tag/v2.113.2) or later
104+
105+
#### Provider State Discovery endpoint
106+
107+
One of the biggest challenges with contract-testing at scale, is the discoverability of provider states, in the broker, for any particular provider.
108+
109+
We now have a new resource that returns a aggregated de-duplicated list of all provider states for a given provider, released as [v2.113.0](https://github.com/pact-foundation/pact_broker/releases/tag/v2.113.0) as part of https://github.com/pact-foundation/pact_broker/pull/734.
110+
111+
##### How do I use it?
112+
113+
Make a GET request to `/pacts/provider/{provider}/provider-states`
114+
115+
> This resource returns a aggregated de-duplicated list of all provider states for a given provider.
116+
117+
- Provider states are collected from the latest pact on the main branch for any dependant consumers.
118+
- Params will be shown, if provided in the provider state.
119+
120+
Example Response
121+
122+
```json
123+
{
124+
"providerStates": [
125+
{
126+
"name": "an error occurs retrieving an alligator"
127+
},
128+
{
129+
"name": "there is an alligator named Mary"
130+
},
131+
{
132+
"name": "there is not an alligator named Mary"
133+
}
134+
]
135+
}
136+
```
137+
138+
#### Extended Verification Results
139+
140+
The new Pact Core written in Rust supports publishing information about the client language that executed the Pact verification code, however this information wasn't stored in the Pact Broker, which mean users of the Pact Core, across multiple client language implementations couldn't distinguish which client framework, and client framework version was used.
141+
142+
This has now been resolved in this [PR](https://github.com/pact-foundation/pact_broker/pull/778) and released as [v2.114.0](https://github.com/pact-foundation/pact_broker/releases/tag/v2.114.0)
143+
144+
An example payload to the verification endpoint would look as pew below
145+
146+
```json
147+
{
148+
"providerApplicationVersion": "1",
149+
"success": true,
150+
"buildUrl": "http://build-url",
151+
"testResults": [],
152+
"verifiedBy": {
153+
"implementation": "Pact-Rust",
154+
"version": "1.0.0",
155+
"clientLanguage": {
156+
"testFramework": "TEST",
157+
"name": "TESTER",
158+
"version": "1.2.3"
159+
}
160+
}
161+
}
162+
```
163+
164+
and you will be able to view this in your HAL Browser, or via an API call
165+
166+
<img width="659" alt="Screenshot 2025-02-12 at 15 58 01" src="https://github.com/user-attachments/assets/0715ec8a-6285-4546-bc6d-ea293dd37db3" />
167+
168+
#### Pact-Broker - Slack
169+
170+
Chat to us in: [#pact-broker](https://pact-foundation.slack.com/archives/C9VPNUJR2).
171+
172+
## Community Events
173+
174+
Are you talking about Pact or contract-testing this year at an event? Why not let us know and get yourself featured!
175+
176+
### Pact Nirvana
177+
178+
The North Star of Pact implementations, [Pact Nirvana](https://docs.pact.io/pact_nirvana) is an awesome place to be.
179+
180+
So much so, that Ben Brugman and Ashley Guatarma reached out and said not only had they reached Pact Nirvana, but wanted to celebrate with some Pact swag.
181+
182+
Jo Laing and myself put our creative heads together, and as the first packages have begun to arrive, we can now share what we created with you all.
183+
184+
![Image](https://github.com/user-attachments/assets/35b1ef8d-0a04-4843-806c-923f903a317b)
185+
![Image](https://github.com/user-attachments/assets/3e178ac8-cc2d-47bc-a52a-4fb25c3d3959)
186+
![Image](https://github.com/user-attachments/assets/1572e3c1-011f-400d-9abd-c6e8a5847a66)
187+
![Image](https://github.com/user-attachments/assets/acc436f6-f3f5-4d14-901d-29d549a7bafe)
188+
189+
## Thats a wrap
190+
191+
Want to carry on the conversation? Sign up [here](https://slack.pact.io/) to join our Slack community, where you will be amongst over 6k other users. It's a safe place to ask questions, and a great place to share the awesome work you are doing in the Pact ecosystem.
192+
193+
Whatever you are up to, let us know, and we can look to get you featured in the Pact post.
194+
195+
See you next month folks!
196+
197+
Cheers,
198+
Saf

0 commit comments

Comments
 (0)