Address backwards incompatible changes in previous release
v0.26.0
This release changes the way you use Gettext. We're not crazy: it does so because doing so makes it a lot faster to compile projects that use Gettext.
The changes you have to make to your code are minimal, and the old behavior is deprecated so that you will be guided on how to update.
The reason for this change is that it removes compile-time dependencies from modules that used to import a Gettext backend. In applications such as Phoenix applications, where every view and controller imports the Gettext backend, this change means a lot less compilation when you make translation changes!
Here's the new API. Now, instead of defining a Gettext backend (use Gettext) and then importing that to use its macros, you need to:
Define a Gettext backend with use Gettext.Backend
Import and use its macros with use Gettext, backend: MyApp.Gettext.
Before and After
Before this release, code using Gettext used to look something like this:
defmodule MyApp.Gettext do
use Gettext, otp_app: :my_app
end
defmodule MyAppWeb.Controller do
import MyApp.Gettext
end
This creates a compile-time dependency for every module that imports the Gettext backend.
With this release, the above turns into:
defmodule MyApp.Gettext do
use Gettext.Backend, otp_app: :my_app
end
defmodule MyAppWeb.Controller do
use Gettext, backend: MyApp.Gettext
end
We are also updating Phoenix generators to use the new API.
If you update Gettext and still use use Gettext, otp_app: :my_app to define a backend, Gettext will emit a warning now.
[Repo] Prevent debug noise by ensuring default opts for standard transactions.
Without default opts each transaction is logged. Many standard operations execute each second, which makes for noisy logs. Now transaction opts are passed as a third argument to ensure defaults are applied.
[Repo] Increase transaction retry delay and increase with each attempt.
Bump the base transaction retry from 100ms to 500ms, and increase linearly between each successive attempt to provide deeper backoff. This alleviates pressure on smaller connection pools and gives more time to recover from contentions failures.
v2.18.1
Enhancements
[Repo] Automatically retry all transactions with backoff.
Avoid both expected an unexpected database errors by automatically retrying transactions. Some operations, such as serialization and lock not available errors, are likely to occur during standard use depending on how a database is configured. Other errors happen infrequently due to pool contention or flickering connections, and those should also be retried for increased safety.
This change is applied to Oban.Repo.transaction/3 itself, so it will apply to every location that uses transactions.
[Migration] Declare tags as an array of text rather than varchar.
We don't provide a limit on the size of tags and they could conceivably be larger than 256 characters. Externally the types are interchangeable, but internally there are minor advantages to using the text type.
There isn't a new migration; this change is only for new tables.
Bug Fixes
[Repo] Correctly dispatch query!/4 to query! rather than query without a bang.
[Repo] Prevent debug noise by ensuring default opts for standard transactions.
Without default opts each transaction is logged. Many standard operations execute each second,
which makes for noisy logs. Now transaction opts are passed as a third argument to ensure
defaults are applied.
[Repo] Increase transaction retry delay and increase with each attempt.
Bump the base transaction retry from 100ms to 500ms, and increase linearly between each
successive attempt to provide deeper backoff. This alleviates pressure on smaller connection
pools and gives more time to recover from contentions failures.
v2.18.1 — 2024-08-15
Enhancements
[Repo] Automatically retry all transactions with backoff.
Avoid both expected an unexpected database errors by automatically retrying transactions. Some
operations, such as serialization and lock not available errors, are likely to occur during
standard use depending on how a database is configured. Other errors happen infrequently due to
pool contention or flickering connections, and those should also be retried for increased
safety.
This change is applied to Oban.Repo.transaction/3 itself, so it will apply to every location
that uses transactions.
[Migration] Declare tags as an array of text rather than varchar.
We don't provide a limit on the size of tags and they could conceivably be larger than 256
characters. Externally the types are interchangeable, but internally there are minor advantages
to using the text type.
There isn't a new migration; this change is only for new tables.
Bug Fixes
[Repo] Correctly dispatch query!/4 to query! rather than query without a bang.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the production-dependencies group with 6 updates:
1.3.1
1.3.2
1.4.3
1.4.5
2.2.0
2.2.3
0.25.0
0.26.1
2.18.0
2.18.2
1.16.10
1.16.12
Updates
ash_graphql
from 1.3.1 to 1.3.2Changelog
Sourced from ash_graphql's changelog.
Commits
dfde245
chore: release version v1.3.229cf2d6
chore: skip sobelow errors097ea27
chore: don't do codegen by default3d1babb
improvement: add schema codegen features & guide1b9722a
chore(deps): bump the production-dependencies group with 3 updates (#208)f349a5a
improvement: support new struct types in type generation190a7a1
improvement: support new struct fields constraintb79cd6c
chore(deps): bump ash in the production-dependencies group (#206)dd5060f
fix: match on action in error message properlyc3544df
improvement: Set up GraphQL schema file in the web module namespace (#205)Updates
ash_json_api
from 1.4.3 to 1.4.5Changelog
Sourced from ash_json_api's changelog.
Commits
6c13e8e
chore: release version v1.4.50ef57c6
improvement: optimize post-operation field loading logic36a2ba4
fix: properly discover all necessary filter schemasab1dafb
chore: release version v1.4.4bf77d4d
improvement: support nestedbase_route
s7080d21
chore(deps): bump the production-dependencies group with 3 updates (#223)29e2eb7
chore(deps): bump the production-dependencies group with 2 updates (#222)Updates
ash_postgres
from 2.2.0 to 2.2.3Changelog
Sourced from ash_postgres's changelog.
Commits
555063d
chore: release version v2.2.3b437e3f
fix:mix ash_postgres.install
not adding ash_functions/min_pg_version73a070e
chore: release version v2.2.259d1c3d
fix: properly handle new igniter installer functions3fbd551
chore: update changelogdda21bc
chore: release version v2.2.1a94ee98
chore: release version v2.2.18bf9864
improvement: includemin_pg_version
in new generatorsd2b73fc
fix: set a proper default forskip_unique_indexes
e7ea05e
chore: unlock depsUpdates
gettext
from 0.25.0 to 0.26.1Changelog
Sourced from gettext's changelog.
... (truncated)
Commits
435c574
Release v0.26.1bde32c0
Improve message539b72c
Allow extraction to work by setting attribute at expansion time903a466
Simplify macros import to reduce amount of generated content1a74fc8
Keep deprecate code as it was0bac98d
Update ex_doc3816c5e
Add changelog to Hex and Hexdocs86d44c6
Release v0.26.0968d85e
Update instructions in the README1ec048c
Only import a subset of Gettext.Macros macrosUpdates
oban
from 2.18.0 to 2.18.2Release notes
Sourced from oban's releases.
Changelog
Sourced from oban's changelog.
Commits
65d75e0
Release v2.18.22c47480
Increase xact retry delay and increase per attemptf07ee21
Ensure default opts for standard transactions141f403
Release v2.18.1d5eb591
Bump ecto_sql to 3.12.0 and ecto_sqlite3 to 0.17 (#1135)eec82cc
Document that timeouts raise an Oban.TimeoutErrorbf7f0bf
Automatically retry transactions with backoff4715ea5
Declare tags as a text array rather than varchar4d124e5
Note lack of unique conflicts for insert_all in README (#1133)bbc4291
Bump postgrex from 0.18.0 to 0.19.0 in the production-dependencies group (#1131)Updates
swoosh
from 1.16.10 to 1.16.12Release notes
Sourced from swoosh's releases.
Changelog
Sourced from swoosh's changelog.
Commits
ff95618
v1.16.12635e5af
Add toggle for text preview (#947)f8e8696
v1.16.11e679273
Write docs for functions in Mailer using macro (#946)d973a53
mua: add Date and Message-ID headers when missing (#945)c948e28
Add note clarifying how to recompile after installing gen_smtp (#944)9653720
Fix typos and improve language (#943)284bcae
Bump req from 0.5.4 to 0.5.6 (#942)32dc4bc
Bump bandit from 1.5.5 to 1.5.7 (#941)1242573
Bump jason from 1.4.3 to 1.4.4 (#940)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show