Skip to content

Commit 1916149

Browse files
committed
Update v3.0.md
1 parent 9090ad4 commit 1916149

1 file changed

Lines changed: 14 additions & 16 deletions

File tree

changelogs/v3.0.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,29 @@ Software Engineer at LoiLo Inc.
66

77
## Summary
88

9-
We release `exql` v3, the second major update since 2020. For additional 3 years after v2 release, we noticed that the tool is mature enough to keep using on the next 3 years.
9+
We are releasing `exql` v3, the second major update since 2020. Over the three years since the v2 release, we have found that the tool is mature enough to keep using for the next three years.
1010

11-
To develop v3, we concentrated on tightening the security, backing to the our first design concept: **Safe**.
11+
In developing v3, we concentrated on tightening security and returning to our original design concept: **Safe**.
1212

1313
## Cleaning a Vulnerability
1414

15-
`exql` is thin, dependency less tool. Until now, we were depending on few external modules to interpolate very small gaps.
15+
`exql` is a thin, dependency-small tool. Until now, we had relied on a few external modules to fill very small gaps.
1616

17-
However, situations around us have been changed silently. We’re still using `exql` aggressively internally. Developers mostly are satisfied with features. Any other ORM libraries are absolutely not attaractive to us.
17+
However, the situation around us has changed silently. We still use `exql` aggressively internally. Developers are mostly satisfied with its features. Other ORM libraries are absolutely not attractive to us.
1818

19-
We’ve seen a declineor stabilization — of Go community in this several years. Many famous tools got archived and developers come to a diaspora. I know, of course, that is the right being of free open software. But, there’re things unacceptable: **Vulnerability**.
19+
Over the past several years, we have seen a decline, or at least a stabilization, in the Go community. Many well-known tools have been archived, and developers have dispersed. Of course, I understand that this is part of the nature of free and open source software. But there is one thing we cannot accept: **vulnerability**.
2020

2121
## Importance of Purity
2222

23-
Recently we found a highly dangerous zero-day vulnerability within `exql` dependencies. I reported the issue to maintainers, recommending to fix the problem. But no message returned. Project is completely dead.
23+
Recently, we found a highly dangerous zero-day vulnerability in one of `exql`'s dependencies. I reported the issue to the maintainers and recommended that they fix the problem. But no response came back. The project is completely dead.
2424

25-
So, we decided to remove all external dependencies and make us “pure module from v3. Now all core logics are implemented by Go (`database/sql`) and `exql` itself.
25+
So, we decided to remove all external dependencies and make `exql` a "pure" module from v3 onward. Now all core logic is implemented in Go (`database/sql`) and `exql` itself.
2626

2727
## Migration
2828

29-
From v3, for the field value of nullable columns of generated model, `loilo-inc/exql/v3/null` will be used. They are inheriting implementation of `sql.Null[T]`, added in Go 1.22. We additionally added several interfaces to interpolate a gap.
29+
From v3, `loilo-inc/exql/v3/null` will be used for nullable column fields in generated models. It inherits the implementation of `sql.Null[T]`, which was added in Go 1.22. We additionally added several interfaces to fill the remaining gap.
3030

31-
`sql.Null[T` implements:
31+
`sql.Null[T]` implements:
3232

3333
- `driver.Valuer`
3434
- `sql.Scanner`
@@ -39,22 +39,22 @@ So, we decided to remove all external dependencies and make us “pure” module
3939
- `json.Marshaler`
4040
- `encoding.TextUnmarshaler`
4141

42-
Those are interfaces that were implemented in `volatiletech/null`.
42+
These are the interfaces that were implemented in `volatiletech/null`.
4343

4444
## Performance
4545

46-
Introduced minor performance improvoments. For detail, see:
46+
We introduced minor performance improvements. For details, see:
4747

4848
<https://github.com/loilo-inc/exql/pull/72>
4949

5050
## Breaking Changes
5151

52-
- `exql.Mapper` has been removed for it was scheduled.
53-
- `xerrors` has been replaced with `errors` / `fmt` for deprecation.
52+
- `exql.Mapper` has been removed, as planned.
53+
- `xerrors` has been replaced with `errors` / `fmt` due to its deprecation.
5454

5555
### Error handling changes
5656

57-
`exql.ErrRecordNotFound` has changed to struct from variable. Use `errors.Is` to check them. From v3, all explicit errors must be exported as struct.
57+
`exql.ErrRecordNotFound` has changed from a variable to a struct. Use `errors.Is` to check for it. From v3, all explicit errors are exported as structs.
5858

5959
```go
6060
err = MapRows(rows, &dest)
@@ -63,5 +63,3 @@ if errors.Is(err, ErrRecordNotFound{}) {
6363
}
6464
```
6565

66-
67-

0 commit comments

Comments
 (0)