Update mix non-major dependencies #51
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/mix-minor-patch"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
~> 0.2.9
->~> 0.3.0
1.4.2
->1.8.0
3.1.0
->3.3.2
1.0.7
->1.2.1
1.0.7
->1.0.15
1.7.5
->1.7.12
0.8.0
->0.8.8
3.11.3
->3.13.2
~> 0.8
->~> 0.10
~> 0.18.0
->~> 0.20.0
0.36.1
->0.38.0
~> 0.24
->~> 0.26
v2.1.4
->v2.2.0
1.4.3
->1.4.4
2.17.9
->2.20.1
0.3.0
->0.3.1
1.7.12
->1.8.1
4.5.1
->4.6.5
4.1.1
->4.2.1
0.8.3
->0.8.7
1.5.3
->1.6.1
0.20.14
->0.20.17
0.18.0
->0.21.1
0.5.1
->0.5.15
~> 0.33.0
->~> 0.37.0
1.16.3
->1.19.6
~> 0.2.0
->~> 0.4.0
1.0.0
->1.1.0
1.1.0
->1.3.0
0.4.7
->0.4.9
~> 1.11.0
->~> 1.15.0
Release Notes
pow-auth/assent (assent)
v0.3.1
Compare Source
Bug fixes
Assent.JWTAdapter.AssentJWT
fixed padding issue with ECDSA that caused invalid signaturesv0.3.0
Compare Source
This release consists of breaking changes.
Userinfo is now cast to the correct type per https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.5.1. When upgrading you must ensure that you do not depend on a specific type in the returned userinfo for any of the strategies listed below.
Breaking changes
Assent.Strategy.Auth0.authorize_url/2
no longer accepts:domain
config, use:base_url
insteadAssent.Strategy.Basecamp.callback/2
now encodessub
as abinary()
instead of aninteger()
Assent.Strategy.Github.callback/2
now encodessub
as abinary()
instead of aninteger()
Assent.Strategy.Google
now encodesemail_verified
as aboolean()
instead of abinary()
Assent.Strategy.Google
now returnhd
instead ofgoogle_hd
Assent.Strategy.Strava.callback/2
now encodessub
as abinary()
instead of aninteger()
Assent.Strategy.Telegram.callback/2
now encodessub
as abinary()
instead of aninteger()
Assent.Strategy.Twitter.callback/2
now encodessub
as abinary()
instead of aninteger()
Assent.Strategy.VK.callback/2
now encodessub
as abinary()
instead of aninteger()
:site
configuration option removed, use:base_url
insteadAssent.Strategy.OAuth2.authorize_url/2
no longer allows:state
in:authorization_params
Assent.Strategy.decode_response/2
removed, useAssent.HTTPAdapter.decode_response/2
insteadAssent.Strategy.request/5
removed, useAssent.Strategy.http_request/5
insteadAssent.Strategy.prune/1
removedAssent.MissingParamError
no longer accepts:expected_key
, use:key
insteadAssent.HTTPAdapter.Mint
removedAssent.Config
removedChanges
Assent.Strategy.Auth0
now uses OIDC instead of OAuth 2.0 base strategyAssent.Strategy.Gitlab
now uses OIDC instead of OAuth 2.0 base strategyAssent.Strategy.Google
now uses OIDC instead of OAuth 2.0 base strategyAssent.Strategy.normalize_userinfo/2
now casts the user claims per OpenID specificationv0.2.13
Compare Source
Assent.Strategy.Auth0
deprecated:domain
config option in favor of:base_url
#177v0.2.12
Compare Source
Assent
now has a module doc #176v0.2.11
Compare Source
JSON
instead ofJason
for JSON parsing on Elixir 1.18 #161Assent.Strategy.OAuth2
now supports:state
config option #162Assent.Strategy.OAuth2
:state
override in:authorization_parms
has been deprecated #162Assent.Strategy.OIDC
now supportsnone
authentication method #163 (thanks @tommasop)Assent.Strategy.Bitbucket
added #160 (thanks @djgoku)Assent.Strategy.Twitch
added #159 (thanks @s0er3n)Assent.Strategy.Telegram
added #152 (thanks @vheathen)Assent.Strategy.Zitadel
added #154 (thanks @tommasop)Assent.Strategy.Facebook.fetch_user/2
fixed bug with user not being decoded #168 (thanks @JohnDoneth)Assent.Strategy.OAuth2
now supports PKCE #164 (thanks @tommasop)Assent.Strategy.OAuth2.Base.authorize_url/2
incomplete typespec fixed #166 (thanks @diogomrts)Assent.Strategy.decode_response/2
deprecated accepting result tuples and now acceptsAssent.HTTPAdapter.HTTPResponse
structs #172Assent.Strategy.request/5
deprecated in favor ofAssent.Strategy.http_request/5
#175Assent.Strategy.decode_response/2
deprecated in favor ofAssent.HTTPAdapter.decode_response/2
#175Assent.Config.get/3
deprecated in favor ofKeyword.get/3
#175Assent.Config.put/3
deprecated in favor ofKeyword.put/3
#175Assent.Config.merge/2
deprecated in favor ofKeyword.merge/2
#175Assent.Config.t()
type deprecated in favor ofKeyword.t()
type #175Assent.Config.fetch/2
deprecated in favor ofAssent.fetch_config/2
#175mtrudel/bandit (bandit)
v1.8.0
Compare Source
Enhancements
content-length
header when callingsend_chunked/3
,the response is streamed via content-length delimited framing and not chunked (#510)
v1.7.0
Compare Source
Enhancements
get_sock_data/1
andget_ssl_data/1
callbacks from Plug 1.18 (#497)Connection: close
headers (#495, thanks @ruslandoga!)Fixes
v1.6.11
Compare Source
Changes
sent (#482)
cookies
header with an empty string if no cookies weresent in HTTP/2 (#483)
v1.6.10
Compare Source
Fixes
Enhancements
v1.6.9
Compare Source
Fixes
thanks @thiagopromano!)
v1.6.8
Compare Source
Fixes
Enhancements
status
to the telemetry metadata emitted on WebSocket upgrades (#466)v1.6.7
Compare Source
Changes
v1.6.6
Compare Source
Fixes
log_client_closures
config flagconnection: close
when closing connection on error per RFC9112§9.6Enhancements
v1.6.5
Compare Source
Fixes
Enhancements
v1.6.4
Compare Source
Fixes
v1.6.3
Compare Source
Fixes
v1.6.2
Compare Source
Enhancements
plug
andwebsock
to logging metadata whenever possible (#448)plug
andwebsock
to telemetry metadata whenever possible (#447)Fixes
Changes
v1.6.1
Compare Source
Changes
sent (#482)
cookies
header with an empty string if no cookies weresent in HTTP/2 (#483)
v1.6.0
Compare Source
Enhancements
thanks @alisinabh!)
log_client_closures
http option, defaulting to false (#397, thanks @goncalotomas!)Fixes
Changes
v1.5.7
Compare Source
Changes
408 Request Timeout
being returned to the client by way of aBandit.HTTPError
being raised. Previously, a
:more
tuple was returned (#385, thanks@martosaur!)
v1.5.6
Compare Source
Fixes
a body which isn't read by the Plug (#387, thanks @fekle!)
v1.5.5
Compare Source
Changes
domain: [:bandit]
to the metadata of all logger callslog_protocol_errors
umbrellav1.5.4
Compare Source
Changes
protocol errors (thanks @hunterboerner!)
v1.5.3
Compare Source
Changes
:short
and:verbose
options tolog_protocol_errors
configurationoption. Change default value to
:short
, which will log protocolerrors as a single summary line instead of a full stack trace
Bandit.HTTPError
errors when attempting to write to a closed clientconnection (except for chunk/2 calls, which now return
{:error, reason}
).Unless otherwise caught by the user, these errors will bubble out past the
configured plug and terminate the plug process. This closely mimics the
behaviour of Cowboy in this regard (#359)
@meeq!)
Fixes
preamble
v1.5.2
Compare Source
Fixes
@ryanwinchester, @chrismccord!)
v1.5.1
Compare Source
Enhancements
between keepalive requests (#349)
v1.5.0
Compare Source
Enhancements
Plug.Exception
whendetermining which status code to return to the client (if the plug did not
already send one). Previously they were always returned as 500 (for HTTP/1)
or an 'internal error' stream error (for HTTP/2)
code (as determined by
Plug.Exception.status/1
) is contained within the newlog_exceptions_with_status_codes
configuration option (defaulting to500..599
)abnormally in the case of plug-generated exceptions
Changes
client using their proper status code instead of as a 'protocol error' stream
error
riverrun/bcrypt_elixir (bcrypt_elixir)
v3.3.2
Compare Source
v3.3.1
Compare Source
v3.3.0
Compare Source
v3.2.1
Compare Source
v3.2.0
Compare Source
dashbitco/broadway (broadway)
v1.2.1
Compare Source
setup
callback on Broadway startupv1.2.0
Compare Source
v1.1.0
Compare Source
Bug fix
:accumulate
when draining, for compatibility with GenStage v1.2+. This means that any polling implementation must implement theprepare_for_draining
callback and stop polling messages. You can check how BroadwaySQS tackles this problem as an exampleEnhancements
elixir-mint/castore (castore)
v1.0.15
Compare Source
v1.0.14
Compare Source
v1.0.13
Compare Source
v1.0.12
Compare Source
v1.0.11
Compare Source
v1.0.10
Compare Source
v1.0.9
Compare Source
v1.0.8
Compare Source
rrrene/credo (credo)
v1.7.12
Compare Source
:column
on all checksCredo.Check.Refactor.DoubleBooleanNegation
fixed false positiveCredo.Check.Readability.NestedFunctionCalls
fixed false positiveCredo.Check.Consistency.UnusedVariableNames
fixed duplicate issuesv1.7.11
Compare Source
:exit_status
and:category
toformat_issue/2
when usingCredo.Check
Credo.Check.Readability.ModuleDoc
fixed false positiveCredo.Check.Warning.UnusedEnumOperation
fixed false positiveCredo.Check.Refactor.ABCSize
fixed false positive for tuples and underscored matches (_foo
)v1.7.10
Compare Source
v1.7.9
Compare Source
Credo.Check.Refactor.ABCSize
fixed false positive for pin operator (^
)Credo.Check.Readability.FunctionNames
fixed false positive for pow operator (**
)Credo.Code.Parameters
when couting parameters for functions with guardsv1.7.8
Compare Source
Credo.Check.Refactor.Apply
fixed false positiveCredo.Check.Warning.IoInspect
fixed false positiveCredo.Check.Warning.UnsafeToAtom
fixed false positiveCredo.Check.Readability.FunctionNames
fixed false positivev1.7.7
Compare Source
Credo.Check.Design.SkipTestWithoutComment
,Credo.Check.Refactor.PassAsyncInTestCases
andCredo.Check.Warning.WrongTestFileExtension
now work for umbrella appsv1.7.6
Compare Source
Credo.Check.Consistency.MultiAliasImportRequireUse
fixed false positiveCredo.Check.Readability.PredicateFunctionNames
now ignores functions that implement a behaviourCredo.Check.Readability.FunctionName
now supports multi-letter sigilsCredo.Check.Readability.Specs
fixed false positiveCredo.Check.Warning.UnusedKeywordOperation
fixed false positivecolumn
information on several checks in case there are two offending calls on the same lineelixir-ecto/ecto_sql (ecto_sql)
v3.13.2
Compare Source
Enhancements
Ecto.Adapters.SQL.Sandbox.allow/4
callsON DELETE SET DEFAULT
Bug fixes
v3.13.1
Compare Source
Bug fixes
v3.13.0
Compare Source
Enhancements
:log_stacktrace_mfa
for filtering or modifying stacktrace-derived info in query logs:prepare
per operationjson_extract_path
v3.12.1
Compare Source
Enhancements
:pool_count
optionv3.12.0
Compare Source
Enhancements
Ecto.Migration.remove_if_exists/1
.ex
:duration
type:plan
explain option for Postgres%Tds.Parameter
structs as params for named parameter usage inquery
Bug fix
phoenixframework/esbuild (esbuild)
v0.10.0
Compare Source
correct
PATH
separator. For example:v0.9.0
Compare Source
This release requires Elixir v1.14+ and Erlang/OTP 25+.
esbuild
versionsesbuild
to version 0.25.0CAStore
in favor of using Erlang certificatesv0.8.2
Compare Source
sneako/finch (finch)
v0.20.0
Compare Source
Enhancements
:supported_groups
to list of TLS options #307:default
pool in documentation #314nimble_options
to document deprecations #315Bug Fixes
Other
v0.19.0
Compare Source
Enhancements
Bug Fixes
philss/floki (floki)
v0.38.0
Compare Source
Added
This version adds initial support for the
:has
pseudo-selector.It is a great addition that enables finding elements containing
matching children.
Examples for selectors:
"div:has(h1)"
"div:has(h1, p, span)"
"div:has(p.foo)"
"div:has(img[src='https://example.com'])"
"tr:has(*:fl-contains('TEST'))"
Note that combinators like
">"
are not allowed yet.Thank you @bvobart for this feature!
Fixed
Add
:style
option documentation toFloki.text/2
.Thanks @s3cur3 for the fix.
Fix deprecation warnings for upcoming Elixir 1.19.
Prevent from crashing when selector is an empty string.
Removed
Remove support for Elixir 1.14 and OTP 23.
Remove deprecated functions and function clauses
that were accepting strings (binaries).
Affected functions:
parse/1
- removed functionmap/2
- removed functionattr/4
- removed clausefind/2
- removed clausetext/3
- removed clausetext/3
- removed clauseattribute/2
- removed clausefilter_out/2
- removed clauseHTML must be parsed before searching. Functions like
Floki.find/2
,Floki.attribute/2
, and other HTML manipulation functions no longer workdirectly with HTML strings. The HTML must be parsed first using
Floki.parse_fragment/2
orFloki.parse_document/2
.Before:
After:
v0.37.1
Compare Source
Fixed
This is a fix to be compatible with the upcoming OTP 28.
v0.37.0
Compare Source
Added
Floki.css_escape/1
- thanks @SteffenDE.Fixed
raw_html/2
- thanks @andyleclair.Removed
v0.36.3
Compare Source
This release contains some performance improvements, thanks to @ypconstante.
Fixed
Stop
Floki.get_by_id/2
traversal on first match. Thanks @ypconstante.Remove extra whitespaces from nodes without attributes on
Floki.raw_html/1
.Thank you @ypconstante.
Fix
Floki.raw_html/1
typespecs. Thanks @davydog187.v0.36.2
Compare Source
Added
Inspect
protocol for theFloki.HTMLTree
struct.This struct is currently private. Thank you @vittoriabitton.
Fixed
Fix regression to respect config option
:encode
inFloki.raw_html/2
.Thanks @Sgoettschkes.
Make the
Floki.raw_html/2
treat the contents of the<title>
tag as plain text.The idea is to align with
parse_document/2
.Thank you @aymanosman.
elixir-gettext/gettext (gettext)
v0.26.2
Compare Source
message and conflicting plural messages.
Gettext backend.
v0.26.1
Compare Source
v0.26.0
Compare Source
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 controllerimport
s 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 thenimport
ing that to use its macros, you need to:use Gettext.Backend
use Gettext, backend: MyApp.Gettext
.Before and After
Before this release, code using Gettext used to look something like this:
This creates a compile-time dependency for every module that
import
s the Gettext backend.With this release, the above turns into:
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.Migration with Igniter
If your project is using
igniter
, you can runmix igniter.update_gettext
to automatically migrate to the new API.
Detailed Changelog
This is a detailed list of the new things introduced in this release:
Gettext.Macros
, which contains all the macros you know and love (*gettext
). It also contains*gettext_with_backend
variants to explicitly pass a backend at compile time and keep extraction working.lgettext/5
andlngettext/7
callbacks inGettext.Backend
. These get generated in every Gettext backend.Gettext.domain/0
type.v0.25.0
Compare Source
mix gettext.extract
's POT files even if they are unchanged.tailwindlabs/heroicons (heroicons)
v2.2.0
Compare Source
Added
v2.1.5
Compare Source
Added
michalmuskala/jason (jason)
v1.4.4
Compare Source
oban-bg/oban (oban)
v2.20.1
Compare Source
Bug Fixes
[Worker] Handle missing fields in unique Worker validation.
Workers that specified
keys
withoutfields
would fail validation at compile time. Nowdefault values are considered for
use Oban.Worker
as well asJob.new/2
.v2.20.0
Compare Source
Enhancements
Migration
Add V13 migration for indexing cancelled and discarded states.A new V13 migration adds compound indexes to significantly improve
Oban.Plugins.Pruner
performance when cleaning up
discarded
andcancelled
jobs. This is especially beneficial forapplications that process large volumes of jobs and retain them for extended periods.
Repo
Expose dynamic repo switching aswith_dynamic_repo/2
The function was previously internal, which made impossible to use in external modules or extend
upon. Now custom plugins and extensions can use
Repo.with_dynamic_repo/2
to use the configureddynamic repo options.
Bug Fixes
[Oban] Allow
insert_all/1,3
via Oban facadeThe
insert_all/1
andinsert_all/3
function variants were missing from the generated Obanfacade functions when using a named instance.
[Testing] Generate correct
perform_job/1,2,3
clauses.The
perform_job/2,3
clauses generated byuse Oban.Testing
didn't handle theperform_job/2
variant designed to run jobs created with
build_job/3
. This caused test failures when tryingto execute jobs built using the
build_job/3
helper function.The fix generates the missing
perform_job/2
clause along with a convenientperform_job/1
variant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.
[Testing] Restrict inline execution to
available
andscheduled
states.Jobs in the
completed
state or other non-runnable states were incorrectly attempted by theinline engine, potentially causing errors or unexpected behavior during testing.
[Worker] Disallow
:keys
when:fields
doesn't contain:args
or:meta
Unique job configurations using
:keys
were allowed even when:fields
didn't include:args
or
:meta
, which would result in runtime errors since keys can only extract values from thesekeyable fields.
[Cron] Fix error message when the crontab has an invalid range.
Cron validation errors for invalid ranges were returning exception structs instead of readable
error messages, making it difficult to understand and fix crontab configuration issues.
v2.19.4
Compare Source
v2.19.3
Compare Source
v2.19.2
Compare Source
Enhancements
[Oban] Allow setting a MFA in
:get_dynamic_repo
Anonymous functions don't work with OTP releases, as anonymous functions cannot be used in configuration. Now a MFA tuple can be passed instead of a fun, and the scaling guide recommends a function instead.
[Cron] Include configured timezone in cron job metadata
Along with the cron expression, stored as
cron_expr
, the configured timezone is also recorded ascron_tz
in cron job metadata.[Cron] Add
next_at/2
andlast_at/2
for cron time calculationsThis implements jumping functions for cron expressions. Rather than naively iterating through minutes, it uses the expression values to efficiently jump to the next or last cron run time.
[Executor] Always convert
queue_time
to native time unitThe telemetry docs state that measurements are recorded in
native
time units. However, that hasn't been the case forqueue_time
for a while now. It usually worked anyway native and nanosecond is of the same resolution, but now it is guaranteed.Bug Fixes
[Peer] Correct leadership elections for the
Dolphin
engineMySQL always returns the number of entries attempted, even when nothing was added. The previous match caused all nodes to believe they were the leader. This uses a secondary query within the same transaction to detect if the current instance is the leader.
[Reindexer] Drop invalid indexes concurrently when reindexing.
The
DROP INDEX
query would lock the whole table with anACCESS EXCLUSIVE
lock and could cause queries to fail unexpectedly.[Testing] Use
Ecto.Type.cast/2
for backward compatibilityThe
cast!/2
function wasn't added until Ecto 3.12. This reverts time casting to usecast/2
for compatibility with earlier Ecto versions.[Worker] Validate that the
unique
option isn't an empty list.An empty list was accepted at compile time, but wouldn't be valid later at runtime. Now the two validations match for greater parity.
v2.19.1
Compare Source
Bug Fixes
[Mix] Improve igniter installer idempotency and compatibility.
The installer now uses
on_exists: :skip
when generating a migration, so it composes safely with other igniter installers. It also removes unnecessaryadd_dep
calls that would overwrite a previously specified Oban version with~> 2.18
.v2.19.0
: v2.19Compare Source
The minimum Elixir version is now v1.15. The official policy is to only support the three latest versions of Elixir.
🐬 MySQL Support
Oban officially supports MySQL with the new
Dolphin
engine. Oban supports modern (read "with full JSON support") MySQL versions from 8.4 on, and has been tested on the highly scalable Plantescale database.Running on MySQL is as simple as specifying the
Dolphin
engine in your configuration:With this addition, Oban can run in estimated 10% more Elixir applications!
⚗️ Automated Installer
Installing Oban into a new application is simplified with a new igniter powered
mix
task. The newoban.install
task handles installing and configuring a standard Oban installation, and it will deduce the correctengine
andnotifier
automatically based on the database adapter.This
oban.install
task is currently the recommended way to install Oban. As a bonus, the task composes together with other igniter installers, making it possible to installphoenix
,ash
,oban
, and other packages with a single command:Look at the
Mix.Oban.Install
docs for full usage and options.📔 Logging Enhancements
Logging in a busy system may be noisy due to job events, but there are other events that are particularly useful for diagnosing issues. A new
events
option forattach_default_logger/1
allows selective event logging, so it's possible to receive important notices such as notifier connectivity issues, without logging all job activity:Along with filtering, there are new events to make diagnosing operational problems easier.
A
peer:election
events logs leadership changes to indicate when nodes gain or lose leadership. Leadership issues are rare, but insidious, and make diagnosing production problems especially tricky.Helpfully,
plugin:stop
events are now logged for all core plugins via an optional callback, andplugin:exception
events are logged for all plugins regardless of whether they implement the callback. Runtime information is logged forCron
,Lifeline
,Pruner
,Stager
, andReindexer
plugins.For example, every time
Cron
runs successfully it will output details about the execution time and all of the inserted job ids:⛵️ Official JSON
Oban will default to using the official
JSON
module built into Elixir v1.18+ when available.A new
Oban.JSON
module detects whether the official ElixirJSON
module is available at compile time. If it isn't available, then it falls back toJason
, and ifJason
isn't available (which is extremely rare) then it warns about a missing module.This approach was chosen over a config option for backward compatibility because Oban will only support the JSON module once the minimum supported Elixir version is v1.18.
v2.19.0 — 2025-01-16
Enhancements
[Oban] Start all queues in parallel on initialization.
The midwife now starts queues using an async stream to parallelize startup and minimize boot time for applications with many queues. Previously,
[Oban] Safely return
nil
fromcheck_queue/2
when checking queues that aren't running.Checking on a queue that wasn't currently running on the local node now returns
nil
rather than causing a crash. This makes it safer to check the whether a queue is running at all without atry/catch
clause.[Oban] Add
check_all_queues/1
to gather all queue status in a single function.This new helper gathers the "check" details from all running queues on the local node. While it was previously possible to pull the queues list from config and call
check_queue/2
on each entry, this more accurately pulls from the registry and checks each producer concurrently.[Oban] Add
delete_job/2
anddelete_all_jobs/2
operations.This adds
Oban.delete_job/2
,Oban.delete_all_jobs/2
, Engine callbacks, and associated operations for all native engines. Deleting jobs is now easier and safer, due to automatic state protections.[Engine] Record when a queue starts shutting down
Queue producer metadata now includes a
shutdown_started_at
field to indicate that a queue isn't just paused, but is actually shutting down as well.[Engine] Add
rescue_jobs/3
callback for all engines.The
Lifeline
plugin formerly used two queries to rescue jobs—one to mark jobs with remaining attempts asavailable
and another thatdiscarded
the remaining stuck jobs. Those are now combined into a single callback, with the base definition in theBasic
engine.MySQL won't accept a select in an update statement. The Dolphin implementation of
rescue_jobs/3
uses multiple queries to return the relevant telemetry data and make multiple updates.[Cron] Introduce
Oban.Cron
withschedule_interval/4
The new
Cron
module allows processes, namely plugins, to get cron-like scheduled functionality with a single function call. This will allow plugins to removes boilerplate around parsing, scheduling, and evaluating for cron behavior.[Registry] Add
select/1
to simplify querying for registered modules.[Testing] Add
build_job/3
helper for easier testing.Extract the mechanism for verifying and building jobs out of
perform_job/3
so that it's usable in isolation. This also introducesperform_job/2
for executing built jobs.[Telemetry] Add information on leadership changes to
oban.peer.election
event.An additional
was_leader?
field is included in[:oban, :peer, :election | _]
event metadata to make hooking into leadership change events simpler.[Telemetry] Add callback powered logging for plugin events.
Events are now logged for plugins that implement the a new optional callback, and exceptions are logged for all plugins regardless of whether they implement the callback.
This adds logging for
Cron
,Lifeline
,Pruner
,Stager
, andReindexer
.[Telemetry] Add peer election logging to default logger.
The default logger now includes leadership events to make identifying the leader, and leadership changes between nodes, easier.
[Telemetry] Add option to restrict logging to certain events.
Logging in a busy system may be noisy due to job events, but there are other events that are particularly useful for diagnosing issues. This adds an
events
option toattach_default_logger/1
to allow selective event logging.[Telemetry] Expose
default_handler_id/0
for telemetry testing.Simplifies testing whether the default logger is attached or detached in application code.
Chores
Postgres
toDatabase
because it is also used for MySQL databases.Bug Fixes
[Oban] Allow overwriting all
insert/*
functions arities afteruse Oban
.[Node] Correctly handle
:node
option forscale_queue/2
Scoping
scale_queue/2
calls to a single node didn't work as advertised due to some extra validation for producer meta compatibility.[Migration] Fix version query for databases with non-unique
oid
Use
pg_catalog.obj_description(object_oid, catalog_name)
, introduced in PostgreSQL 7.2, to specify thepg_class
catalog so only theoban_jobs
description is returned.[Pruner] Use state specific fields when querying for prunable jobs.
Using
scheduled_at
is not correct in all situations. Depending on job state, one ofcancelled_at
,discarded_at
, orscheduled_at
should be used.[Peer] Conditionally return the current node as leader for isolated peers.
Prevents returning the current node name when leadership is disabled.
[Testing] Retain time as microseconds for
scheduled_at
tests.Include microseconds in the
begin
anduntil
times used for scheduled_at tests with a delta. The prior version would truncate, which rounded theuntil
down and broke microsecond level checks.[Telemetry] Correct spelling of "elapsed" in
oban.queue.shutdown
metadata.v2.18.3
Compare Source
Enhancements
[Basic] Use the shared concat operator when appending errors.
The standard
push
operation for updates is designed for arrays and usesarray_append
internally. This replaces all use ofpush
with a fragment that uses the||
operator instead, which works for both arrays and jsonb.CockroachDB doesn't support arrays of jsonb, but they do support simple jsonb columns. Now we can append to the errors column in either format for CRDB compatibility.
Bug Fixes
[Queue] Link the dynamic queue supervisor and
Midwife
for automatic restarts.When a producer crashes it brings the queue's supervisor down with it. With enough database errors, the producer may crash repeatedly enough to exhaust restarts and bring down the DynamicSupervisor in charge of all queues.
Now the supervisor is linked to the midwife to ensure that the midwife restarts as well, and it restarts all of the queues.
[Testing] Handle
insert_all/3
with streams for the:inline
testing engine.The inline engine's
insert_all_jobs
callback incorrectly expected changesets to always be a list rather and couldn't handle streams.v2.18.2
Compare Source
Bug Fixes
[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
Compare Source
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 oftext
rather thanvarchar
.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
query!/4
toquery!
rather thanquery
without a bang.v2.18.0
Compare Source
🔭 Queue Shutdown Telemetry
A new queue shutdown event,
[:oban, :queue, :shutdown]
, is emitted by each queue when it terminates. The event originates from thewatchman
process, which tracks the total ellapsed time from when termination starts to when all jobs complete or the allotted period is exhausted.Any jobs that take longer than the
:shutdown_grace_period
(by default 15 seconds) are brutally killed and left as orphans. The ids of jobs left in an executing state are listed in the event'sorphaned
meta.This also adds
queue:shutdown
logging to the default logger. Only queues that shutdown with orphaned jobs are logged, which makes it easier to detect orphaned jobs and which jobs were affected:🚚 Distributed PostgreSQL Support
It's now possible to run Oban in distributed PostgreSQL databases such as Yugabyte. This is made possible by a few simple changes to the
Basic
engine, and a newunlogged
migration option.Some PostgreSQL compatible databases don't support unlogged tables. Making
oban_peers
unlogged isn't a requirement for Oban to operate, so it can be disabled with a migration flag:🧠 Job Observability
Job
stop
andexception
telemetry now includes the reported memory and total reductions from the job's process. Values are pulled withProcess.info/2
after the job executes and safely fall back to0
in the event the process has crashed. Reductions are a rough proxy for CPU load, and the new measurements will make it easier to identify computationally expensive or memory hungry jobs.In addition, thanks to the addition of
Process.set_label
in recent Elixir versions, the worker name is set as the job's process label. That makes it possible to identify which job is running in apid
via observer or live dashboard.v2.18.0 — 2024-07-26
Enhancements
[Job] Support simple
unique: true
andunique: false
declarationsUniqueness can now be enabled with
unique: true
and disabled withunique: false
from job options or a worker definition. Theunique: true
option uses all the standard defaults, but sets the period to:infinity
for compatibility with Oban Pro's newsimple
unique mode.[Cron] Remove forced uniqueness when inserting scheduled jobs.
Using uniqueness by default prevents being able to use the Cron plugin with databases that don't support uniqueness because of advisory locks. Luckily, uniqueness hasn't been necessary for safe cron insertion since leadership was introduced and scheduling changed to top-of-the-minute many versions ago.
[Engine] Introduce
check_available/1
engine callbackThe
check_available/1
callback allows engines to customize the query used to find jobs in theavailable
state. That makes it possible for alternative engines, such Oban Pro's Smart engine, to check for available jobs in a fraction of the time with large queues.[Peer] Add
Oban.Peer.get_leader/2
for checking leadershipThe
get_leader/2
function makes it possible to check which node is currently the leader regardless of the Peer implementation, and without having to query the database.[Producer] Log a warning for unhandled producer messages.
Some messages are falling through to the catch-all
handle_info/2
clause. Previously, they were silently ignored and it degraded producer functionality because inactive jobs with dead pids were still tracked asrunning
in the producer.[Oban] Use structured messages for most logger warnings.
A standard structure for warning logs makes it easier to search for errors or unhandled messages from Oban or a particular module.
Bug Fixes
[Job] Include all fields in the unique section of
Job.t/0
.The unique spec lacked types for both
keys
andtimestamp
keys.[Basic] Remove
materialized
option fromfetch_jobs/3
.The
MATERIALIZED
clause for CTEs didn't make a meaningful difference in job fetching accuracy. In some situations it caused a performance regression (which is why it was removed from Pro's Smart engine a while ago).v2.17.12
Compare Source
v2.17.11
Compare Source
Bug Fixes
[Oban] Handle deprecation warnings from Elixir 1.17
[Notifier] Prevent noisy logging about switching between modes.
There's an apparent race condition in Sonar between pruning stale nodes on
:ping
and updating the status after a notification. This primarily happens in development for two reasons:Using
monotonic_time/1
instead ofsystem_time/1
guards against clock drift/time warp effects.[Stager] Prevent notification status timeouts from bubbling into the Stager.
A clogged Ecto pool could cause cascading errors on startup due to a sequence of calls between the
Notifier
,Sonar
, andStager
.Sonar
sends a notification inhandle_continue
on startup.Notifier
waits for a connection from the Ecto pool.Stager
checks for the connection status on startup, which would eventually time out because theSonar
hadn't finished initializing.Stager
crashes from the timeout error.This makes the following changes to prevent this sequence of events:
Stager
no longer gets the sonar status during startup.Notifier
catches timeout errors fromSonar
checks, warns about it, then returns an:unknown
status.[Engine] Defensively check the process dictionary during inline testing.
Not all processes are guaranteed to return a value for the process dictionary. Sometimes a value was missing during inline testing, which would crash the test.
[Basic] Set
conflict?
flag when encountering a unique advisory lock.The
conflict?
flag wasn't set when inserting a unique job was blocked by an advisory lock. Now the flag is set on either a fetched duplicate, or when the advisory lock is set.[Job] Correct
replace_by_state_option
type by switching from keyword to tuples.[Config] Correctly type
shutdown_grace_period
as aninteger
rather than atimeout
.v2.17.10
Compare Source
Enhancements
[Oban] Make all generated functions from
use Oban
overridable.Now the functions generated by
use Oban
are all marked withdefoverridable
for extensibility.Bug Fixes
[Testing] Use
$callers
rather than$ancestors
for ancestry tree check.We care about Tasks for inline testing checks, not normal supervision tree ancestry. The
$callers
entry is the appropriate mechanism to find the trail of calling processes:pgvector/pgvector-elixir (pgvector)
v0.3.1
Compare Source
phoenixframework/phoenix (phoenix)
v1.8.1
Compare Source
Bug fixes
v1.8.0
Compare Source
Bug fixes
tsconfig.json
Enhancements
mix precommit
aliasAGENTS.md
generation compatible withusage_rules
usage_rules
folder to installer, allowing to sync generic Phoenix rules into new projectsv1.7.21
Compare Source
v1.7.20
Compare Source
v1.7.19
Compare Source
v1.7.18
Compare Source
v1.7.17
Compare Source
v1.7.16
Compare Source
v1.7.15
Compare Source
v1.7.14
Compare Source
v1.7.13
Compare Source
phoenixframework/phoenix_ecto (phoenix_ecto)
v4.6.5
v4.6.4
v4.6.3
Compare Source
Enhancements
Bug fix
v4.6.2
Compare Source
v4.6.1
Compare Source
v4.6.0
Compare Source
phoenixframework/phoenix_html (phoenix_html)
v4.2.1
Compare Source
Phoenix.HTML.FormField
v4.2.0
Compare Source
Enhancements
Phoenix.HTML.css_escape/1
to escape strings for use inside CSS selectors:hr
tooptions_for_select/2
to render a horizontal ruleBug fixes
phoenixframework/phoenix_live_dashboard (phoenix_live_dashboard)
v0.8.7
Compare Source
v0.8.6
Compare Source
v0.8.5
Compare Source
v0.8.4
Compare Source
phoenixframework/phoenix_live_reload (phoenix_live_reload)
v1.6.1
Compare Source
:phoenix_live_reload
private field to downstream instrumentation@import
directive support to CSS reload strategyv1.6.0
Compare Source
Enhancements
__RELATIVEFILE__
when invoking editors:parent
to not reload the whole page if a Phoenix app is shown inside an iframe. You can get the old behavior back by setting the:target_window
option to:top
:Bug fixes
phoenixframework/phoenix_live_view (phoenix_live_view)
v0.20.17
Compare Source
v0.20.16
Compare Source
v0.20.15
Compare Source
elixir-ecto/postgrex (postgrex)
v0.21.1
Compare Source
ssl: true
with missing ssl_opts handlingv0.21.0
Compare Source
This release requires Erlang/OTP 25+
Enhancements
Bug fixes
v0.20.0
Compare Source
Deprecations
:search_path
and use:parameters
option insteadBug fixes
Duration
type returns same units asPostgrex.Interval
Postgrex.ReplicationConnection
Postgrex.SimpleConnection
v0.19.3
Compare Source
Enhancements
[]
:comment
as options to query APIsBug fixes
Postgrex.SimpleConnection
v0.19.2
Compare Source
v0.19.1
Compare Source
Enhancements
Bug fixes
v0.19.0
Compare Source
Enhancements
Bug fixes
{:stop, state}
fromgen_statem
connection callbackwojtekmach/req (req)
v0.5.15
Compare Source
Req.Response
]: Add [Req.Response.to_map/1
].v0.5.14
Compare Source
[
run_plug
]: Remove warning aboutinto: fun
with{:halt, acc}
result.The warning never been particularly useful because it's not like users
can do anything about it.
v0.5.13
Compare Source
[
run_plug
]: Ease transition to automatically parsing request body.Since v0.5.11, this code:
Needed to be updated to:
This change makes it so both work. The latter will be required, however.
v0.5.12
Compare Source
[
run_plug
]: Do not raise on unknown content types.Req.Test
]: ImproveReq.Test.transport_error/2
error message.v0.5.11
Compare Source
[
encode_body
]: Fix leading newline before multipart body.[
run_finch
]: Handle initial transport errors oninto: :self
.[
run_plug
]: Automatically parse request body.Prior to this change, users would typically write:
Now, it can be:
This is a breaking change as
Plug.Conn.read_body
will now return""
.It can be easily fixed by using [
Req.Test.raw_body/1
] which returns copy ofthe request raw body:
Furthermore, prior to this change
conn.body_params
was unfetched:Now it is:
If in your
:plug
usage you look atconn.params
, it willnow include
conn.body_params
as Plug always merges them.[
retry
]: Use jitter by default[
Req.Request
]: Add [Req.Request.put_option/3
].[
Req.Request
]: Add [Req.Request.put_new_option/3
].[
Req.Request
]: Add [Req.Request.merge_new_options/2
].[
Req.Test
]: Add [Req.Test.redirect/2
].v0.5.10
Compare Source
Req
]: Add [Req.get_headers_list/1
].v0.5.9
Compare Source
[
encode_body
]: Support any enumerable in:form_multipart
[
Req.Test.expect/3
]: Fix usage in shared mode[
retry
]: Do not carry halt between retries(Internal) Support custom headers in
Req.Utils.aws_sigv4_url/1
(Internal) Support custom query params in
Req.Utils.aws_sigv4_url/1
v0.5.8
Compare Source
[
Req
]: Check legacy headers when streaming headers[
Req
]: Ignore :into collectable for non-200 responses[
put_aws_sigv4
]: Fix encoding path[
run_finch
]: Add option to configure Finch:pool_max_idle_time
[
run_finch
]: Prepare for upcoming Finch v0.20v0.5.7
Compare Source
[
put_aws_sigv4
]: Fix signature when using custom port[
retry
]: Do not callretry_delay
fun twice[
auth
]: Support passing a 0-arity functionv0.5.6
Compare Source
v0.5.5
Compare Source
[
put_aws_sigv4
]: Fix detecting service[
put_aws_sigv4
]: Raise on no:access_key_id
/:secret_access_key
/:service
[
put_aws_sigv4
]: Fix handling?name
(no value)[
handle_http_errors
]: should run beforeverify_checksum
[
encode_body
]: Support%File.Stream{}
in:form_multipart
[
encode_body
]: Support%File.Stream{}
from other nodes in:form_multipart
v0.5.4
Compare Source
run_finch
], [Req.parse_message/2
]: Gracefully handle process messages not meantfor the asynchronous response. In that case,
Req.parse_message/2
returns:unknown
.v0.5.3
Compare Source
[
Req.Test
]: Fix using shared mode[
encode_body
]: Add:form_multipart
option[
put_aws_sigv4
]: Try detecting the service[
run_finch
]: Fix setting:finch
optionv0.5.2
Compare Source
[
put_aws_sigv4
]: Fix bug when using custom headers[
put_aws_sigv4
]: Add:token
option[
redirect
]: Cancel async request before redirecting[
decode_body
]: Supportapplication/zstd
and.zst
rusterlium/rustler (rustler)
v0.37.1
Compare Source
Fixed
rustler_mix
chdir
inrustler_mix
when compiling in a subdirectory (#706)v0.37.0
Compare Source
Added
staticlib
feature to compile withoutnif_init
and add{pkg}_nif_init
symbol (#688)
IntoIterator
toOwnedBinary
(#702, thanks aDifferentJT)Fixed
ErlNifEntry.min_erts
to a placeholder value (#703)Changed
inline
on commonly used functions (#475, thanks @joshuataylor)EnifAllocator
available even if theallocator
feature is not enabledv0.36.2
Compare Source
Added
std::hash::Hash
implementation for atoms (#695)Fixed
rustler_mix
(#696, thanks @dkuku)v0.36.1
Compare Source
No changes in the Rust code, only
rustler_mix
adjustments and dependencyupdates.
Added
:module_name
) (#682)Fixed
(#682, fixes #680)
.gitignore
handling to match the new workspace styleChanged
libloading
on non-Windows systems (#677)v0.36.0
Compare Source
Added
Cargo.toml
file withmix rustler.new
(#672)Fixed
decode
was requested (#676)Removed
the template (#672)
v0.35.1
Compare Source
Fixed
rustler_codegen
(#671)Rustler
macros to not produce warnings on Elixir 1.18 (#670)v0.35.0
Compare Source
Added
#[register_impl(name = "...")]
(#638)Encoder
andDecoder
implementations forBox<T>
(#644)Reference
type andenv.make_ref()
function (#657)Fixed
register
attribute on#[register_impl]
works as advertisednow (#638)
above (#635)
fixes #651)
Changed
names (#639)
rustler_sys
as a separate library is merged intorustler::sys
and will notbe released independently of
rustler
anymore (#653)v0.34.0
Compare Source
Added
rustler::resource!
macro (#617, necessary due to a pending deprecation of aRust feature, #606)
Resource
traitand provide a custom
destructor
function that is run beforedrop
andreceives an
Env
parameter (#617)implement the
Resource::down
callback (#617)Fixed
on_load
callback is now caught and leads to a panic (#617)Changed
argument of
rustler::init!
is ignored (#613)derive
feature flag is now ignored and its functionality unconditionallyenabled (#621)
swoosh/swoosh (swoosh)
v1.19.6
Compare Source
✨ Features
v1.19.5
Compare Source
🐛 Bug Fixes
"TEMPLATE"
in the mailbox @axelson (#1059)v1.19.4
Compare Source
✨ Features
"TEMPLATE"
for from @axelson (#1058)v1.19.3
Compare Source
✨ Features
v1.19.2
Compare Source
✨ Features
🧰 Maintenance
v1.19.1
Compare Source
🐛 Bug Fixes
v1.19.0
Compare Source
✨ Features
🐛 Bug Fixes
v1.18.4
Compare Source
✨ Features
v1.18.3
Compare Source
🧰 Maintenance
v1.18.2
Compare Source
🐛 Bug Fixes
v1.18.1
Compare Source
✨ Features
v1.18.0
Compare Source
✨ Features
v1.17.10
Compare Source
🐛 Bug Fixes
v1.17.9
Compare Source
🐛 Bug Fixes
v1.17.8
Compare Source
🐛 Bug Fixes
v1.17.7
Compare Source
✨ Feature
🧰 Maintenance
v1.17.6
Compare Source
✨ Features
📝 Documentation
v1.17.5
Compare Source
This release fixes a bug introduced in 1.17.4
🐛 Bug Fixes
📝 Documentation
v1.17.4
Compare Source
🐛 Bug Fixes
🧰 Maintenance
v1.17.3
Compare Source
✨ Features
v1.17.2
Compare Source
✨ Features
v1.17.1
Compare Source
🐛 Bug Fixes
v1.17.0
Compare Source
A new adapter for Postal, thanks to @onvlt
✨ Features
v1.16.12
Compare Source
✨ Features
v1.16.11
Compare Source
✨ Features
📝 Documentation
v1.16.10
Compare Source
🐛 Bug Fixes
📝 Documentation
v1.16.9
Compare Source
🐛 Bug Fixes
v1.16.8
Compare Source
Breaking Change
Mua
is bumped to0.2.0
, and brings some breaking changes. The change in v0.2.0 is splittingtransport_opts
intotcp
andssl
specific ones since:gen_tcp.connect
complains when it receives opts for:ssl.connect
.🧰 Maintenance
v1.16.7
Compare Source
✨ Features
v1.16.6
Compare Source
✨ Features
📝 Documentation
v1.16.5
Compare Source
✨ Features
v1.16.4
Compare Source
✨ Features
🧰 Maintenance
phoenixframework/tailwind (tailwind)
v0.4.0
Compare Source
mix tailwind.install
v0.3.1
Compare Source
v0.3.0
Compare Source
Note: v0.3.0 dropped target code for handling Linux MUSL with Tailwind v3. Use v0.3.1+ instead.
v0.2.4
Compare Source
v0.2.3
Compare Source
beam-telemetry/telemetry_metrics (telemetry_metrics)
v1.1.0
Compare Source
Changed
Add support for measurements as second argument of keep/drop callback.
beam-telemetry/telemetry_poller (telemetry_poller)
v1.3.0
Compare Source
Added
atom_limit
,process_limit
, andport_limit
measurements to the[vm, system_counts]
event. (#79)v1.2.0
Compare Source
Added
persistent_term
measurements.elixir-tesla/tesla (tesla)
v1.15.3
Compare Source
Bug Fixes
v1.15.2
Compare Source
Bug Fixes
v1.15.1
Compare Source
Bug Fixes
v1.15.0
Compare Source
Features
:level
instead of deprecated:log_level
(#779) (ffc3609)Bug Fixes
v1.14.3
Compare Source
Bug Fixes
v1.14.2
Compare Source
Bug Fixes
v1.14.1
Compare Source
Bug Fixes
v1.14.0
Compare Source
Features
Bug Fixes
v1.13.2
Compare Source
What's Changed
Full Changelog: https://github.com/elixir-tesla/tesla/compare/v1.13.1...v1.13.2
v1.13.1
Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/elixir-tesla/tesla/compare/v1.13.0...v1.13.1
v1.13.0
Compare Source
Feature
Tesla.Test
module, please check the How-To Guides, and module documentationWhat's Changed
Full Changelog: https://github.com/elixir-tesla/tesla/compare/v1.12.3...v1.13.0
v1.12.3
Compare Source
What's Changed
Full Changelog: https://github.com/elixir-tesla/tesla/compare/v1.12.2...v1.12.3
v1.12.2
Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/elixir-tesla/tesla/compare/v1.12.1...v1.12.2
v1.12.1
Compare Source
Important
What's Changed
Full Changelog: https://github.com/elixir-tesla/tesla/compare/v1.12.0...v1.12.1
v1.12.0
Compare Source
Important
:httpc
enables SSL by default in OTP 25+ Please keep the eye on around the topicWhat's Changed
Full Changelog: https://github.com/elixir-tesla/tesla/compare/v1.11.2...v1.12.0
v1.11.2
Compare Source
What's Changed
Full Changelog: https://github.com/elixir-tesla/tesla/compare/v1.11.1...v1.11.2
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
Update dependency rustler to ~> 0.34.0to Update mix non-major dependencies4bd30462ab
to110e17670d
Update mix non-major dependenciesto Update dependency rustler to ~> 0.34.0Update dependency rustler to ~> 0.34.0to Update mix non-major dependencies110e17670d
to18bfd7383e
18bfd7383e
to23b15f5764
23b15f5764
to9cfa73565d
9cfa73565d
to6efbb928cd
6efbb928cd
to4fa620d861
4fa620d861
to952ba0c823
952ba0c823
to8ce0ddbad9
8ce0ddbad9
toa3dc60b2f5
a3dc60b2f5
to8f55aa9723
8f55aa9723
tocfa8beacc2
cfa8beacc2
toe93b4d67b4
e93b4d67b4
to8c11260461
8c11260461
to86df2c59c9
86df2c59c9
toa04adf0bda
a04adf0bda
tod09f07d07f
d09f07d07f
todb2ff6da27
db2ff6da27
to6e4e2f2d22
6e4e2f2d22
tod77a375769
d77a375769
to1936354b06
1936354b06
tob3f2c2ece7
b3f2c2ece7
todddcf23010
dddcf23010
toa87210c9e2
a87210c9e2
to48a4e6437e
48a4e6437e
toea63abd618
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.