Skip to content

Latest commit

 

History

History
174 lines (118 loc) · 5.93 KB

CHANGELOG.org

File metadata and controls

174 lines (118 loc) · 5.93 KB

2024-08-19

Release v4.0.0 has been tagged.

This release contains breaking changes.

Minimum Go version required to use go-vcr is set to 1.22.

The import path for recorder and cassette packages has changed and now they reside in:

  • gopkg.in/dnaeon/go-vcr.v4/pkg/cassette
  • gopkg.in/dnaeon/go-vcr.v4/pkg/recorder

Only version 2 of the cassette format is now supported.

The recorder.Options struct has been removed. Instead of it, we can now use functional options to configure the recorder.

The following recorder.Option functions may be used to configure the recorder.

  • recorder.WithCassette - sets the name of the cassette
  • recorder.WithMode - sets the mode of the recorder
  • recorder.WithRealTransport - sets the underlying transport used by go-vcr.
  • recorder.WithBlockUnsafeMethods - blocks unsafe methods, if set to true.
  • recorder.WithSkipRequestLatency - simulates request/response latency, if set to true.
  • recorder.WithPassthrough - configures passthrough handlers
  • recorder.WithHook - configures recorder hooks
  • recorder.WithMatcher - configures the matcher to be used
  • recorder.WithReplayableInteractions - allows interactions to be replayed multiple times, if set to true.

The cassette.OnRequestReplayFunc type has been removed. Instead of it, users should use a recorder.BeforeResponseReplayHook.

The cassette.DefaultMatcher is now stricter. See #98 and #99 for more details.

Added support for blocking Unsafe HTTP Methods. The definition of Safe Methods comes from RFC 9110, section 9.2.1. See #100 for more details.

Added support for server-side recording and replaying. See #101 for more details.

2024-03-13

Release v3.2.0 has been tagged.

Added helper method Interaction.WasReplayed() and a new hook kind, which will execute hooks when the recorder is about to be stopped - OnRecorderStopHook.

See #91 and #92 for more details.

2022-10-25

Release v3.1.2 has been tagged.

New field called DiscardOnSave has been added to the cassette.Interaction type, which allows for a hook to set it to true, and as a result to discard the interaction from saving it on disk.

See #80 for more details.

2022-09-27

Release v3.1.1 has been tagged.

Cassettes with no recorded interactions will be saved on disk. Previous behaviour was to skip saving the cassette at all.

See PR #79 for more details.

2022-08-23

Release v3.1.0 has been tagged.

**NOTE**: This version contains breaking API change.

Summary of changes since previous release.

  • The recorder.FilterFunc has been removed. It is now replaced by recorder.HookFunc type.
  • The Recorder.AddFilter() and Recorder.AddPreSaveFilter() methods have been removed. They are now replaced by the Recorder.AddHook() method.
  • Added different kinds of hooks supported by the recorder - AfterCaptureHook, BeforeSaveHook and BeforeResponseReplayHook.

2022-08-20

Release v3.0.1 has been tagged.

Minor updates, adding two new utility methods to the recorder, which can be used to inspect the state of the recorder and the cassette.

  • IsRecording()
  • IsNewCassette()

See issue #76

2022-08-19

go-vcr v3 has been released and tagged as v3.0.0.

**NOTE**: This release is not backwards-compatible with previous versions of the cassettes. If you are upgrading to v3 you should re-create your test cassettes.

A summary of changes for this release:

  • API has been refactored and cleaned up
  • Custom recorder options are now specified as recorder.Options
  • The recorder modes which are now supported are ModeRecordOnly, ModeRecordOnce, ModeReplayOnly, ModeReplayWithNewEpisodes and ModePassthrough. Please refer to the API documentation for more details on their use cases
  • In order to create recorders with custom options you should use the recorder.NewWithOptions function from now on
  • The default mode of the recorder is now ModeRecordOnce
  • ModeDisabled has been removed and is now replaced by ModePassthrough
  • Cassette format has been changed and the supported version of the cassette from now on is v2.
  • Additional fields have been added to the cassette to allow developers to create more complex matchers based on the existing fields
  • Each interaction in the cassette now has a unique integer id, specifying the position of the interaction in the cassette. See issue #22
  • Utility method on the recorder can now return a pre-configured HTTP client with the recorder’s transport - GetDefaultClient()
  • CI/CD pipeline has been transferred to Github actions
  • Closed out some long standing issues
  • Extended and refactored test cases
  • etc

2022-08-16

v2.3.0 has been released.

  • Cleaned up v2 package structure
  • Switched from gopkg.in/yaml.v2 to gopkg.in/yaml.v3
  • Package import path for go-vcr has changed from github.com/dnaeon/go-vcr to gopkg.in/dnaeon/go-vcr.v2. See #73
  • v2 of go-vcr resides in the v2 branch, which is now the default
  • Fixed a regression where the default mode of the recorder has been changed. See issue #72

2022-08-15

v2.1.0 has been released.

Switch to gopkg.in/yaml.v3.

See issues #70 and #71

2021-06-24

go-vcr has been tagged v2.0.1.

This release contains a breaking change. When upgrading to v2.0.0 make sure that you re-create your cassettes.

A new flag of the recorder.Recorder (SkipRequestLatency) is supported which allows to skip latency simulation during replay.

See #63 for more details.

2018-11

Version v1.0.0. has been released

2015-12

Initial version of go-vcr.