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

Drop external atomic dependency #72

Merged
merged 1 commit into from
Feb 15, 2023
Merged

Conversation

abhinav
Copy link
Collaborator

@abhinav abhinav commented Feb 15, 2023

Now that this package only supports Go 1.19 and 1.20,
it can make use of the atomic.Bool [1] added in Go 1.19.

[1] https://pkg.go.dev/sync/atomic#Bool

This has the effect of eliminating any external dependencies
from this package -- minus testify, which is only used for testing.

Now that this package only supports Go 1.19 and 1.20,
it can make use of the atomic.Bool [1] added in Go 1.19.

  [1] https://pkg.go.dev/sync/atomic#Bool

This has the effect of eliminating any external dependencies
from this package -- minus testify, which is only used for testing.
@codecov
Copy link

codecov bot commented Feb 15, 2023

Codecov Report

Merging #72 (f99f978) into master (55bc553) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master       #72   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            3         3           
  Lines          110       110           
=========================================
  Hits           110       110           
Impacted Files Coverage Δ
error.go 100.00% <ø> (ø)

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

abhinav added a commit to abhinav/multierr that referenced this pull request Feb 15, 2023
Will be true when uber-go#72 lands.
@sywhang sywhang merged commit 2fd451d into uber-go:master Feb 15, 2023
abhinav added a commit to uber-go/zap that referenced this pull request Mar 19, 2023
Switches all uses of go.uber.org/atomic to types defined in sync/atomic.
These types have been available since Go 1.19,
which is the minimum supported version of Go for Zap.

This allows us to drop one dependency from Zap.
The version of multierr was bumped to pick up uber-go/multierr#72
which made a similar change to that package.

This was nearly a drop-in, save the following:

- There's no `Int*.Inc`; we have to use `Int*.Add(1)`
- There's no `Bool.Toggle`; we have to implement the CAS loop manually
@abhinav abhinav deleted the std-atomic branch March 19, 2023 01:11
abhinav added a commit to abhinav/cff that referenced this pull request Oct 28, 2023
Replace uses of go.uber.org/atomic
with the standard library's sync/atomic.

On top of that, upgrade to the latest release of multierr
to pull in uber-go/multierr#72 which made a similar change there.

With these two changes combined,
drop the dependency on go.uber.org/atomic completely.
sywhang added a commit to uber-go/cff that referenced this pull request Oct 28, 2023
Replace uses of go.uber.org/atomic
with the standard library's sync/atomic.

On top of that, upgrade to the latest release of multierr
to pull in uber-go/multierr#72 which made a similar change there.

With these two changes combined,
drop the dependency on go.uber.org/atomic completely.

(Won't pass lint until #59 merges.)

Co-authored-by: Sung Yoon Whang <sungyoonwhang@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants