pact-foundation / devrel Goto Github PK
View Code? Open in Web Editor NEWDeveloper Relations @ Pact - Your map to the Pact landscape for all-comers (maintainers, contributors, users, newbies)
Home Page: https://pact.io/
License: MIT License
Developer Relations @ Pact - Your map to the Pact landscape for all-comers (maintainers, contributors, users, newbies)
Home Page: https://pact.io/
License: MIT License
Hey team!
The community Slack linked to from the docs only allows user registrations for emails under the domains dius.com.au, smartbear.com and ae.com:
Is this a mistake or have you restricted it for a reason? Is there another way to connect with the community?
Item | Description |
---|---|
๐ Date | 3rd October |
๐ Time | 15:00 BST / 10:00 EDT / 00:00 AEST |
๐น Video Recording | https://www.youtube.com/watch?v=Gx-R2Cn1HZE |
Course | https://docs.pact.io/university/introduction/00_1_Intro |
Repo | https://github.com/pact-foundation/pact-workshop-js |
Warmup for the start of Pactober, introducing users to the core concept of contract testing, and Pact.
Provide a workshop where we take users through the recommended Pact setup.
What video conferencing tools are users comfortable with, for open-source related projects.
Would users prefer to use OSS/FOSS tools, and have a strong preference to lean towards either one.
Which tools would you suggest?
Also what are peoples preferences for video communication
For personal meetings, I've always just grabbed a google meet, but I can imagine there will be restrictions for larger groups, and there may be concerns on AI, collecting data.
There are other options available to maintainers, through their employers, Zoom for example.
Both google meet/zoom are not OSS, and therefore may not be suitable for some members who simply won't use those platforms.
Just want to gauge interest. Do people care? I've often had to sign up to new platforms to watch a single event and then never used it again.
A placeholder for discussions around pact & pactflow example repos
Item | Description |
---|---|
๐ Date | 11th October |
๐ Time | 15:00 BST / 10:00 EDT / 00:00 AEST |
๐น Webinar link | https://smartbear.zoom.us/j/92661543192 |
YouTube Link | https://www.youtube.com/watch?v=81N25-4x27E |
Introduce users to the evolution of Microservices, and event based systems, and how this is handled by Pact.
Provide a workshop which builds on the previous CI/CD example but shows a messaging consumer and provider, to highlight the differences
Many teams choose to run builds on Alpine Linux due to its tiny footprint, and smaller security surface area.
Guidance for Alpine users, has been stored on our docs site here
Support is available by installing glibc compatibility layers due the underlying runtime being built on centos7
Alpine or other musl based distros have not be supported due to
Point 1 is now addressed, partially for the FFI library.
Pact-Reference is now publishing musl based versions of the Pact-FFI as of 0.4.15
We would like to investigate creating musl variants of all the pact-reference (rust) based artifacts, and incorporating them into client libraries
Any of the musl
based artifacts should be considered somewhat experimental and you may encounter issues, as they have not been used for a long time. I would strongly advise these are not used in production workflows, unless you are handy and don't mind investigating issues yourself
We would gratefully ask that if issues are raised, that two things are provided
Note - The debian image, may not show the same behaviour, this will be useful to determine where there are bugs/issues or gaps in the musl implementation which can be communicated to others.
Drop a comment in this thread, or reach out via slack in #libpact_ffi-users
Investigate the possibility of incorporating into client libraries
.so
files, so requires converted .a
musl library.so
files, so requires converted .a
musl libraryBuild with goreleaser and linked with musl, so existing binaries work with alpine.
For some languages, it is not possible to load a *.a static library.
It is possible however to convert a .a
file to a .so
file.
ar -x libpact_ffi.a
gcc -shared *.o -o libpact_ffi.so
rm -f *.o
This shrinks our .a
file from 115mb to a circa 41mb .so
file, which looks inline with the size of the musl node prebuild for pact-js
.so
musl variants of pact ffi
libyaml-dev
for debian based userspact-go-v1
where users are asked to pin the version of the standalone, but provided a script which returns the latest.pact_mock-service
was reproducible in CI, when using Ruby 3.2.2
3.1.2
resolved the issue.pact-ruby-standalone
2.0.0
release to pre-release
rather than latest
to avoid breaking existing users scriptspact-ruby-standalone
install.sh
script to allow users to fix to particular tag when downloading, over its previous behaviour of using latest
2.7
through to 3.2
in CI across
3.2
and looking to help resolve3.1.2
homebrew-pact-ruby-standalone
with versioned revisions so you can switch between or pin in your CIYes! But we understand not all languages are there right now, and we don't have 100% feature parity in the pact-ruby-standalone
package compared to the Rust reference core. There is actually very little, with potentially the only limitation being the pact_broker-client
functionality.
Happy to be shown otherwise! If anyone is interested in build out CLI tools in Rust, we have some examples you can follow, if anyone wanted to make a Rust based implementation of the pact_broker-client
. Whilst we know it has value, the core maintainers are busy delivering other features, and fixes to users, and therefore it isn't something we are likely to pick up soon, but we are always happy to guide.
Note Some of these are out of date, or don't have release note pages, so will be captured for snagging
graph TD;
pact-support;
pact-support-->pact-mock_service;
pact-support-->pact-message;
pact-mock_service-->pact-message;
pact-message-->pact-provider-verifier;
pact-->pact-provider-verifier;
pact_broker-client;
pact-->pact-ruby-standalone;
pact-mock_service-->pact-ruby-standalone;
pact-support-->pact-ruby-standalone;
pact-provider-verifier-->pact-ruby-standalone;
pact_broker-client-->pact-ruby-standalone;
pact-message-->pact-ruby-standalone;
pact-->pact-ruby-cli;
pact-ruby-standalone-->homebrew-pact-ruby-standalone;
pact-ruby-standalone-->pact-python;
pact-ruby-standalone-->pact-php;
pact-ruby-standalone-->pact-node-->pact-js-v9;
pact-ruby-standalone-->pact-js-core-->pact-js-v10
pact-js-v9-->jest-pact;
pact-js-v9-->mocha-pact;
pact-js-v9-->nestjs-pact;
pact-js-v10-->jest-pact;
pact-js-v10-->nestjs-pact;
pact-ruby-standalone-->pact-go-v1;
pact-ruby-standalone-->pact-net;
pact-ruby-standalone-->pact-consumer-swift;
graph TD;
pact-->pact-ruby-standalone;
pact-mock_service-->pact-ruby-standalone;
pact-support-->pact-ruby-standalone;
pact-provider-verifier-->pact-ruby-standalone;
pact_broker-client-->pact-ruby-standalone;
pact-message-->pact-ruby-standalone;
pact-ruby-standalone-->homebrew-pact-ruby-standalone;
pact-ruby-standalone-->pact-python;
pact-ruby-standalone-->pact-php;
pact-ruby-standalone-->pact-node-->pact-js-v9;
pact-ruby-standalone-->pact-js-core-->pact-js-v10
pact-js-v9-->jest-pact;
pact-js-v9-->mocha-pact;
pact-js-v9-->nestjs-pact;
pact-js-v10-->jest-pact;
pact-js-v10-->nestjs-pact;
pact-ruby-standalone-->pact-go-v1;
pact-ruby-standalone-->pact-net;
pact-ruby-standalone-->pact-consumer-swift;
graph TD;
pact_cli;
pact_models-->pact_cli;
pact_matching-->pact_cli;
pact_consumer;
pact_models-->pact_consumer;
pact_matching-->pact_consumer;
pact_mock_server-->pact_consumer;
pact_ffi;
pact_matching-->pact_ffi;
pact_models-->pact_ffi;
pact_mock_server-->pact_ffi;
pact_verifier-->pact_ffi;
pact_matching;
pact_models-->pact_matching;
pact_mock_server;
pact_matching-->pact_mock_server;
pact_models-->pact_mock_server;
pact_mock_server_cli;
pact_matching-->pact_mock_server_cli;
pact_models-->pact_mock_server_cli;
pact_mock_server-->pact_mock_server_cli;
pact_models;
pact_verifier;
pact_matching-->pact_verifier;
pact_models-->pact_verifier;
pact-plugin-driver-->pact_verifier;
pact_verifier_cli;
pact_models-->pact_verifier_cli;
pact_verifier-->pact_verifier_cli;
pact_wasm;
pact_models-->pact_wasm;
pact-plugin-driver;
pact_models-->pact-plugin-driver;
pact_ffi-->pact-js-core-->pact-js-v10;
pact-js-v10-->jest-pact;
pact_ffi-->pact-net-v4;
pact_ffi-->pact-go-v2;
pact_ffi-->pact-swift-->pact-swift-examples;
pact_ffi-->pact-dart;
pact_ffi-->pact-cplusplus;
pact_mock_server-->pact_elixir;
graph TD;
pact_ffi;
pact_ffi-->pact-js-core-->pact-js-v10;
pact-js-v10-->jest-pact;
pact_ffi-->pact-net-v4;
pact_ffi-->pact-go-v2;
pact_ffi-->pact-swift-->pact-swift-examples;
pact_ffi-->pact-dart;
pact_ffi-->pact-cplusplus;
graph TD;
pact_jvm;
pact_jvm-->pact4s;
Tested using
Item | Description |
---|---|
๐ Date | 17th October |
๐ Time | 15:00 BST / 10:00 EDT / 00:00 AEST |
๐น Webinar link | https://smartbear.zoom.us/j/94793760632 |
YouTube Link | https://www.youtube.com/watch?v=0FpzPRSf2VA |
Introduce the concepts of multi-protocol systems, and how the pact-plugin framework was developed to enable users to extend Pact to cover use cases that may not be applicable to all end users.
Provide a workshop which builds on the previous CI/CD example but shows a gRPC consumer and provider, to highlight the differences
Update https://docs.pact.io/5-minute-getting-started-guide
The following link is dead,
https://github.com/pact-foundation/README/blame/master/README.md#L9
the package is still listed in pypi, last publish July 2017
Entries for https://github.com/realestate-com-au/pact should be moved to https://github.com/pact-foundation/pact-ruby, there are a few entries and it saves users multiple hops
What types of Pact tooling do we have?
What should they be called?
In order to avoid users who may be affected by rate limiting pulling images from DockerHub, it would be prudent to provide images published to GHCR
Dockerhub profile :- https://hub.docker.com/u/pactfoundation
https://github.com/pact-foundation/pact-ruby-cli/pull/127/files
Placeholder for workshop content.
Happy to incorporate feedback, or for suggesting of content topics etc.
Warmup for the start of Pactober, introducing users to the core concept of contract testing, and Pact.
Provide a workshop where we take users through the recommended Pact setup.
Introduce users to the evolution of Microservices, and event based systems, and how this is handled by Pact.
Provide a workshop which builds on the previous CI/CD example but shows a messaging consumer and provider, to highlight the differences
Introduce the concepts of multi-protocol systems, and how the pact-plugin framework was developed to enable users to extend Pact to cover use cases that may not be applicable to all end users.
Provide a workshop which builds on the previous CI/CD example but shows a gRPC consumer and provider, to highlight the differences
Introduce interested users into how Pact is built, distributed and used by client languages, by using our previous workshop examples as use cases.
This would be more aimed at maintainer/contributors, or those interested in the internals of Pact. This could be useful for users in languages who are unfamiliar with Rust (which our Pact reference core is written in)
M1 Runners now available in GitHub Actions
... add other repos
Item | Description |
---|---|
๐ Date | 24th October |
๐ Time | 15:00 BST / 10:00 EDT / 00:00 AEST |
๐น Webinar link | https://smartbear.zoom.us/j/92261666792 |
YouTube Link | https://www.youtube.com/watch?v=QIza-D-f7DI |
Introduce interested users into how Pact is built, distributed and used by client languages, by using our previous workshop examples as use cases.
This would be more aimed at maintainer/contributors, or those interested in the internals of Pact. This could be useful for users in languages who are unfamiliar with Rust (which our Pact reference core is written in)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.